- 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
1 changed files with 8 additions and 8 deletions

View File

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