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 returns
     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 functions.

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  us-
     ing 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