This commit is contained in:
LP 2026-03-03 10:10:03 +00:00 committed by GitHub
commit cd5a2a2b98
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

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