2
0
mirror of https://codeberg.org/kiss-community/repo synced 2024-12-23 07:40:11 -07:00
repo/core/curl/files/CURLMOPT_SOCKETDATA.3
2024-08-02 20:52:59 -05:00

62 lines
1.5 KiB
Groff

.\" generated by cd2nroff 0.1 from CURLMOPT_SOCKETDATA.md
.TH CURLMOPT_SOCKETDATA 3 "2024-08-02" libcurl
.SH NAME
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETDATA, void *pointer);
.fi
.SH DESCRIPTION
A data \fIpointer\fP to pass to the socket callback set with the
\fICURLMOPT_SOCKETFUNCTION(3)\fP option.
This pointer is not touched by libcurl but is only passed in as the socket
callback\(aqs \fBclientp\fP argument.
.SH DEFAULT
NULL
.SH PROTOCOLS
This functionality affects all supported protocols
.SH EXAMPLE
.nf
struct priv {
void *ours;
};
static int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
{
struct priv *p = sockp;
printf("my ptr: %p\\n", p->ours);
if(what == CURL_POLL_REMOVE) {
/* remove the socket from our collection */
}
if(what & CURL_POLL_IN) {
/* wait for read on this socket */
}
if(what & CURL_POLL_OUT) {
/* wait for write on this socket */
}
return 0;
}
int main(void)
{
struct priv setup;
CURLM *multi = curl_multi_init();
/* ... use socket callback and custom pointer */
curl_multi_setopt(multi, CURLMOPT_SOCKETFUNCTION, sock_cb);
curl_multi_setopt(multi, CURLMOPT_SOCKETDATA, &setup);
}
.fi
.SH AVAILABILITY
Added in curl 7.15.4
.SH RETURN VALUE
Returns CURLM_OK.
.SH SEE ALSO
.BR CURLMOPT_SOCKETFUNCTION (3),
.BR CURLMOPT_TIMERFUNCTION (3),
.BR curl_multi_socket_action (3)