From 1aa1e5093555555ddfc292d196a6d075e90d0ed0 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 14 May 2019 10:03:54 +0200 Subject: curl: make code work with protocol-disabled libcurl Closes #3844 --- src/tool_operate.c | 17 ++++++++++++----- tests/data/test1400 | 3 ++- tests/data/test1401 | 2 +- tests/data/test1402 | 2 +- tests/data/test1403 | 2 +- tests/data/test1404 | 2 +- tests/data/test1405 | 3 ++- tests/data/test1407 | 3 ++- 8 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/tool_operate.c b/src/tool_operate.c index 835303c53..462119a1c 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -825,7 +825,9 @@ static CURLcode operate_do(struct GlobalConfig *global, /* where to store */ my_setopt(curl, CURLOPT_WRITEDATA, &outs); +#ifndef CURL_DISABLE_RTSP my_setopt(curl, CURLOPT_INTERLEAVEDATA, &outs); +#endif if(metalink || !config->use_metalink) /* what call to write */ my_setopt(curl, CURLOPT_WRITEFUNCTION, tool_write_cb); @@ -1032,8 +1034,9 @@ static CURLcode operate_do(struct GlobalConfig *global, my_setopt(curl, CURLOPT_RESUME_FROM_LARGE, CURL_OFF_T_C(0)); my_setopt_str(curl, CURLOPT_KEYPASSWD, config->key_passwd); +#ifndef CURL_DISABLE_PROXY my_setopt_str(curl, CURLOPT_PROXY_KEYPASSWD, config->proxy_key_passwd); - +#endif if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) { /* SSH and SSL private key uses same command-line option */ @@ -1239,8 +1242,9 @@ static CURLcode operate_do(struct GlobalConfig *global, /* three new ones in libcurl 7.3: */ my_setopt_str(curl, CURLOPT_INTERFACE, config->iface); +#ifndef CURL_DISABLE_FTP my_setopt_str(curl, CURLOPT_KRBLEVEL, config->krblevel); - +#endif progressbarinit(&progressbar, config); if((global->progressmode == CURL_PROGRESS_BAR) && !global->noprogress && !global->mute) { @@ -1262,9 +1266,10 @@ static CURLcode operate_do(struct GlobalConfig *global, if(config->dns_ipv6_addr) my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP6, config->dns_ipv6_addr); +#ifndef CURL_DISABLE_TELNET /* new in libcurl 7.6.2: */ my_setopt_slist(curl, CURLOPT_TELNETOPTIONS, config->telnet_options); - +#endif /* new in libcurl 7.7: */ my_setopt_str(curl, CURLOPT_RANDOM_FILE, config->random_file); my_setopt_str(curl, CURLOPT_EGDSOCKET, config->egd_file); @@ -1367,9 +1372,10 @@ static CURLcode operate_do(struct GlobalConfig *global, my_setopt_str(curl, CURLOPT_SERVICE_NAME, config->service_name); +#ifndef CURL_DISABLE_FTP /* curl 7.13.0 */ my_setopt_str(curl, CURLOPT_FTP_ACCOUNT, config->ftp_account); - +#endif my_setopt(curl, CURLOPT_IGNORE_CONTENT_LENGTH, config->ignorecl?1L:0L); #ifndef CURL_DISABLE_FTP @@ -1385,10 +1391,11 @@ static CURLcode operate_do(struct GlobalConfig *global, my_setopt_str(curl, CURLOPT_LOCALPORTRANGE, config->localportrange); } +#ifndef CURL_DISABLE_FTP /* curl 7.15.5 */ my_setopt_str(curl, CURLOPT_FTP_ALTERNATIVE_TO_USER, config->ftp_alternative_to_user); - +#endif /* curl 7.16.0 */ if(config->disable_sessionid) /* disable it */ diff --git a/tests/data/test1400 b/tests/data/test1400 index 36ddd0e91..c0d409bac 100644 --- a/tests/data/test1400 +++ b/tests/data/test1400 @@ -50,11 +50,13 @@ Accept: */* s/(USERAGENT, \")[^\"]+/${1}stripped/ # CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with +# CURLOPT_INTERLEAVEDATA requires RTSP protocol # configurations - just ignore them $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ $_ = '' if /CURLOPT_HTTP09_ALLOWED/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ /********* Sample code generated by the curl command line tool ********** @@ -81,7 +83,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer diff --git a/tests/data/test1401 b/tests/data/test1401 index d7033e0b5..647f036f4 100644 --- a/tests/data/test1401 +++ b/tests/data/test1401 @@ -61,6 +61,7 @@ X-Men: cyclops, iceman $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ /********* Sample code generated by the curl command line tool ********** @@ -100,7 +101,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer diff --git a/tests/data/test1402 b/tests/data/test1402 index 978b26162..b9f52f2e8 100644 --- a/tests/data/test1402 +++ b/tests/data/test1402 @@ -59,6 +59,7 @@ s/(USERAGENT, \")[^\"]+/${1}stripped/ $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ /********* Sample code generated by the curl command line tool ********** @@ -88,7 +89,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer diff --git a/tests/data/test1403 b/tests/data/test1403 index 9c838d0ed..db13081b0 100644 --- a/tests/data/test1403 +++ b/tests/data/test1403 @@ -56,6 +56,7 @@ s/(USERAGENT, \")[^\"]+/${1}stripped/ $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ /********* Sample code generated by the curl command line tool ********** @@ -83,7 +84,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer diff --git a/tests/data/test1404 b/tests/data/test1404 index a7b8cc823..e976f0b38 100644 --- a/tests/data/test1404 +++ b/tests/data/test1404 @@ -94,6 +94,7 @@ s/(USERAGENT, \")[^\"]+/${1}stripped/ $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ # CURL_DOES_CONVERSION generates an extra comment. $_ = '' if /\/\* "value" \*\// @@ -154,7 +155,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer diff --git a/tests/data/test1405 b/tests/data/test1405 index 4f477c7d9..dcc8f80b0 100644 --- a/tests/data/test1405 +++ b/tests/data/test1405 @@ -96,7 +96,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer @@ -128,6 +127,7 @@ int main(int argc, char *argv[]) # CURLOPT_USERAGENT and CURLOPT_MAXREDIRS requires HTTP protocol +# CURLOPT_INTERLEAVEDATA requires RTSP (HTTP) protocol # support, IOW depends on configuration - just ignore these. $_ = '' if /CURLOPT_USERAGENT/ $_ = '' if /CURLOPT_MAXREDIRS/ @@ -137,6 +137,7 @@ $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ $_ = '' if /CURLOPT_HTTP09_ALLOWED/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ diff --git a/tests/data/test1407 b/tests/data/test1407 index 883cf4064..917a5deb7 100644 --- a/tests/data/test1407 +++ b/tests/data/test1407 @@ -69,7 +69,6 @@ int main(int argc, char *argv[]) them yourself. CURLOPT_WRITEDATA set to a objectpointer - CURLOPT_INTERLEAVEDATA set to a objectpointer CURLOPT_WRITEFUNCTION set to a functionpointer CURLOPT_READDATA set to a objectpointer CURLOPT_READFUNCTION set to a functionpointer @@ -95,12 +94,14 @@ int main(int argc, char *argv[]) # These options vary with configurations - just ignore them +# CURLOPT_INTERLEAVEDATA requires RTSP (HTTP) protocol $_ = '' if /CURLOPT_USERAGENT/ $_ = '' if /CURLOPT_MAXREDIRS/ $_ = '' if /CURLOPT_SSL_VERIFYPEER/ $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ $_ = '' if /CURLOPT_HTTP_VERSION/ $_ = '' if /CURLOPT_HTTP09_ALLOWED/ +$_ = '' if /CURLOPT_INTERLEAVEDATA/ -- cgit v1.2.1