.\" 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 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)