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

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_R...T_FUNCTION(3)  Library Functions Manual  CURLOPT_R...T_FUNCTION(3)

NAME
       CURLOPT_RESOLVER_START_FUNCTION - callback called before	a new name re-
       solve is	started

SYNOPSIS
       #include	<curl/curl.h>

       int resolver_start_cb(void *resolver_state, void	*reserved, void	*userdata);

       CURLcode	curl_easy_setopt(CURL *handle,
				 CURLOPT_RESOLVER_START_FUNCTION,
				 resolver_start_cb);

DESCRIPTION
       Pass a pointer to your callback function, which should match the	proto-
       type shown above.

       This  callback  function	gets called by libcurl every time before a new
       resolve request is started.

       resolver_state points to	a backend-specific resolver  state.  Currently
       only  the ares resolver backend has a resolver state. It	can be used to
       set up any desired option on the	ares channel before it	is  used,  for
       example setting up socket callback options.

       reserved	is reserved.

       userdata	   is	 the   user   pointer	set   with   the   CURLOPT_RE-
       SOLVER_START_DATA(3) option.

       The callback must return	0  on  success.	 Returning  a  non-zero	 value
       causes the resolve to fail.

DEFAULT
       NULL (No	callback)

PROTOCOLS
       This functionality affects all supported	protocols

EXAMPLE
       static int start_cb(void	*resolver_state, void *reserved,
			   void	*userdata)
       {
	 (void)reserved;
	 printf("Received resolver_state=%p userdata=%p\n",
		resolver_state,	userdata);
	 return	0;
       }

       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   curl_easy_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION, start_cb);
	   curl_easy_setopt(curl, CURLOPT_RESOLVER_START_DATA, curl);
	   curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
	   curl_easy_perform(curl);
	   curl_easy_cleanup(curl);
	 }
       }

AVAILABILITY
       Added in	curl 7.59.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_PREREQFUNCTION(3), CURLOPT_RESOLVER_START_DATA(3)

libcurl				  2025-06-03	     CURLOPT_R...T_FUNCTION(3)

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

home | help