aboutsummaryrefslogtreecommitdiff
path: root/lib/http.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-05-02 09:13:19 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-05-02 09:13:19 +0000
commit1752d809152da83425a5a9e4bbc74536cf1ee445 (patch)
treee337d7cc7ace39f809df62a56ba0062e929caa2b /lib/http.c
parentaa7420e1092f8216eea1081a97b250fdef51377e (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.
Diffstat (limited to 'lib/http.c')
-rw-r--r--lib/http.c49
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";