Loading docs/libcurl/curl_easy_setopt.3 +14 −0 Original line number Diff line number Diff line Loading @@ -2045,6 +2045,20 @@ resolves, by including a string in the linked list that uses the format and port number must exactly match what was already added previously. (Added in 7.21.3) .IP CURLOPT_DNS_SERVERS Set the list of DNS servers to be used instead of the system default. The format of the dns servers option is: host[:port][,host[:port]]... For example: 192.168.1.100,192.168.1.101,3.4.5.6 This option requires that libcurl was built with a resolver backend that supports this operation. The c-ares backend is the only such one. (Added in 7.24.0) .SH SSL and SECURITY OPTIONS .IP CURLOPT_SSLCERT Pass a pointer to a zero terminated string as parameter. The string should be Loading include/curl/curl.h +3 −0 Original line number Diff line number Diff line Loading @@ -1486,6 +1486,9 @@ typedef enum { /* allow GSSAPI credential delegation */ CINIT(GSSAPI_DELEGATION, LONG, 210), /* Set the name servers to use for DNS resolution */ CINIT(DNS_SERVERS, OBJECTPOINT, 211), CURLOPT_LASTENTRY /* the last unused */ } CURLoption; Loading lib/asyn-ares.c +26 −0 Original line number Diff line number Diff line Loading @@ -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 */ lib/asyn-thread.c +9 −0 Original line number Diff line number Diff line Loading @@ -696,4 +696,13 @@ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, #endif /* !HAVE_GETADDRINFO */ CURLcode Curl_set_dns_servers(struct SessionHandle *data, char *servers) { (void)data; (void)servers; return CURLE_NOT_BUILT_IN; } #endif /* CURLRES_THREADED */ lib/hostip.h +5 −0 Original line number Diff line number Diff line Loading @@ -195,4 +195,9 @@ Curl_cache_addr(struct SessionHandle *data, Curl_addrinfo *addr, extern sigjmp_buf curl_jmpenv; #endif /* * Function provided by the resolver backend to set DNS servers to use. */ CURLcode Curl_set_dns_servers(struct SessionHandle *data, char *servers); #endif /* HEADER_CURL_HOSTIP_H */ Loading
docs/libcurl/curl_easy_setopt.3 +14 −0 Original line number Diff line number Diff line Loading @@ -2045,6 +2045,20 @@ resolves, by including a string in the linked list that uses the format and port number must exactly match what was already added previously. (Added in 7.21.3) .IP CURLOPT_DNS_SERVERS Set the list of DNS servers to be used instead of the system default. The format of the dns servers option is: host[:port][,host[:port]]... For example: 192.168.1.100,192.168.1.101,3.4.5.6 This option requires that libcurl was built with a resolver backend that supports this operation. The c-ares backend is the only such one. (Added in 7.24.0) .SH SSL and SECURITY OPTIONS .IP CURLOPT_SSLCERT Pass a pointer to a zero terminated string as parameter. The string should be Loading
include/curl/curl.h +3 −0 Original line number Diff line number Diff line Loading @@ -1486,6 +1486,9 @@ typedef enum { /* allow GSSAPI credential delegation */ CINIT(GSSAPI_DELEGATION, LONG, 210), /* Set the name servers to use for DNS resolution */ CINIT(DNS_SERVERS, OBJECTPOINT, 211), CURLOPT_LASTENTRY /* the last unused */ } CURLoption; Loading
lib/asyn-ares.c +26 −0 Original line number Diff line number Diff line Loading @@ -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 */
lib/asyn-thread.c +9 −0 Original line number Diff line number Diff line Loading @@ -696,4 +696,13 @@ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, #endif /* !HAVE_GETADDRINFO */ CURLcode Curl_set_dns_servers(struct SessionHandle *data, char *servers) { (void)data; (void)servers; return CURLE_NOT_BUILT_IN; } #endif /* CURLRES_THREADED */
lib/hostip.h +5 −0 Original line number Diff line number Diff line Loading @@ -195,4 +195,9 @@ Curl_cache_addr(struct SessionHandle *data, Curl_addrinfo *addr, extern sigjmp_buf curl_jmpenv; #endif /* * Function provided by the resolver backend to set DNS servers to use. */ CURLcode Curl_set_dns_servers(struct SessionHandle *data, char *servers); #endif /* HEADER_CURL_HOSTIP_H */