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

FreeBSD Manual Pages

  
 
  

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

NAME
       curl_multi_assign - set data to associate with an internal socket

SYNOPSIS
       #include	<curl/curl.h>

       CURLMcode curl_multi_assign(CURLM *multi_handle,	curl_socket_t sockfd,
				   void	*sockptr);

DESCRIPTION
       This  function  creates	an association in the multi handle between the
       given socket and	a private pointer of the application. This is designed
       for curl_multi_socket_action(3) uses.

       When set, the sockptr pointer is	passed to all future socket  callbacks
       for the specific	sockfd socket.

       If the given sockfd is not already in use by libcurl, this function re-
       turns an	error.

       libcurl	only  keeps  one  single  pointer associated with a socket, so
       calling this function several times for the same	socket makes the  last
       set pointer get used.

       It  is  acceptable to call this function	from your multi	callback func-
       tions.

PROTOCOLS
       This functionality affects all supported	protocols

EXAMPLE
       int main(void)
       {
	 CURLM *multi =	curl_multi_init();
	 int private = 123;
	 curl_socket_t fd = 0; /* file descriptor to associate our data	with */

	 /* make our struct pointer associated with socket fd */
	 CURLMcode mresult = curl_multi_assign(multi, fd, &private);
	 if(mresult)
	   printf("error: %s\n", curl_multi_strerror(mresult));
       }

TYPICAL	USAGE
       In a typical application	you allocate a struct or  at  least  use  some
       kind  of	semi-dynamic data for each socket that we must wait for	action
       on when using the curl_multi_socket_action(3) approach.

       When our	socket-callback	gets called by libcurl	and  we	 get  to  know
       about  yet  another socket to wait for, we can use curl_multi_assign(3)
       to point	out the	particular data	so that	when we	get updates about this
       same socket again, we do	not have to find the  struct  associated  with
       this socket by ourselves.

AVAILABILITY
       Added in	curl 7.15.5

RETURN VALUE
       This function returns a CURLMcode indicating success or error.

       CURLM_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       curl_multi_setopt(3), curl_multi_socket_action(3)

libcurl				  2026-06-11		  curl_multi_assign(3)

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

home | help