From ac0bad2433a35c274cf8ad14e158251b88817b33 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 9 Mar 2001 16:48:18 +0000 Subject: [PATCH] remake Host: for each connection and it'll work with proxies too --- lib/http.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/http.c b/lib/http.c index 2da7cbf72..52b009d3e 100644 --- a/lib/http.c +++ b/lib/http.c @@ -469,10 +469,14 @@ CURLcode Curl_http(struct connectdata *conn) http->sendit = Curl_getFormData(data->httppost, &http->postsize); } - if(!checkheaders(data, "Host:") && - !conn->allocptr.host) { - /* if ptr_host is already set, it is OK since we only re-use connections - to the very same host and port */ + if(!checkheaders(data, "Host:")) { + /* if ptr_host is already set, it is almost OK since we only re-use + connections to the very same host and port, but when we use a HTTP + proxy we have a persistant connect and yet we must change the Host: + header! */ + + if(conn->allocptr.host) + free(conn->allocptr.host); if(((conn->protocol&PROT_HTTPS) && (conn->remote_port == PORT_HTTPS)) || (!(conn->protocol&PROT_HTTPS) && (conn->remote_port == PORT_HTTP)) )