mirror of
https://github.com/curl/curl.git
synced 2026-07-26 03:47:17 +03:00
Shmulik Regev fixed a flaw in the multi interface that occurred when doing
HTTP CONNECT over a proxy
This commit is contained in:
parent
2785fe7f61
commit
b691102ec7
3 changed files with 37 additions and 3 deletions
11
lib/multi.c
11
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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue