http_proxy: multiple CONNECT with hyper done better
Enabled test 206 Closes #7888
This commit is contained in:
Родитель
5276ec941f
Коммит
823d3ab855
|
@ -284,8 +284,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
|
||||||
/* This only happens if we've looped here due to authentication
|
/* This only happens if we've looped here due to authentication
|
||||||
reasons, and we don't really use the newly cloned URL here
|
reasons, and we don't really use the newly cloned URL here
|
||||||
then. Just free() it. */
|
then. Just free() it. */
|
||||||
free(data->req.newurl);
|
Curl_safefree(data->req.newurl);
|
||||||
data->req.newurl = NULL;
|
|
||||||
|
|
||||||
/* initialize send-buffer */
|
/* initialize send-buffer */
|
||||||
Curl_dyn_init(req, DYN_HTTP_REQUEST);
|
Curl_dyn_init(req, DYN_HTTP_REQUEST);
|
||||||
|
@ -805,6 +804,14 @@ static CURLcode CONNECT(struct Curl_easy *data,
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
infof(data, "Establish HTTP proxy tunnel to %s:%d",
|
||||||
|
hostname, remote_port);
|
||||||
|
|
||||||
|
/* This only happens if we've looped here due to authentication
|
||||||
|
reasons, and we don't really use the newly cloned URL here
|
||||||
|
then. Just free() it. */
|
||||||
|
Curl_safefree(data->req.newurl);
|
||||||
|
|
||||||
result = CONNECT_host(data, conn, hostname, remote_port,
|
result = CONNECT_host(data, conn, hostname, remote_port,
|
||||||
&hostheader, &host);
|
&hostheader, &host);
|
||||||
if(result)
|
if(result)
|
||||||
|
@ -945,6 +952,14 @@ static CURLcode CONNECT(struct Curl_easy *data,
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we are supposed to continue and request a new URL, which basically
|
||||||
|
* means the HTTP authentication is still going on so if the tunnel
|
||||||
|
* is complete we start over in INIT state */
|
||||||
|
if(data->req.newurl && (TUNNEL_COMPLETE == s->tunnel_state)) {
|
||||||
|
infof(data, "CONNECT request done, loop to make another");
|
||||||
|
connect_init(data, TRUE); /* reinit */
|
||||||
|
}
|
||||||
} while(data->req.newurl);
|
} while(data->req.newurl);
|
||||||
|
|
||||||
result = CURLE_OK;
|
result = CURLE_OK;
|
||||||
|
|
|
@ -40,7 +40,6 @@
|
||||||
# hyper support remains EXPERIMENTAL as long as there's a test number
|
# hyper support remains EXPERIMENTAL as long as there's a test number
|
||||||
# listed below
|
# listed below
|
||||||
%if hyper
|
%if hyper
|
||||||
206
|
|
||||||
207
|
207
|
||||||
209
|
209
|
||||||
213
|
213
|
||||||
|
|
Загрузка…
Ссылка в новой задаче