diff options
Diffstat (limited to 'cppe/src/IceE/Network.cpp')
-rw-r--r-- | cppe/src/IceE/Network.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/cppe/src/IceE/Network.cpp b/cppe/src/IceE/Network.cpp index d083b95db70..5bcf5640307 100644 --- a/cppe/src/IceE/Network.cpp +++ b/cppe/src/IceE/Network.cpp @@ -349,10 +349,15 @@ void IceInternal::setTimeout(SOCKET fd, bool recv, int timeout) { assert(timeout != 0); +#ifndef _WIN32 struct timeval tv; tv.tv_sec = timeout > 0 ? timeout / 1000 : 0; tv.tv_usec = timeout > 0 ? (timeout - tv.tv_sec * 1000) * 1000 : 0; if(setsockopt(fd, SOL_SOCKET, recv ? SO_RCVTIMEO : SO_SNDTIMEO, (char*)&tv, (int)sizeof(timeval)) == SOCKET_ERROR) +#else + int tt = timeout > 0 ? timeout : 0; + if(setsockopt(fd, SOL_SOCKET, recv ? SO_RCVTIMEO : SO_SNDTIMEO, (char*)&tt, (int)sizeof(int)) == SOCKET_ERROR) +#endif { closeSocketNoThrow(fd); SocketException ex(__FILE__, __LINE__); |