From bb3fa8855c80bec0c6c72abf2772c0188dfe86d1 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 25 Jul 2000 07:31:35 +0000 Subject: [PATCH] Added CURLOPT_PROXYPORT support Added a missing free() in curl_disconnect() Made (https) connect errors abort better and earlier --- lib/url.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/url.c b/lib/url.c index 4af9746..5194da0 100644 --- a/lib/url.c +++ b/lib/url.c @@ -431,11 +431,9 @@ CURLcode curl_setopt(CURL *curl, CURLoption option, ...) data->proxy = va_arg(param, char *); data->bits.httpproxy = data->proxy?1:0; break; -#if 0 - case CURLOPT_FLAGS: - conf_to_internal(data, va_arg(param, long)); + case CURLOPT_PROXYPORT: + data->proxyport = va_arg(param, long); break; -#endif case CURLOPT_TIMEOUT: data->timeout = va_arg(param, long); break; @@ -607,6 +605,8 @@ CURLcode curl_disconnect(CURLconnect *c_connect) struct UrlData *data = conn->data; + free(conn); /* free the connection oriented data */ + /* clean up the sockets and SSL stuff from the previous "round" */ urlfree(data, FALSE); @@ -1104,6 +1104,11 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) /* now set the local port number */ data->port = atoi(prox_portno); } + else if(data->proxyport) { + /* None given in the proxy string, then get the default one if it is + given */ + data->port = data->proxyport; + } /* connect to proxy */ if(!(conn->hp = GetHost(data, proxyptr, hostent_buf, sizeof(hostent_buf)))) { @@ -1163,6 +1168,8 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) if(conn->curl_connect) { /* is there a post-connect() procedure? */ result = conn->curl_connect(conn); + if(result != CURLE_OK) + return result; /* pass back errors */ } pgrsTime(data, TIMER_CONNECT); -- 2.7.4