aboutsummaryrefslogtreecommitdiff
path: root/lib/asyn-ares.c
diff options
context:
space:
mode:
authorJason Glasgow <jglasgow@chromium.org>2011-04-12 11:34:28 -0400
committerDaniel Stenberg <daniel@haxx.se>2011-11-17 22:52:33 +0100
commit8d0a504f0d34c2471393ef23fb2345c73c5d4746 (patch)
tree5cee8cd7d280a1bbcdc0aba572234848d5459873 /lib/asyn-ares.c
parent967b2f87a81959630d5c8e4ead72d86d37aad616 (diff)
CURLOPT_DNS_SERVERS: set name servers if possible
Diffstat (limited to 'lib/asyn-ares.c')
-rw-r--r--lib/asyn-ares.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/asyn-ares.c b/lib/asyn-ares.c
index 7f3bdf8a2..7c2c372c3 100644
--- a/lib/asyn-ares.c
+++ b/lib/asyn-ares.c
@@ -600,4 +600,30 @@ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn,
}
return NULL; /* no struct yet */
}
+
+CURLcode Curl_set_dns_servers(struct SessionHandle *data,
+ char *servers)
+{
+ CURLcode result = CURLE_NOT_BUILT_IN;
+#if (ARES_VERSION >= 0x010704)
+ int ares_result = ares_set_servers_csv(data->state.resolver, servers);
+ switch(ares_result) {
+ case ARES_SUCCESS:
+ break;
+ case ARES_ENOMEM:
+ result = CURLE_OUT_OF_MEMORY;
+ break;
+ case ARES_ENOTINITIALIZED:
+ case ARES_ENODATA:
+ case ARES_EBADSTR:
+ default:
+ result = CURLE_BAD_FUNCTION_ARGUMENT;
+ break;
+ }
+#else /* too old c-ares version! */
+ (void)data;
+ (void)servers;
+#endif
+ return result;
+}
#endif /* CURLRES_ARES */