diff --git a/lib/url.c b/lib/url.c index 9ad503dbd..df12cbf6d 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1152,6 +1152,7 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, data->set.httpreq = HTTPREQ_POST_FORM; data->set.opt_no_body = FALSE; /* this is implied */ break; +#endif /* CURL_DISABLE_HTTP */ case CURLOPT_MIMEPOST: /* @@ -1194,6 +1195,7 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, data->set.headers = va_arg(param, struct curl_slist *); break; +#ifndef CURL_DISABLE_HTTP case CURLOPT_PROXYHEADER: /* * Set a list with proxy headers to use (or replace internals with) @@ -1345,7 +1347,7 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, } break; -#endif /* CURL_DISABLE_COOKIES */ +#endif /* !CURL_DISABLE_COOKIES */ case CURLOPT_HTTPGET: /* @@ -1371,6 +1373,16 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, data->set.httpversion = arg; break; + case CURLOPT_EXPECT_100_TIMEOUT_MS: + /* + * Time to wait for a response to a HTTP request containing an + * Expect: 100-continue header before sending the data anyway. + */ + data->set.expect_100_timeout = va_arg(param, long); + break; + +#endif /* CURL_DISABLE_HTTP */ + case CURLOPT_HTTPAUTH: /* * Set HTTP Authentication type BITMASK. @@ -1422,16 +1434,6 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, } break; - case CURLOPT_EXPECT_100_TIMEOUT_MS: - /* - * Time to wait for a response to a HTTP request containing an - * Expect: 100-continue header before sending the data anyway. - */ - data->set.expect_100_timeout = va_arg(param, long); - break; - -#endif /* CURL_DISABLE_HTTP */ - case CURLOPT_CUSTOMREQUEST: /* * Set a custom string to use as request diff --git a/src/tool_operate.c b/src/tool_operate.c index 6dd05dbf4..5401955af 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -986,6 +986,31 @@ static CURLcode operate_do(struct GlobalConfig *global, my_setopt(curl, CURLOPT_ERRORBUFFER, errorbuffer); my_setopt(curl, CURLOPT_TIMEOUT_MS, (long)(config->timeout * 1000)); + switch(config->httpreq) { + case HTTPREQ_SIMPLEPOST: + my_setopt_str(curl, CURLOPT_POSTFIELDS, + config->postfields); + my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, + config->postfieldsize); + break; + case HTTPREQ_MIMEPOST: + my_setopt_mimepost(curl, CURLOPT_MIMEPOST, config->mimepost); + break; + default: + break; + } + + /* new in libcurl 7.10.6 (default is Basic) */ + if(config->authtype) + my_setopt_bitmask(curl, CURLOPT_HTTPAUTH, (long)config->authtype); + + my_setopt_slist(curl, CURLOPT_HTTPHEADER, config->headers); + + if(built_in_protos & (CURLPROTO_HTTP | CURLPROTO_RTSP)) { + my_setopt_str(curl, CURLOPT_REFERER, config->referer); + my_setopt_str(curl, CURLOPT_USERAGENT, config->useragent); + } + if(built_in_protos & CURLPROTO_HTTP) { long postRedir = 0; @@ -995,24 +1020,7 @@ static CURLcode operate_do(struct GlobalConfig *global, my_setopt(curl, CURLOPT_UNRESTRICTED_AUTH, config->unrestricted_auth?1L:0L); - switch(config->httpreq) { - case HTTPREQ_SIMPLEPOST: - my_setopt_str(curl, CURLOPT_POSTFIELDS, - config->postfields); - my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, - config->postfieldsize); - break; - case HTTPREQ_MIMEPOST: - my_setopt_mimepost(curl, CURLOPT_MIMEPOST, config->mimepost); - break; - default: - break; - } - - my_setopt_str(curl, CURLOPT_REFERER, config->referer); my_setopt(curl, CURLOPT_AUTOREFERER, config->autoreferer?1L:0L); - my_setopt_str(curl, CURLOPT_USERAGENT, config->useragent); - my_setopt_slist(curl, CURLOPT_HTTPHEADER, config->headers); /* new in libcurl 7.36.0 */ if(config->proxyheaders) { @@ -1029,10 +1037,6 @@ static CURLcode operate_do(struct GlobalConfig *global, my_setopt_enum(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS); } - /* new in libcurl 7.10.6 (default is Basic) */ - if(config->authtype) - my_setopt_bitmask(curl, CURLOPT_HTTPAUTH, (long)config->authtype); - /* curl 7.19.1 (the 301 version existed in 7.18.2), 303 was added in 7.26.0 */ if(config->post301) diff --git a/tests/data/test1401 b/tests/data/test1401 index 2217ed8c1..de4d0aa4f 100644 --- a/tests/data/test1401 +++ b/tests/data/test1401 @@ -84,10 +84,10 @@ int main(int argc, char *argv[]) curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1401"); curl_easy_setopt(hnd, CURLOPT_HEADER, 1L); curl_easy_setopt(hnd, CURLOPT_USERPWD, "fake:user"); - curl_easy_setopt(hnd, CURLOPT_USERAGENT, "MyUA"); - curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, slist1); - curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); curl_easy_setopt(hnd, CURLOPT_HTTPAUTH, (long)CURLAUTH_BASIC); + curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, slist1); + curl_easy_setopt(hnd, CURLOPT_USERAGENT, "MyUA"); + curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); curl_easy_setopt(hnd, CURLOPT_COOKIE, "chocolate=chip"); curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);