]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_getparam: DNS options that need c-ares now fail without it
authorDaniel Stenberg <daniel@haxx.se>
Sun, 16 Jan 2022 21:41:16 +0000 (22:41 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 17 Jan 2022 07:44:41 +0000 (08:44 +0100)
Just silently accepting the options and then not having any effect is
not good.

Ref: #8283
Closes #8285

src/tool_getparam.c

index 223214b0a6989aeeacf692eda9e367c2c8c5b93e..14dca833cd0e21b4ef4cacfc91901d27f7c31e99 100644 (file)
@@ -654,10 +654,14 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
     case '*': /* options without a short option */
       switch(subletter) {
       case '4': /* --dns-ipv4-addr */
+        if(!curlinfo->ares_num) /* c-ares is needed for this */
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         /* addr in dot notation */
         GetStr(&config->dns_ipv4_addr, nextarg);
         break;
       case '6': /* --dns-ipv6-addr */
+        if(!curlinfo->ares_num) /* c-ares is needed for this */
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         /* addr in dot notation */
         GetStr(&config->dns_ipv6_addr, nextarg);
         break;
@@ -685,6 +689,8 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
         GetStr(&config->cipher_list, nextarg);
         break;
       case 'D': /* --dns-interface */
+        if(!curlinfo->ares_num) /* c-ares is needed for this */
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         /* interface name */
         GetStr(&config->dns_interface, nextarg);
         break;
@@ -698,6 +704,8 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
         config->disable_epsv = (!toggle)?TRUE:FALSE;
         break;
       case 'F': /* --dns-servers */
+        if(!curlinfo->ares_num) /* c-ares is needed for this */
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
         /* IP addrs of DNS servers */
         GetStr(&config->dns_servers, nextarg);
         break;