Skip to content

Commit

Permalink
Curl_connected_proxy: skip the bits.tcpconnect check
Browse files Browse the repository at this point in the history
Simply because the TCP might be connected already we cannot skip the
proxy connect procedure. We need to be careful to not overload more
meaning to the bits.tcpconnect field like this.

With this fix, SOCKS proxies work again when the multi interface is
used. I believe this regression was added with commit 4b351d0,
released as 7.20.1.

Left todo: add a test case that verifies this functionality that
prevents us from breaking it again in the future!

Reported by: Robin Cornelius
Bug: http://curl.haxx.se/bug/view.cgi?id=3033966
  • Loading branch information
bagder committed Aug 2, 2010
1 parent 687df5c commit a1a5ba3
Showing 1 changed file with 1 addition and 7 deletions.
8 changes: 1 addition & 7 deletions lib/url.c
Expand Up @@ -3127,20 +3127,14 @@ ConnectionStore(struct SessionHandle *data,
/* after a TCP connection to the proxy has been verified, this function does
the next magic step.
Note: this function (and its sub-functions) calls failf()
Note: this function's sub-functions call failf()
*/
CURLcode Curl_connected_proxy(struct connectdata *conn)
{
CURLcode result = CURLE_OK;
struct SessionHandle *data = conn->data;

if(conn->bits.tcpconnect)
/* allow this to get called again from the multi interface when TCP is
found connected in the state machine, even though it has already been
called if the connection happened "instantly" */
return CURLE_OK;

switch(data->set.proxytype) {
#ifndef CURL_DISABLE_PROXY
case CURLPROXY_SOCKS5:
Expand Down

0 comments on commit a1a5ba3

Please sign in to comment.