From b691102ec7a0409d831dff01d2d7075d56dd7516 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 14 Jun 2007 14:42:21 +0000 Subject: Shmulik Regev fixed a flaw in the multi interface that occurred when doing HTTP CONNECT over a proxy --- lib/multi.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/multi.c b/lib/multi.c index bbcf6319e..5e91a5e7c 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1007,8 +1007,15 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, if(!protocol_connect) { /* We have a TCP connection, but 'protocol_connect' may be false and then we continue to 'STATE_PROTOCONNECT'. If protocol - connect is TRUE, we move on to STATE_DO. */ - multistate(easy, CURLM_STATE_PROTOCONNECT); + connect is TRUE, we move on to STATE_DO. + BUT if we are using a proxy we must change to WAITPROXYCONNECT + */ +#ifndef CURL_DISABLE_HTTP + if (easy->easy_conn->bits.tunnel_connecting) + multistate(easy, CURLM_STATE_WAITPROXYCONNECT); + else +#endif + multistate(easy, CURLM_STATE_PROTOCONNECT); } else { /* after the connect has completed, go WAITDO */ -- cgit v1.2.3