1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 15:48:49 -05:00

A custom Host: header is only considered if the request is not made by

following a location. After discussions with Tim Baker.
This commit is contained in:
Daniel Stenberg 2004-02-06 08:11:58 +00:00
parent e5165af5a6
commit f56d753507

View File

@ -1149,9 +1149,11 @@ CURLcode Curl_http(struct connectdata *conn)
}
ptr = checkheaders(data, "Host:");
if(ptr) {
/* If we have a given custom Host: header, we extract the host name
in order to possibly use it for cookie reasons later on. */
if(ptr && !data->state.this_is_a_follow) {
/* If we have a given custom Host: header, we extract the host name in
order to possibly use it for cookie reasons later on. We only allow the
custom Host: header if this is NOT a redirect, as setting Host: in the
redirected request is being out on thin ice. */
char *start = ptr+strlen("Host:");
while(*start && isspace((int)*start ))
start++;
@ -1171,13 +1173,7 @@ CURLcode Curl_http(struct connectdata *conn)
}
}
else {
/* 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);
Curl_safefree(conn->allocptr.host);
/* When building Host: headers, we must put the host name within
[brackets] if the host name is a plain IPv6-address. RFC2732-style. */