diff options
author | Daniel Stenberg <daniel@haxx.se> | 2000-07-25 07:31:35 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2000-07-25 07:31:35 +0000 |
commit | bb3fa8855c80bec0c6c72abf2772c0188dfe86d1 (patch) | |
tree | 7316322914bb3e3debbe3f8125d1e98e82456787 /lib | |
parent | caf8c01e85d3ceeabd8cce132009854ec5f327d5 (diff) |
Added CURLOPT_PROXYPORT support
Added a missing free() in curl_disconnect()
Made (https) connect errors abort better and earlier
Diffstat (limited to 'lib')
-rw-r--r-- | lib/url.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -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); |