[DiscordArchive] Why the TrinityCore bnet rpc server implements the client-side method? the server request to the wow
[DiscordArchive] Why the TrinityCore bnet rpc server implements the client-side method? the server request to the wow
Archived author: JORGIE • Posted: 2021-03-03T08:43:22.865000+00:00
Original source
Why the TrinityCore bnet rpc server implements the client-side method? the server request to the wow client?
Archived author: JORGIE • Posted: 2021-03-03T08:43:40.994000+00:00
Original source
```cpp
void Battlenet::Session::SendRequest(uint32 serviceHash, uint32 methodId, pb::Message const* request)
{
Header header;
header.set_service_id(0);
header.set_service_hash(serviceHash);
header.set_method_id(methodId);
header.set_size(request->ByteSize());
header.set_token(_requestToken++);
uint16 headerSize = header.ByteSize();
EndianConvertReverse(headerSize);
MessageBuffer packet(sizeof(headerSize) + header.GetCachedSize() + request->GetCachedSize());
packet.Write(&headerSize, sizeof(headerSize));
uint8* ptr = packet.GetWritePointer();
packet.WriteCompleted(header.GetCachedSize());
header.SerializeToArray(ptr, header.GetCachedSize());
ptr = packet.GetWritePointer();
packet.WriteCompleted(request->GetCachedSize());
request->SerializeToArray(ptr, request->GetCachedSize());
AsyncWrite(&packet);
}
```
Archived author: JORGIE • Posted: 2021-03-03T08:50:02.999000+00:00
Original source
Where the packet send to? is client?