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

FreeBSD Manual Pages

  
 
  

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

NAME
       CURLMOPT_SOCKETDATA - custom pointer passed to the socket callback

SYNOPSIS
       #include	<curl/curl.h>

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

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

       This pointer is not touched by libcurl but is only  passed  in  as  the
       socket callback's clientp argument.

DEFAULT
       NULL

PROTOCOLS
       This functionality affects all supported	protocols

EXAMPLE
       struct priv {
	 void *ours;
       };

       static int sock_cb(CURL *e, curl_socket_t s, int	what, void *cbp, void *sockp)
       {
	 struct	priv *p	= sockp;
	 printf("my ptr: %p\n",	p->ours);

	 if(what == CURL_POLL_REMOVE) {
	   /* remove the socket	from our collection */
	 }
	 if(what & CURL_POLL_IN) {
	   /* wait for read on this socket */
	 }
	 if(what & CURL_POLL_OUT) {
	   /* wait for write on	this socket */
	 }

	 return	0;
       }

       int main(void)
       {
	 struct	priv setup;
	 CURLM *multi =	curl_multi_init();
	 /* ...	use socket callback and	custom pointer */
	 curl_multi_setopt(multi, CURLMOPT_SOCKETFUNCTION, sock_cb);
	 curl_multi_setopt(multi, CURLMOPT_SOCKETDATA, &setup);
       }

AVAILABILITY
       Added in	curl 7.15.4

RETURN VALUE
       Returns CURLM_OK.

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

libcurl				  2025-06-03		CURLMOPT_SOCKETDATA(3)

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

home | help