|
|
|
|
@ -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"); |
|
|
|
|
} |
|
|
|
|
|