1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-16 00:03:45 +00:00

1. Fixed bug where pendingBytesToSend went negative

2. Fixed bug where if bytesSent was -1, it caused allocated buffer to be offset incorrectly
This commit is contained in:
Bryan Roe
2019-01-16 15:50:02 -08:00
parent d39dcd0aa1
commit f39beca4aa

View File

@@ -701,6 +701,7 @@ ILibAsyncSocket_SendStatus ILibAsyncSocket_SendTo_MultiWrite(ILibAsyncSocket_Soc
#endif
{
// Not all data was sent
if (bytesSent < 0) { bytesSent = 0; }
data = (ILibAsyncSocket_SendData*)ILibMemory_Allocate(sizeof(ILibAsyncSocket_SendData), 0, NULL, NULL);
if (UserFree == ILibAsyncSocket_MemoryOwnership_USER)
{
@@ -730,7 +731,11 @@ ILibAsyncSocket_SendStatus ILibAsyncSocket_SendTo_MultiWrite(ILibAsyncSocket_Soc
retVal = ILibAsyncSocket_SEND_ON_CLOSED_SOCKET_ERROR;
ILibAsyncSocket_SendError(module);
}
if (bytesSent > 0) { module->TotalBytesSent += bytesSent; module->PendingBytesToSend -= bytesSent; }
if (bytesSent > 0)
{
module->TotalBytesSent += bytesSent; module->PendingBytesToSend -= bytesSent;
if ((int)(module->PendingBytesToSend) < 0) { module->PendingBytesToSend = 0; }
}
}
}
va_end(vlist);
@@ -1904,6 +1909,7 @@ void ILibAsyncSocket_PostSelect(void* socketModule, int slct, fd_set *readset, f
if (bytesSent > 0)
{
module->PendingBytesToSend -= bytesSent;
if ((int)module->PendingBytesToSend < 0) { module->PendingBytesToSend = 0; }
module->TotalBytesSent += bytesSent;
module->PendingSend_Head->bytesSent += bytesSent;
if (module->PendingSend_Head->bytesSent == module->PendingSend_Head->bufferSize)