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

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_RESOLVE(3)	   curl_easy_setopt options	    CURLOPT_RESOLVE(3)

NAME
       CURLOPT_RESOLVE - provide custom	host name to IP	address	resolves

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_RESOLVE,
				 struct	curl_slist *hosts);

DESCRIPTION
       Pass  a	pointer	to a linked list of strings with host name resolve in-
       formation to use	for requests with this handle. The linked list	should
       be  a fully valid list of struct	curl_slist structs properly filled in.
       Use curl_slist_append(3)	to create the list and	curl_slist_free_all(3)
       to clean	up an entire list.

       Each  single  name  resolve  string  should be written using the	format
       HOST:PORT:ADDRESS where HOST is the name	libcurl	will try  to  resolve,
       PORT  is	 the port number of the	service	where libcurl wants to connect
       to the HOST and ADDRESS is the numerical	 IP  address.  If  libcurl  is
       built  to  support  IPv6,  ADDRESS can of course	be either IPv4 or IPv6
       style addressing.

       This option effectively pre-populates the DNS cache  with  entries  for
       the  host+port pair so redirects	and everything that operations against
       the HOST+PORT will instead use your  provided  ADDRESS.	Addresses  set
       with CURLOPT_RESOLVE(3) will not	time-out from the DNS cache like ordi-
       nary entries.

       The provided ADDRESS set	by this	option	will  be  used	even  if  CUR-
       LOPT_IPRESOLVE(3) is set	to make	libcurl	use another IP version.

       Remove names from the DNS cache again, to stop providing	these fake re-
       solves, by including a string in	the linked list	that uses  the	format
       "-HOST:PORT".  The host name must be prefixed with a dash, and the host
       name and	port number must exactly match what was	already	 added	previ-
       ously.

DEFAULT
       NULL

PROTOCOLS
       All

EXAMPLE
       CURL *curl;
       struct curl_slist *host = NULL;
       host = curl_slist_append(NULL, "example.com:80:127.0.0.1");

       curl = curl_easy_init();
       if(curl)	{
	 curl_easy_setopt(curl,	CURLOPT_RESOLVE, host);
	 curl_easy_setopt(curl,	CURLOPT_URL, "http://example.com");

	 curl_easy_perform(curl);

	 /* always cleanup */
	 curl_easy_cleanup(curl);
       }

       curl_slist_free_all(host);

AVAILABILITY
       Added in	7.21.3.	Removal	support	added in 7.42.0.

RETURN VALUE
       Returns	CURLE_OK  if the option	is supported, and CURLE_UNKNOWN_OPTION
       if not.

SEE ALSO
       CURLOPT_IPRESOLVE(3),	CURLOPT_DNS_CACHE_TIMEOUT(3),	  CURLOPT_CON-
       NECT_TO(3),

libcurl	7.54.1			 May 17, 2016		    CURLOPT_RESOLVE(3)

NAME | SYNOPSIS | DESCRIPTION | DEFAULT | PROTOCOLS | EXAMPLE | AVAILABILITY | RETURN VALUE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CURLOPT_RESOLVE&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help