From 1752d809152da83425a5a9e4bbc74536cf1ee445 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 2 May 2003 09:13:19 +0000 Subject: 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. --- lib/http.c | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) (limited to 'lib/http.c') diff --git a/lib/http.c b/lib/http.c index bfef5cecf..40fa54949 100644 --- a/lib/http.c +++ b/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:"); if(ptr) { /* 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); } + 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:")) http->p_pragma = "Pragma: no-cache\r\n"; -- cgit v1.2.3