Loading lib/url.c +24 −0 Original line number Diff line number Diff line Loading @@ -1060,6 +1060,11 @@ ConnectionStore(struct UrlData *data, static CURLcode ConnectPlease(struct UrlData *data, struct connectdata *conn) { #if defined(WIN32) unsigned long nonblock = 0; fd_set connectfd; struct timeval conntimeout; #endif #ifndef ENABLE_IPV6 conn->firstsocket = socket(AF_INET, SOCK_STREAM, 0); Loading Loading @@ -1222,10 +1227,29 @@ static CURLcode ConnectPlease(struct UrlData *data, return CURLE_COULDNT_CONNECT; } #else /* non-zero nonblock value sets socket as nonblocking under Win32 */ #if defined(WIN32) FD_ZERO (&connectfd); FD_SET(conn->firstsocket, &connectfd); if (conn->data->connecttimeout > 0) { nonblock = 1; } ioctlsocket(conn->firstsocket, FIONBIO, &nonblock); #endif if (connect(conn->firstsocket, (struct sockaddr *) &(conn->serv_addr), sizeof(conn->serv_addr) ) < 0) { #if defined(WIN32) conntimeout.tv_sec = conn->data->connecttimeout; conntimeout.tv_usec = 0; if(-1 != select (conn->firstsocket + 1, NULL, &connectfd, NULL, &conntimeout)) { if (FD_ISSET(conn->firstsocket, &connectfd)) return CURLE_OK; else errno = EINTR; } #endif switch(errno) { #ifdef ECONNREFUSED /* this should be made nicer */ Loading Loading
lib/url.c +24 −0 Original line number Diff line number Diff line Loading @@ -1060,6 +1060,11 @@ ConnectionStore(struct UrlData *data, static CURLcode ConnectPlease(struct UrlData *data, struct connectdata *conn) { #if defined(WIN32) unsigned long nonblock = 0; fd_set connectfd; struct timeval conntimeout; #endif #ifndef ENABLE_IPV6 conn->firstsocket = socket(AF_INET, SOCK_STREAM, 0); Loading Loading @@ -1222,10 +1227,29 @@ static CURLcode ConnectPlease(struct UrlData *data, return CURLE_COULDNT_CONNECT; } #else /* non-zero nonblock value sets socket as nonblocking under Win32 */ #if defined(WIN32) FD_ZERO (&connectfd); FD_SET(conn->firstsocket, &connectfd); if (conn->data->connecttimeout > 0) { nonblock = 1; } ioctlsocket(conn->firstsocket, FIONBIO, &nonblock); #endif if (connect(conn->firstsocket, (struct sockaddr *) &(conn->serv_addr), sizeof(conn->serv_addr) ) < 0) { #if defined(WIN32) conntimeout.tv_sec = conn->data->connecttimeout; conntimeout.tv_usec = 0; if(-1 != select (conn->firstsocket + 1, NULL, &connectfd, NULL, &conntimeout)) { if (FD_ISSET(conn->firstsocket, &connectfd)) return CURLE_OK; else errno = EINTR; } #endif switch(errno) { #ifdef ECONNREFUSED /* this should be made nicer */ Loading