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