Provided by: libcurl4-doc_7.47.0-1ubuntu2.19_all bug

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 will be passed to all future  socket  callbacks  for  the  specific  sockfd
       socket.

       If the given sockfd isn't already in use by libcurl, this function will return an error.

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

       The idea here being that this association (socket to private pointer) is something that just about  every
       application  that uses this API will need and then libcurl can just as well do it since it already has an
       internal hash table lookup for this.

RETURN VALUE

       The standard CURLMcode for multi interface error codes.

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 don't have to find the struct associated with this socket by ourselves.

AVAILABILITY

       This function was added in libcurl 7.15.5.

SEE ALSO

       curl_multi_setopt(3), curl_multi_socket_action(3)