mirror of
https://github.com/Tiiffi/mcrcon.git
synced 2025-10-28 11:51:08 -04:00
Merge from upstream develop
This commit is contained in:
13
mcrcon.c
13
mcrcon.c
@ -435,19 +435,18 @@ rc_packet *net_recv_packet(int sd)
|
|||||||
|
|
||||||
packet.size = psize;
|
packet.size = psize;
|
||||||
|
|
||||||
ret = recv(sd, (char *) &packet + sizeof(int), psize, 0);
|
int received = 0;
|
||||||
if (ret == 0)
|
while (received < psize)
|
||||||
|
{
|
||||||
|
ret = recv(sd, (char *) &packet + sizeof(int) + received, psize - received, 0);
|
||||||
|
if (ret == 0) /* connection closed before completing receving */
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Connection lost.\n");
|
fprintf(stderr, "Connection lost.\n");
|
||||||
global_connection_alive = 0;
|
global_connection_alive = 0;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ret != psize)
|
received += ret;
|
||||||
{
|
|
||||||
fprintf(stderr, "Warning: recv() return value (%d) does not match expected packet size (%d).\n", ret, psize);
|
|
||||||
net_clean_incoming(sd, DATA_BUFFSIZE); /* Should be enough. Needs some checking */
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return &packet;
|
return &packet;
|
||||||
|
|||||||
Reference in New Issue
Block a user