DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

curl_multi_assign(3)




curl_multi_assign(3)     libcurl 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 appli-
     cation. 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.

libcurl 7.58.0   Last change: February 03, 2016                 1

curl_multi_assign(3)     libcurl Manual      curl_multi_assign(3)


SEE ALSO

     curl_multi_setopt(3), curl_multi_socket_action(3)

libcurl 7.58.0   Last change: February 03, 2016                 2


Man(1) output converted with man2html