mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-04-19 11:30:09 +03:00
chore(net): clean up connection message reading loop
This commit is contained in:
parent
e65956486e
commit
d35101546e
@ -375,19 +375,17 @@ void WowConnection::DoMessageReads() {
|
|||||||
// TODO
|
// TODO
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
auto v36 = 2;
|
auto headerSize = 2;
|
||||||
auto v35 = -1;
|
auto size = -1;
|
||||||
|
|
||||||
if (this->m_readBytes >= 2) {
|
if (this->m_readBytes >= headerSize) {
|
||||||
uint8_t v14;
|
if ((this->m_readBuffer[0] & 0x80) == 0) {
|
||||||
|
size = (this->m_readBuffer[1] | ((this->m_readBuffer[0] & 0x7F) << 8)) + headerSize;
|
||||||
if (*this->m_readBuffer >= 0) {
|
|
||||||
v35 = (this->m_readBuffer[1] | ((this->m_readBuffer[0] & 0x7F) << 8)) + 2;
|
|
||||||
} else {
|
} else {
|
||||||
v36 = 3;
|
headerSize = 3;
|
||||||
|
|
||||||
if (this->m_readBytes >= 3) {
|
if (this->m_readBytes >= headerSize) {
|
||||||
v35 = (this->m_readBuffer[2] | ((this->m_readBuffer[1] | ((this->m_readBuffer[0] & 0x7F) << 8)) << 8)) + 3;
|
size = (this->m_readBuffer[2] | ((this->m_readBuffer[1] | ((this->m_readBuffer[0] & 0x7F) << 8)) << 8)) + headerSize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -409,15 +407,15 @@ void WowConnection::DoMessageReads() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t v17;
|
int32_t bytesToRead;
|
||||||
|
|
||||||
if (v35 >= 0) {
|
if (size >= 0) {
|
||||||
v17 = v35 - this->m_readBytes;
|
bytesToRead = size - this->m_readBytes;
|
||||||
if (this->m_readBufferSize - this->m_readBytes < v35 - this->m_readBytes) {
|
if (this->m_readBufferSize - this->m_readBytes < size - this->m_readBytes) {
|
||||||
v17 = this->m_readBufferSize - this->m_readBytes;
|
bytesToRead = this->m_readBufferSize - this->m_readBytes;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
v17 = v36 - this->m_readBytes;
|
bytesToRead = headerSize - this->m_readBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WHOA_SYSTEM_WIN)
|
#if defined(WHOA_SYSTEM_WIN)
|
||||||
@ -426,11 +424,11 @@ void WowConnection::DoMessageReads() {
|
|||||||
ssize_t bytesRead;
|
ssize_t bytesRead;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (v17 <= 0) {
|
if (bytesToRead <= 0) {
|
||||||
bytesRead = 0;
|
bytesRead = 0;
|
||||||
} else {
|
} else {
|
||||||
while (true) {
|
while (true) {
|
||||||
bytesRead = recv(this->m_sock, reinterpret_cast<char*>(&this->m_readBuffer[this->m_readBytes]), v17, 0x0);
|
bytesRead = recv(this->m_sock, reinterpret_cast<char*>(&this->m_readBuffer[this->m_readBytes]), bytesToRead, 0x0);
|
||||||
|
|
||||||
if (bytesRead >= 0) {
|
if (bytesRead >= 0) {
|
||||||
break;
|
break;
|
||||||
@ -447,22 +445,22 @@ void WowConnection::DoMessageReads() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
if (bytesRead <= 0) {
|
||||||
}
|
|
||||||
|
|
||||||
if (bytesRead <= 0 && v17 > 0) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO
|
if (this->m_encrypt) {
|
||||||
|
// TODO encryption
|
||||||
|
}
|
||||||
|
|
||||||
this->m_readBytes += bytesRead;
|
this->m_readBytes += bytesRead;
|
||||||
|
|
||||||
if (v35 >= 0 && this->m_readBytes >= v35) {
|
if (size >= 0 && this->m_readBytes >= size) {
|
||||||
CDataStore msg;
|
CDataStore msg;
|
||||||
msg.m_data = &this->m_readBuffer[v36];
|
msg.m_data = &this->m_readBuffer[headerSize];
|
||||||
msg.m_alloc = -1;
|
msg.m_alloc = -1;
|
||||||
msg.m_size = v35 - v36;
|
msg.m_size = size - headerSize;
|
||||||
msg.m_read = 0;
|
msg.m_read = 0;
|
||||||
|
|
||||||
this->AcquireResponseRef();
|
this->AcquireResponseRef();
|
||||||
|
Loading…
Reference in New Issue
Block a user