# HG changeset patch # User ivo # Date 1172761064 0 # Node ID 6b245d6e56a9b396b03b513c36cca237d6293b66 # Parent dc9d2940fc05d96d1e4fa840db5a549eb3cf5fd5 winsocks expects an int in milliseconds instead of struct timeval to set the timeout of a socket patch by Zuxy Meng, zuxy dot meng ... gmailcom diff -r dc9d2940fc05 -r 6b245d6e56a9 stream/tcp.c --- a/stream/tcp.c Thu Mar 01 12:54:38 2007 +0000 +++ b/stream/tcp.c Thu Mar 01 14:57:44 2007 +0000 @@ -77,6 +77,9 @@ #ifdef HAVE_WINSOCK2 u_long val; + int to; +#else + struct timeval to; #endif socket_server_fd = socket(af, SOCK_STREAM, 0); @@ -88,10 +91,15 @@ } #if defined(SO_RCVTIMEO) && defined(SO_SNDTIMEO) - tv.tv_sec = 10; - tv.tv_usec = 0; - setsockopt(socket_server_fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); - setsockopt(socket_server_fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)); +#ifdef HAVE_WINSOCK2 + /* timeout in milliseconds */ + to = 10 * 1000; +#else + to.tv_sec = 10; + to.tv_usec = 0; +#endif + setsockopt(socket_server_fd, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to)); + setsockopt(socket_server_fd, SOL_SOCKET, SO_SNDTIMEO, &to, sizeof(to)); #endif switch (af) {