aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2011-12-31 10:39:54 +0100
committerDaniel Stenberg <daniel@haxx.se>2011-12-31 10:45:28 +0100
commit207cf15032a7e8eab71b2f4655fc5c21e5d3623d (patch)
tree7a1aec3decaba8c2b1be12279ee88dc207381bc2 /lib/url.c
parent5e0a44e4d58855a52b6e0744df4fab09ded3873c (diff)
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
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/url.c b/lib/url.c
index a95426fe6..86a5576c8 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -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);