Annotation of embedaddon/curl/docs/libcurl/curl_multi_assign.3, revision 1.1.1.1
1.1 misho 1: .\" **************************************************************************
2: .\" * _ _ ____ _
3: .\" * Project ___| | | | _ \| |
4: .\" * / __| | | | |_) | |
5: .\" * | (__| |_| | _ <| |___
6: .\" * \___|\___/|_| \_\_____|
7: .\" *
8: .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
9: .\" *
10: .\" * This software is licensed as described in the file COPYING, which
11: .\" * you should have received as part of this distribution. The terms
12: .\" * are also available at https://curl.haxx.se/docs/copyright.html.
13: .\" *
14: .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15: .\" * copies of the Software, and permit persons to whom the Software is
16: .\" * furnished to do so, under the terms of the COPYING file.
17: .\" *
18: .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19: .\" * KIND, either express or implied.
20: .\" *
21: .\" **************************************************************************
22: .TH curl_multi_assign 3 "March 23, 2020" "libcurl 7.70.0" "libcurl Manual"
23:
24: .SH NAME
25: curl_multi_assign \- set data to associate with an internal socket
26: .SH SYNOPSIS
27: #include <curl/curl.h>
28:
29: CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd,
30: void *sockptr);
31: .SH DESCRIPTION
32: This function creates an association in the multi handle between the given
33: socket and a private pointer of the application. This is designed for
34: \fIcurl_multi_socket_action(3)\fP uses.
35:
36: When set, the \fIsockptr\fP pointer will be passed to all future socket
37: callbacks for the specific \fIsockfd\fP socket.
38:
39: If the given \fIsockfd\fP isn't already in use by libcurl, this function will
40: return an error.
41:
42: libcurl only keeps one single pointer associated with a socket, so calling
43: this function several times for the same socket will make the last set pointer
44: get used.
45:
46: The idea here being that this association (socket to private pointer) is
47: something that just about every application that uses this API will need and
48: then libcurl can just as well do it since it already has an internal hash
49: table lookup for this.
50: .SH "RETURN VALUE"
51: The standard CURLMcode for multi interface error codes.
52: .SH "TYPICAL USAGE"
53: In a typical application you allocate a struct or at least use some kind of
54: semi-dynamic data for each socket that we must wait for action on when using
55: the \fIcurl_multi_socket_action(3)\fP approach.
56:
57: When our socket-callback gets called by libcurl and we get to know about yet
58: another socket to wait for, we can use \fIcurl_multi_assign(3)\fP to point out
59: the particular data so that when we get updates about this same socket again,
60: we don't have to find the struct associated with this socket by ourselves.
61: .SH AVAILABILITY
62: This function was added in libcurl 7.15.5.
63: .SH "SEE ALSO"
64: .BR curl_multi_setopt "(3), " curl_multi_socket_action "(3) "
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>