diff options
author | Daniel Stenberg <daniel@haxx.se> | 2020-10-04 23:05:21 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2020-10-05 10:06:58 +0200 |
commit | ec1cb755bf859fae0ae5cb80a577067b8e76947e (patch) | |
tree | b7278d71a92a326e2916944f20fae07b4fabcfa2 /src | |
parent | d3a3cacd3d8e384ea0cf07d3b9d4e58ba488a6e1 (diff) | |
download | curl-ec1cb755bf859fae0ae5cb80a577067b8e76947e.tar.gz |
curl: make sure setopt CURLOPT_IPRESOLVE passes on a long
Previously, it would pass on a define (int) which could make libcurl
read junk as a value - which prevented the CURLOPT_IPRESOLVE option to
"take". This could then make test 2100 do two DoH requests instead of
one!
Fixes #6042
Closes #6043
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_getparam.c | 4 | ||||
-rw-r--r-- | src/tool_operate.c | 7 |
2 files changed, 3 insertions, 8 deletions
diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 7977c3dc6..910a5a2f9 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -1269,11 +1269,11 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */ break; case '4': /* IPv4 */ - config->ip_version = 4; + config->ip_version = CURL_IPRESOLVE_V4; break; case '6': /* IPv6 */ - config->ip_version = 6; + config->ip_version = CURL_IPRESOLVE_V6; break; case 'a': /* This makes the FTP sessions use APPE instead of STOR */ diff --git a/src/tool_operate.c b/src/tool_operate.c index 54c99e3bc..e3fec0b4a 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1855,12 +1855,7 @@ static CURLcode single_transfer(struct GlobalConfig *global, my_setopt(curl, CURLOPT_MAXFILESIZE_LARGE, config->max_filesize); - if(4 == config->ip_version) - my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); - else if(6 == config->ip_version) - my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6); - else - my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER); + my_setopt(curl, CURLOPT_IPRESOLVE, config->ip_version); /* new in curl 7.15.5 */ if(config->ftp_ssl_reqd) |