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[,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 one  or  more  numerical  IP  ad-
       dresses.	If you specify multiple	ip addresses they need to be separated
       by comma. If libcurl is built to	support	IPv6, each of the ADDRESS  en-
       tries 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.

       If  the	DNS  cache already have	an entry for the given host+port pair,
       then this entry will be removed and a new entry will be	created.  This
       is  because  old	entry may have have different addresses	or be ordinary
       entries with time-outs.

       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.

       Support	for  providing	the  ADDRESS  within  [brackets]  was added in
       7.57.0.

       Support for providing multiple IP addresses  per	 entry	was  added  in
       7.59.0.

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.72.0			March 23, 2020		    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.2-RELEASE+and+Ports>

home | help