summaryrefslogtreecommitdiff
path: root/cppe/src/IceE/Network.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cppe/src/IceE/Network.cpp')
-rw-r--r--cppe/src/IceE/Network.cpp5
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__);