aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-09-13 18:50:11 +0100
committerSteve Holme <steve_holme@hotmail.com>2013-09-13 18:50:11 +0100
commitc243d45aadb502301e5e92d6f87af1d434ce98b4 (patch)
tree36d21a75018566a58c9828092185f8d773677b69
parent8a6dba520bfc81a5bc6ffcd38bedc73b8e520c8e (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.h8
-rw-r--r--src/tool_getparam.c2
-rw-r--r--src/tool_operate.c12
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: */