diff options
author | Daniel Stenberg <daniel@haxx.se> | 2003-05-02 09:13:19 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2003-05-02 09:13:19 +0000 |
commit | 1752d809152da83425a5a9e4bbc74536cf1ee445 (patch) | |
tree | e337d7cc7ace39f809df62a56ba0062e929caa2b | |
parent | aa7420e1092f8216eea1081a97b250fdef51377e (diff) |
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.
-rw-r--r-- | lib/http.c | 49 |
1 files changed, 26 insertions, 23 deletions
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"; |