mirror of
https://github.com/curl/curl.git
synced 2026-08-24 22:13:33 +03:00
Set and use more necessary options when some protocols are disabled
When curl and libcurl are built with some protocols disabled, they stop setting and receiving some options that don't make sense with those protocols. In particular, when HTTP is disabled many options aren't set that are used only by HTTP. However, some options that appear to be HTTP-only are actually used by other protocols as well (some despite having HTTP in the name) and should be set, but weren't. This change now causes some of these options to be set and used for more (or for all) protocols. In particular, this fixes tests 646 through 649 in an HTTP-disabled build, which use the MIME API in the mail protocols.
This commit is contained in:
parent
a352e21c0b
commit
df7839b68c
3 changed files with 41 additions and 35 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue