diff options
author | Steve Holme <steve_holme@hotmail.com> | 2013-09-13 18:50:11 +0100 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2013-09-13 18:50:11 +0100 |
commit | c243d45aadb502301e5e92d6f87af1d434ce98b4 (patch) | |
tree | 36d21a75018566a58c9828092185f8d773677b69 | |
parent | 8a6dba520bfc81a5bc6ffcd38bedc73b8e520c8e (diff) |
curl: Fixed usage of DNS options when not using c-ares resolver
Commit 32352ed6adddcb introduced various DNS options, however, these
would cause curl to exit with CURLE_NOT_BUILT_IN when c-ares wasn't
being used as the backend resolver even if the options weren't set
by the user.
Additionally corrected some minor coding style errors from the same
commit.
-rw-r--r-- | src/tool_cfgable.h | 8 | ||||
-rw-r--r-- | src/tool_getparam.c | 2 | ||||
-rw-r--r-- | src/tool_operate.c | 12 |
3 files changed, 14 insertions, 8 deletions
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 07355b8f4..2f9cd5afb 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -66,10 +66,10 @@ struct Configurable { char *range; long low_speed_limit; long low_speed_time; - char* dns_servers; /* dot notation: 1.1.1.1;2.2.2.2 */ - char* dns_interface; /* interface name */ - char* dns_ipv4_addr; /* dot notation */ - char* dns_ipv6_addr; /* dot notation */ + char *dns_servers; /* dot notation: 1.1.1.1;2.2.2.2 */ + char *dns_interface; /* interface name */ + char *dns_ipv4_addr; /* dot notation */ + char *dns_ipv6_addr; /* dot notation */ int showerror; /* -1 == unset, default => show errors 0 => -s is used to NOT show errors 1 => -S has been used to show errors */ diff --git a/src/tool_getparam.c b/src/tool_getparam.c index d23084f57..583a84162 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -80,7 +80,7 @@ static const struct LongShort aliases[]= { {"*B", "bearer", TRUE}, {"*c", "connect-timeout", TRUE}, {"*d", "ciphers", TRUE}, - {"*D", "dns-interface", TRUE}, + {"*D", "dns-interface", TRUE}, {"*e", "disable-epsv", FALSE}, {"*E", "epsv", FALSE}, /* 'epsv' made like this to make --no-epsv and --epsv to work diff --git a/src/tool_operate.c b/src/tool_operate.c index ba077973e..6615270e0 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1239,10 +1239,16 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) my_setopt(curl, CURLOPT_PROGRESSDATA, &progressbar); } - my_setopt_str(curl, CURLOPT_DNS_SERVERS, config->dns_servers); + /* new in libcurl 7.24.0: */ + if(config->dns_servers) + my_setopt_str(curl, CURLOPT_DNS_SERVERS, config->dns_servers); + /* new in libcurl 7.33.0: */ - my_setopt_str(curl, CURLOPT_DNS_INTERFACE, config->dns_interface); - my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP4, config->dns_ipv4_addr); + if(config->dns_interface) + my_setopt_str(curl, CURLOPT_DNS_INTERFACE, config->dns_interface); + if(config->dns_ipv4_addr) + my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP4, config->dns_ipv4_addr); + if(config->dns_ipv6_addr) my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP6, config->dns_ipv6_addr); /* new in libcurl 7.6.2: */ |