Loading lib/connect.c +21 −12 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ static bool verifyconnect(curl_socket_t sockfd); /* * Curl_ourerrno() returns the errno (or equivalent) on this platform to * hide platform specific for the function that calls this. */ int Curl_ourerrno(void) { #ifdef WIN32 Loading @@ -113,13 +117,11 @@ int Curl_ourerrno(void) #endif } /************************************************************************* * Curl_nonblock * * Description: * Set the socket to either blocking or non-blocking mode. /* * Curl_nonblock() set the given socket to either blocking or non-blocking * mode based on the 'nonblock' boolean argument. This function is highly * portable. */ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */ int nonblock /* TRUE or FALSE */) { Loading Loading @@ -177,12 +179,19 @@ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */ } /* * waitconnect() returns: * waitconnect() waits for a TCP connect on the given socket for the specified * number if milliseconds. It returns: * 0 fine connect * -1 select() error * 1 select() timeout * 2 select() returned with an error condition * 2 select() returned with an error condition fd_set */ #define WAITCONN_CONNECTED 0 #define WAITCONN_SELECT_ERROR -1 #define WAITCONN_TIMEOUT 1 #define WAITCONN_FDSET_ERROR 2 static int waitconnect(curl_socket_t sockfd, /* socket */ long timeout_msec) Loading Loading @@ -213,18 +222,18 @@ int waitconnect(curl_socket_t sockfd, /* socket */ rc = select(sockfd+1, NULL, &fd, &errfd, &interval); if(-1 == rc) /* error, no connect here, try next */ return -1; return WAITCONN_SELECT_ERROR; else if(0 == rc) /* timeout, no connect today */ return 1; return WAITCONN_TIMEOUT; if(FD_ISSET(sockfd, &errfd)) /* error condition caught */ return 2; return WAITCONN_FDSET_ERROR; /* we have a connect! */ return 0; return WAITCONN_CONNECTED; } static CURLcode bindlocal(struct connectdata *conn, Loading lib/easy.c +35 −8 Original line number Diff line number Diff line Loading @@ -85,14 +85,16 @@ #include "memdebug.h" #endif /* Silly win32 socket initialization functions */ #if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__) /* win32_cleanup() is for win32 socket cleanup functionality, the opposite of win32_init() */ static void win32_cleanup(void) { WSACleanup(); } /* win32_init() performs win32 socket initialization to properly setup the stack to allow networking */ static CURLcode win32_init(void) { WORD wVersionRequested; Loading Loading @@ -126,23 +128,23 @@ static CURLcode win32_init(void) WSACleanup(); return CURLE_FAILED_INIT; } /* The Windows Sockets DLL is acceptable. Proceed. */ return CURLE_OK; } /* The Windows Sockets DLL is acceptable. Proceed. */ #else /* These functions exist merely to prevent compiler warnings */ static CURLcode win32_init(void) { return CURLE_OK; } static void win32_cleanup(void) { } #endif /* true globals -- for curl_global_init() and curl_global_cleanup() */ static unsigned int initialized = 0; static long init_flags = 0; /** * Globally initializes cURL given a bitwise set of * the different features to initialize. * curl_global_init() globally initializes cURL given a bitwise set of the * different features of what to initialize. */ CURLcode curl_global_init(long flags) { Loading @@ -168,8 +170,8 @@ CURLcode curl_global_init(long flags) } /** * Globally cleanup cURL, uses the value of "init_flags" to determine * what needs to be cleaned up and what doesn't * curl_global_cleanup() globally cleanups cURL, uses the value of * "init_flags" to determine what needs to be cleaned up and what doesn't. */ void curl_global_cleanup(void) { Loading @@ -192,6 +194,10 @@ void curl_global_cleanup(void) init_flags = 0; } /* * curl_easy_init() is the external interface to alloc, setup and init an * easy handle that is returned. If anything goes wrong, NULL is returned. */ CURL *curl_easy_init(void) { CURLcode res; Loading @@ -213,6 +219,10 @@ CURL *curl_easy_init(void) return data; } /* * curl_easy_setopt() is the external interface for setting options on an * easy handle. */ typedef int (*func_T)(void); CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...) { Loading Loading @@ -257,6 +267,10 @@ CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...) return ret; } /* * curl_easy_perform() is the external interface that performs a transfer * previously setup. */ CURLcode curl_easy_perform(CURL *curl) { struct SessionHandle *data = (struct SessionHandle *)curl; Loading Loading @@ -285,6 +299,10 @@ CURLcode curl_easy_perform(CURL *curl) return Curl_perform(data); } /* * curl_easy_cleanup() is the external interface to cleaning/freeing the given * easy handle. */ void curl_easy_cleanup(CURL *curl) { struct SessionHandle *data = (struct SessionHandle *)curl; Loading @@ -296,6 +314,10 @@ void curl_easy_cleanup(CURL *curl) Curl_close(data); } /* * curl_easy_getinfo() is an external interface that allows an app to retrieve * information from a performed transfer and similar. */ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...) { va_list arg; Loading @@ -308,6 +330,11 @@ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...) return Curl_getinfo(data, info, paramp); } /* * curl_easy_duphandle() is an external interface to allow duplication of a * given input easy handle. The returned handle will be a new working handle * with all options set exactly as the input source handle. */ CURL *curl_easy_duphandle(CURL *incurl) { struct SessionHandle *data=(struct SessionHandle *)incurl; Loading Loading
lib/connect.c +21 −12 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ static bool verifyconnect(curl_socket_t sockfd); /* * Curl_ourerrno() returns the errno (or equivalent) on this platform to * hide platform specific for the function that calls this. */ int Curl_ourerrno(void) { #ifdef WIN32 Loading @@ -113,13 +117,11 @@ int Curl_ourerrno(void) #endif } /************************************************************************* * Curl_nonblock * * Description: * Set the socket to either blocking or non-blocking mode. /* * Curl_nonblock() set the given socket to either blocking or non-blocking * mode based on the 'nonblock' boolean argument. This function is highly * portable. */ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */ int nonblock /* TRUE or FALSE */) { Loading Loading @@ -177,12 +179,19 @@ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */ } /* * waitconnect() returns: * waitconnect() waits for a TCP connect on the given socket for the specified * number if milliseconds. It returns: * 0 fine connect * -1 select() error * 1 select() timeout * 2 select() returned with an error condition * 2 select() returned with an error condition fd_set */ #define WAITCONN_CONNECTED 0 #define WAITCONN_SELECT_ERROR -1 #define WAITCONN_TIMEOUT 1 #define WAITCONN_FDSET_ERROR 2 static int waitconnect(curl_socket_t sockfd, /* socket */ long timeout_msec) Loading Loading @@ -213,18 +222,18 @@ int waitconnect(curl_socket_t sockfd, /* socket */ rc = select(sockfd+1, NULL, &fd, &errfd, &interval); if(-1 == rc) /* error, no connect here, try next */ return -1; return WAITCONN_SELECT_ERROR; else if(0 == rc) /* timeout, no connect today */ return 1; return WAITCONN_TIMEOUT; if(FD_ISSET(sockfd, &errfd)) /* error condition caught */ return 2; return WAITCONN_FDSET_ERROR; /* we have a connect! */ return 0; return WAITCONN_CONNECTED; } static CURLcode bindlocal(struct connectdata *conn, Loading
lib/easy.c +35 −8 Original line number Diff line number Diff line Loading @@ -85,14 +85,16 @@ #include "memdebug.h" #endif /* Silly win32 socket initialization functions */ #if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__) /* win32_cleanup() is for win32 socket cleanup functionality, the opposite of win32_init() */ static void win32_cleanup(void) { WSACleanup(); } /* win32_init() performs win32 socket initialization to properly setup the stack to allow networking */ static CURLcode win32_init(void) { WORD wVersionRequested; Loading Loading @@ -126,23 +128,23 @@ static CURLcode win32_init(void) WSACleanup(); return CURLE_FAILED_INIT; } /* The Windows Sockets DLL is acceptable. Proceed. */ return CURLE_OK; } /* The Windows Sockets DLL is acceptable. Proceed. */ #else /* These functions exist merely to prevent compiler warnings */ static CURLcode win32_init(void) { return CURLE_OK; } static void win32_cleanup(void) { } #endif /* true globals -- for curl_global_init() and curl_global_cleanup() */ static unsigned int initialized = 0; static long init_flags = 0; /** * Globally initializes cURL given a bitwise set of * the different features to initialize. * curl_global_init() globally initializes cURL given a bitwise set of the * different features of what to initialize. */ CURLcode curl_global_init(long flags) { Loading @@ -168,8 +170,8 @@ CURLcode curl_global_init(long flags) } /** * Globally cleanup cURL, uses the value of "init_flags" to determine * what needs to be cleaned up and what doesn't * curl_global_cleanup() globally cleanups cURL, uses the value of * "init_flags" to determine what needs to be cleaned up and what doesn't. */ void curl_global_cleanup(void) { Loading @@ -192,6 +194,10 @@ void curl_global_cleanup(void) init_flags = 0; } /* * curl_easy_init() is the external interface to alloc, setup and init an * easy handle that is returned. If anything goes wrong, NULL is returned. */ CURL *curl_easy_init(void) { CURLcode res; Loading @@ -213,6 +219,10 @@ CURL *curl_easy_init(void) return data; } /* * curl_easy_setopt() is the external interface for setting options on an * easy handle. */ typedef int (*func_T)(void); CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...) { Loading Loading @@ -257,6 +267,10 @@ CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...) return ret; } /* * curl_easy_perform() is the external interface that performs a transfer * previously setup. */ CURLcode curl_easy_perform(CURL *curl) { struct SessionHandle *data = (struct SessionHandle *)curl; Loading Loading @@ -285,6 +299,10 @@ CURLcode curl_easy_perform(CURL *curl) return Curl_perform(data); } /* * curl_easy_cleanup() is the external interface to cleaning/freeing the given * easy handle. */ void curl_easy_cleanup(CURL *curl) { struct SessionHandle *data = (struct SessionHandle *)curl; Loading @@ -296,6 +314,10 @@ void curl_easy_cleanup(CURL *curl) Curl_close(data); } /* * curl_easy_getinfo() is an external interface that allows an app to retrieve * information from a performed transfer and similar. */ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...) { va_list arg; Loading @@ -308,6 +330,11 @@ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...) return Curl_getinfo(data, info, paramp); } /* * curl_easy_duphandle() is an external interface to allow duplication of a * given input easy handle. The returned handle will be a new working handle * with all options set exactly as the input source handle. */ CURL *curl_easy_duphandle(CURL *incurl) { struct SessionHandle *data=(struct SessionHandle *)incurl; Loading