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

FreeBSD Manual Pages

  
 
  

home | help
CURLMOPT_TIMERDATA(3)	   curl_multi_setopt options	 CURLMOPT_TIMERDATA(3)

NAME
       CURLMOPT_TIMERDATA - custom pointer to pass to timer callback

SYNOPSIS
       #include	<curl/curl.h>

       CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERDATA, void *pointer);

DESCRIPTION
       A  data	pointer	 to  pass  to  the  timer  callback set	with the CURL-
       MOPT_TIMERFUNCTION(3) option.

       This pointer will not be	touched	by libcurl but will only be passed  in
       to the timer callbacks's	userp argument.

DEFAULT
       NULL

PROTOCOLS
       All

EXAMPLE
       static gboolean timeout_cb(gpointer user_data)
       {
	 int running;
	 if(user_data) {
	   g_free(user_data);
	   curl_multi_setopt(curl_handle, CURLMOPT_TIMERDATA, NULL);
	 }
	 curl_multi_socket_action(multi, CURL_SOCKET_TIMEOUT, 0, &running);
	 return	G_SOURCE_REMOVE;
       }

       static int timerfunc(CURLM *multi, long timeout_ms, void	*userp)
       {
	 guint *id = userp;

	 if(id)
	   g_source_remove(*id);

	 /* -1 means we	should just delete our timer. */
	 if(timeout_ms == -1) {
	   g_free(id);
	   id =	NULL;
	 }
	 else {
	   if(!id)
	     id	= g_new(guint, 1);
	   *id = g_timeout_add(timeout_ms, timeout_cb, id);
	 }
	 curl_multi_setopt(multi, CURLMOPT_TIMERDATA, id);
	 return	0;
       }

       curl_multi_setopt(multi,	CURLMOPT_TIMERFUNCTION,	timerfunc);

AVAILABILITY
       Added in	7.16.0

RETURN VALUE
       Returns	CURLM_OK  if the option	is supported, and CURLM_UNKNOWN_OPTION
       if not.

SEE ALSO
       CURLMOPT_TIMERFUNCTION(3), CURLMOPT_SOCKETFUNCTION(3),

libcurl	7.54.1			 May 27, 2017		 CURLMOPT_TIMERDATA(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=CURLMOPT_TIMERDATA&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help