Browse Source

Merge eb56c9f4f5 into 7369b92801

pull/4/merge
LP 4 months ago committed by GitHub
parent
commit
c3ee732d01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 24
      ext/miniupnpc/connecthostport.c

24
ext/miniupnpc/connecthostport.c

@ -74,7 +74,11 @@ int connecthostport(const char * host, unsigned short port,
struct addrinfo hints;
#endif /* #ifdef USE_GETHOSTBYNAME */
#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT
#ifdef _WIN32
DWORD timeout;
#else
struct timeval timeout;
#endif
#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */
#ifdef USE_GETHOSTBYNAME
@ -94,15 +98,25 @@ int connecthostport(const char * host, unsigned short port,
}
#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT
/* setting a 3 seconds timeout for the connect() call */
#ifdef _WIN32
timeout = 3000; /* milliseconds */
if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (const char *)&timeout, sizeof(timeout)) < 0)
#else
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0)
#endif
{
PRINT_SOCKET_ERROR("setsockopt SO_RCVTIMEO");
}
#ifdef _WIN32
timeout = 3000; /* milliseconds */
if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, (const char *)&timeout, sizeof(timeout)) < 0)
#else
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(struct timeval)) < 0)
#endif
{
PRINT_SOCKET_ERROR("setsockopt SO_SNDTIMEO");
}
@ -193,15 +207,25 @@ int connecthostport(const char * host, unsigned short port,
}
#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT
/* setting a 3 seconds timeout for the connect() call */
#ifdef _WIN32
timeout = 3000; /* milliseconds */
if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (const char *)&timeout, sizeof(timeout)) < 0)
#else
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0)
#endif
{
PRINT_SOCKET_ERROR("setsockopt");
}
#ifdef _WIN32
timeout = 3000; /* milliseconds */
if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, (const char *)&timeout, sizeof(timeout)) < 0)
#else
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(struct timeval)) < 0)
#endif
{
PRINT_SOCKET_ERROR("setsockopt");
}

Loading…
Cancel
Save