changed case: use new host name for subsequent HTTP requests

When a HTTP connection is re-used for a subsequent request without
proxy, it would always re-use the Host: header of the first request. As
host names are case insensitive it would make curl send another host
name case that what the particular request used.

Now it will instead always use the most recent host name to always use
the desired casing.

Added test case 1318 to verify.

Bug: http://curl.haxx.se/mail/lib-2011-12/0314.html
Reported by: Alex Vinnik
This commit is contained in:
Daniel Stenberg
2011-12-31 10:39:54 +01:00
parent 5e0a44e4d5
commit 207cf15032
3 changed files with 64 additions and 9 deletions

View File

@@ -4666,14 +4666,10 @@ static void reuse_conn(struct connectdata *old_conn,
old_conn->proxypasswd = NULL;
}
/* host can change, when doing keepalive with a proxy ! */
if(conn->bits.proxy) {
Curl_safefree(conn->host.rawalloc);
conn->host=old_conn->host;
}
else
/* free the newly allocated name buffer */
Curl_safefree(old_conn->host.rawalloc);
/* host can change, when doing keepalive with a proxy or if the case is
different this time etc */
Curl_safefree(conn->host.rawalloc);
conn->host=old_conn->host;
/* persist connection info in session handle */
Curl_persistconninfo(conn);