This commit is contained in:
MarcEricMartel 2023-09-27 15:44:56 -04:00
parent 4dbcb08a11
commit 7eabee38ad

View File

@ -18,14 +18,8 @@ void netprot::Serialize(TeamInfo* tinfo, char* buf[], uint32_t* buflen) {
void netprot::Serialize(LoginInfo* linfo, char* buf[], uint32_t* buflen) { void netprot::Serialize(LoginInfo* linfo, char* buf[], uint32_t* buflen) {
*buf[0] = netprot::PACKET_TYPE::LOGINF; *buf[0] = netprot::PACKET_TYPE::LOGINF;
char* buff = *buf + 1;
size_t namesize = 1; size_t namesize = std::strlen(linfo->name) + 1;
for (int x = 0; x < sizeof(linfo->name); ++x)
if (linfo->name[x] != (char)'\0')
++namesize;
else break;
memcpy(*buf + 1, &linfo->name, namesize); memcpy(*buf + 1, &linfo->name, namesize);
uint64_t sid = linfo->sid; uint64_t sid = linfo->sid;
@ -40,8 +34,7 @@ void netprot::Serialize(LoginInfo* linfo, char* buf[], uint32_t* buflen) {
sid & 0xFF sid & 0xFF
}; };
char* ptrsid = *buf + namesize + 2; memcpy(*buf + namesize + 2, diff, sizeof(uint64_t));
memcpy(ptrsid, diff, sizeof(uint64_t));
*buflen = namesize + sizeof(uint64_t) + 2; *buflen = namesize + sizeof(uint64_t) + 2;
} }
@ -88,14 +81,12 @@ bool netprot::Deserialize(LoginInfo* linfo, char* buf, const uint32_t buflen) {
if (buflen < sizeof(LoginInfo) + 3) if (buflen < sizeof(LoginInfo) + 3)
return false; return false;
size_t namesize = 1; size_t namesize = std::strlen(buf) + 1;
for (int x = 0; x < sizeof(linfo->name); ++x) if (namesize > 32)
if (buf[x] != (char)'\0') return false;
++namesize;
else break;
memcpy((void*)&linfo->name, (void*)&buf[1], namesize); memcpy(&linfo->name, &buf[1], namesize);
uint8_t diff[sizeof(uint64_t)] = { 0,0,0,0,0,0,0,0 }; uint8_t diff[sizeof(uint64_t)] = { 0,0,0,0,0,0,0,0 };
memcpy(diff, &buf[namesize + 1], sizeof(uint64_t)); memcpy(diff, &buf[namesize + 1], sizeof(uint64_t));