CURLMOPT_SOCKETDATA(3)

CURLMOPT_SOCKETDATA3

Custom pointer passed to the socket callback

Usage

#include <curl/curl.h>
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETDATA, void *pointer);

Overview

A data pointer to pass to the socket callback set with the CURLMOPT_SOCKETFUNCTION(3) option.

This pointer is not touched by libcurl but is only passed in as the socket callbacks's clientp argument.

Default

NULL

Protocols

All

Examples

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);
}

Return value

Returns CURLM_OK.

Releases

74 releases since OS X 10.10.5; the text changed 13 times.

  1. 10.10.5–10.11.6
  2. 10.12–10.12.5
  3. 10.12.6–10.14.6
  4. 10.15–11.5
  5. 12.0.1–12.2
  6. 12.3–12.5
  7. 13.0
  8. 13.1
  9. 13.2
  10. 13.3
  11. 13.4
  12. 13.5–14.1
  13. 14.2–14.4
  14. 14.5–26.5

Availability

Added in 7.15.4

From curl 166.0.0.0.1 in macOS 26.5. Parsed by carta from the page's man source.