Provided by: libcurl4-doc_7.35.0-1ubuntu2.20_all bug

NAME

       curl_multi_assign - set data to association 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  assigns  an association in the multi handle between the given socket and a
       private pointer of the application. This is (only) useful for curl_multi_socket(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(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, although not deemed stable yet.

SEE ALSO

       curl_multi_setopt(3), curl_multi_socket(3)