- Have NET_Sleep work with Windows' INVALID_SOCKET again...

- Use SOCKET_ERROR in NET_Sleep.
This commit is contained in:
Zack Middleton 2012-06-19 22:36:54 +00:00
parent 725c9df608
commit 3b09685b42

View file

@ -1632,7 +1632,7 @@ void NET_Event(fd_set *fdr)
// com_dropsim->value percent of incoming packets get dropped.
if(rand() < (int) (((double) RAND_MAX) / 100.0 * (double) net_dropsim->value))
continue; // drop this packet
}
}
if(com_sv_running->integer)
Com_RunAndTimeServerPacket(&from, &netmsg);
@ -1672,14 +1672,11 @@ void NET_Sleep(int msec)
if(ip6_socket != INVALID_SOCKET)
{
FD_SET(ip6_socket, &fdr);
if(ip6_socket > highestfd)
if(highestfd == INVALID_SOCKET || ip6_socket > highestfd)
highestfd = ip6_socket;
}
timeout.tv_sec = msec/1000;
timeout.tv_usec = (msec%1000)*1000;
#ifdef _WIN32
if(highestfd == INVALID_SOCKET)
{
@ -1689,9 +1686,12 @@ void NET_Sleep(int msec)
}
#endif
timeout.tv_sec = msec/1000;
timeout.tv_usec = (msec%1000)*1000;
retval = select(highestfd + 1, &fdr, NULL, NULL, &timeout);
if(retval < 0)
if(retval == SOCKET_ERROR)
Com_Printf("Warning: select() syscall failed: %s\n", NET_ErrorString());
else if(retval > 0)
NET_Event(&fdr);