Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_DNS_INTERFACE(3)    Library Functions Manual	CURLOPT_DNS_INTERFACE(3)

NAME
     CURLOPT_DNS_INTERFACE - interface to speak DNS over

SYNOPSIS
     #include <curl/curl.h>

     CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_INTERFACE, char *ifname);

DESCRIPTION
     Pass  a  char  pointer  as parameter. Set the name of the network interface
     that the DNS resolver should bind to. This must be an interface  name  (not
     an  address).  Set  this  option to NULL to use the default setting (do not
     bind to a specific interface).

     The application does not have to keep the string around after setting  this
     option.

     Using  this  option  multiple  times makes the last set string override the
     previous ones. Set it to NULL to disable its use again.

DEFAULT
     NULL

PROTOCOLS
     This functionality affects all supported protocols

EXAMPLE
     int main(void)
     {
       CURL *curl = curl_easy_init();
       if(curl) {
	 CURLcode result;
	 curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");
	 curl_easy_setopt(curl, CURLOPT_DNS_INTERFACE, "eth0");
	 result = curl_easy_perform(curl);
	 curl_easy_cleanup(curl);
       }
     }

NOTES
     This option requires that libcurl was built with a  resolver  backend  that
     supports this operation. The c-ares backend is the only such one.

AVAILABILITY
     Added in curl 7.33.0

RETURN VALUE
     curl_easy_setopt(3) returns a CURLcode indicating success or error.

     CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
     libcurl-errors(3).

SEE ALSO
     CURLOPT_DNS_LOCAL_IP4(3), CURLOPT_DNS_LOCAL_IP6(3), CURLOPT_DNS_SERVERS(3),
     CURLOPT_INTERFACE(3)

libcurl 			   2026-06-11		CURLOPT_DNS_INTERFACE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_DNS_INTERFACE&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help