Forums WoW Modding Support Archives TrinityCore Discord Archives [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

[DiscordArchive] Why the TrinityCore bnet rpc server implements the client-side method? the server request to the wow

rektbyfaith
Administrator
0
03-03-2021, 08:43 AM
#1
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?
rektbyfaith
03-03-2021, 08:43 AM #1

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?

rektbyfaith
Administrator
0
03-03-2021, 08:43 AM
#2
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);
}


```
rektbyfaith
03-03-2021, 08:43 AM #2

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);
}


```

rektbyfaith
Administrator
0
03-03-2021, 08:50 AM
#3
Archived author: JORGIE • Posted: 2021-03-03T08:50:02.999000+00:00
Original source

Where the packet send to? is client?
rektbyfaith
03-03-2021, 08:50 AM #3

Archived author: JORGIE • Posted: 2021-03-03T08:50:02.999000+00:00
Original source

Where the packet send to? is client?

Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)