mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
If there is a custom Host: header specified, we use that host name to
extract the correct set of cookies to send. This functionality is verified by test case 62.
This commit is contained in:
parent
aa7420e109
commit
1752d80915
49
lib/http.c
49
lib/http.c
@ -715,29 +715,6 @@ CURLcode Curl_http(struct connectdata *conn)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data->cookies) {
|
|
||||||
co = Curl_cookie_getlist(data->cookies,
|
|
||||||
host, ppath,
|
|
||||||
(bool)(conn->protocol&PROT_HTTPS?TRUE:FALSE));
|
|
||||||
}
|
|
||||||
if (data->change.proxy && *data->change.proxy &&
|
|
||||||
!data->set.tunnel_thru_httpproxy &&
|
|
||||||
!(conn->protocol&PROT_HTTPS)) {
|
|
||||||
/* The path sent to the proxy is in fact the entire URL */
|
|
||||||
ppath = data->change.url;
|
|
||||||
}
|
|
||||||
if(HTTPREQ_POST_FORM == data->set.httpreq) {
|
|
||||||
/* we must build the whole darned post sequence first, so that we have
|
|
||||||
a size of the whole shebang before we start to send it */
|
|
||||||
result = Curl_getFormData(&http->sendit, data->set.httppost,
|
|
||||||
&http->postsize);
|
|
||||||
if(CURLE_OK != result) {
|
|
||||||
/* Curl_getFormData() doesn't use failf() */
|
|
||||||
failf(data, "failed creating formpost data");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ptr = checkheaders(data, "Host:");
|
ptr = checkheaders(data, "Host:");
|
||||||
if(ptr) {
|
if(ptr) {
|
||||||
/* If we have a given custom Host: header, we extract the host name
|
/* If we have a given custom Host: header, we extract the host name
|
||||||
@ -789,6 +766,32 @@ CURLcode Curl_http(struct connectdata *conn)
|
|||||||
conn->remote_port);
|
conn->remote_port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(data->cookies) {
|
||||||
|
co = Curl_cookie_getlist(data->cookies,
|
||||||
|
conn->allocptr.cookiehost?
|
||||||
|
conn->allocptr.cookiehost:host, ppath,
|
||||||
|
(bool)(conn->protocol&PROT_HTTPS?TRUE:FALSE));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data->change.proxy && *data->change.proxy &&
|
||||||
|
!data->set.tunnel_thru_httpproxy &&
|
||||||
|
!(conn->protocol&PROT_HTTPS)) {
|
||||||
|
/* The path sent to the proxy is in fact the entire URL */
|
||||||
|
ppath = data->change.url;
|
||||||
|
}
|
||||||
|
if(HTTPREQ_POST_FORM == data->set.httpreq) {
|
||||||
|
/* we must build the whole darned post sequence first, so that we have
|
||||||
|
a size of the whole shebang before we start to send it */
|
||||||
|
result = Curl_getFormData(&http->sendit, data->set.httppost,
|
||||||
|
&http->postsize);
|
||||||
|
if(CURLE_OK != result) {
|
||||||
|
/* Curl_getFormData() doesn't use failf() */
|
||||||
|
failf(data, "failed creating formpost data");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!checkheaders(data, "Pragma:"))
|
if(!checkheaders(data, "Pragma:"))
|
||||||
http->p_pragma = "Pragma: no-cache\r\n";
|
http->p_pragma = "Pragma: no-cache\r\n";
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user