| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- .\" generated by cd2nroff 0.1 from CURLMOPT_SOCKETDATA.md
- .TH CURLMOPT_SOCKETDATA 3 "2025-01-17" 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)
|