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