aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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: */