diff options
-rw-r--r-- | lib/connect.c | 6 | ||||
-rw-r--r-- | lib/url.c | 19 | ||||
-rw-r--r-- | lib/urldata.h | 6 |
3 files changed, 22 insertions, 9 deletions
diff --git a/lib/connect.c b/lib/connect.c index b58a8be5d..8bb4e2c43 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -489,7 +489,7 @@ static void Curl_setNoDelay(struct connectdata *conn, { #ifdef TCP_NODELAY struct SessionHandle *data= conn->data; - socklen_t onoff = (socklen_t) data->tcp_nodelay; + socklen_t onoff = (socklen_t) data->set.tcp_nodelay; if(setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (void *)&onoff, sizeof(onoff)) < 0) infof(data, "Could not set TCP_NODELAY: %s\n", @@ -580,7 +580,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ if (sockfd == CURL_SOCKET_BAD) continue; - else if(data->tcp_nodelay) + else if(data->set.tcp_nodelay) Curl_setNoDelay(conn, sockfd); #else /* @@ -601,7 +601,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ return CURLE_COULDNT_CONNECT; /* big time error */ } - else if(data->tcp_nodelay) + else if(data->set.tcp_nodelay) Curl_setNoDelay(conn, sockfd); /* nasty address work before connect can be made */ @@ -246,6 +246,14 @@ CURLcode Curl_close(struct SessionHandle *data) return CURLE_OK; } +/** + * Curl_open() + * + * @param curl is a pointer to a sessionhandle pointer that gets set by this + * function. + * @return CURLcode + */ + CURLcode Curl_open(struct SessionHandle **curl) { /* We don't yet support specifying the URL at this point */ @@ -1308,7 +1316,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...) * Enable or disable TCP_NODELAY, which will disable/enable the Nagle * algorithm */ - data->tcp_nodelay = va_arg(param, long); + data->set.tcp_nodelay = va_arg(param, long); break; default: @@ -1968,13 +1976,20 @@ CURLcode Curl_protocol_connect(struct connectdata *conn, return result; /* pass back status */ } -/* +/** * CreateConnection() sets up a new connectdata struct, or re-uses an already * existing one, and resolves host name. * * if this function returns CURLE_OK and *async is set to TRUE, the resolve * response will be coming asynchronously. If *async is FALSE, the name is * already resolved. + * + * @param data The sessionhandle pointer + * @param in_connect is set to the next connection data pointer + * @param addr is set to the new dns entry for this connection + * @param async is set TRUE/FALSE depending on the nature of this lookup + * @return CURLcode + * @see SetupConnection() */ static CURLcode CreateConnection(struct SessionHandle *data, diff --git a/lib/urldata.h b/lib/urldata.h index 4f53d8412..fb1150468 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -889,8 +889,9 @@ struct UserDefined { bool ftp_use_eprt; /* if EPRT is to be attempted or not */ curl_ftpssl ftp_ssl; /* if AUTH TLS is to be attempted etc */ bool no_signal; /* do not use any signal/alarm handler */ + bool global_dns_cache; /* subject for future removal */ + bool tcp_nodelay; /* whether to enable TCP_NODELAY or not */ - bool global_dns_cache; }; /* @@ -918,9 +919,6 @@ struct SessionHandle { #if defined(USE_SSLEAY) && defined(HAVE_OPENSSL_ENGINE_H) ENGINE* engine; #endif /* USE_SSLEAY */ - - /* This tells CreateConnection() whether to enable TCP_NODELAY or not */ - int tcp_nodelay; }; #define LIBCURL_NAME "libcurl" |