DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

curl_multi_assign(3)





NAME

       curl_multi_assign - set data to associated 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 call-
       backs 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 get 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)

libcurl 7.16.0                    9 Jul 2006              curl_multi_assign(3)

Man(1) output converted with man2html