diff options
Diffstat (limited to 'lib/multi.c')
-rw-r--r-- | lib/multi.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/multi.c b/lib/multi.c index 95d386f85..c5712f619 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1055,9 +1055,16 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, easy->result = Curl_is_connected(easy->easy_conn, FIRSTSOCKET, &connected); - if(connected) - easy->result = Curl_protocol_connect(easy->easy_conn, - &protocol_connect); + if(connected) { + /* see if we need to do any proxy magic first once we connected */ + easy->result = Curl_connected_proxy(easy->easy_conn); + + if(!easy->result) + /* if everything is still fine we do the protocol-specific connect + setup */ + easy->result = Curl_protocol_connect(easy->easy_conn, + &protocol_connect); + } if(CURLE_OK != easy->result) { /* failure detected */ |