diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2007-06-14 14:42:21 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2007-06-14 14:42:21 +0000 | 
| commit | b691102ec7a0409d831dff01d2d7075d56dd7516 (patch) | |
| tree | 274f2180a4ed202f3583a785c6949d281c206688 /lib | |
| parent | 2785fe7f6121589dee0a7e49b7cdea5649fac3bd (diff) | |
Shmulik Regev fixed a flaw in the multi interface that occurred when doing
HTTP CONNECT over a proxy
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/multi.c | 11 | 
1 files changed, 9 insertions, 2 deletions
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 */  | 
