mirror of
https://codeberg.org/kiss-community/repo
synced 2024-12-25 00:30:06 -07:00
62 lines
1.5 KiB
Groff
62 lines
1.5 KiB
Groff
.\" generated by cd2nroff 0.1 from CURLMOPT_SOCKETDATA.md
|
|
.TH CURLMOPT_SOCKETDATA 3 "2024-07-29" 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)
|