CURLOPT_CLOSESOCKETDATA(3)

CURLOPT_CLOSESOCKETDATA3

Pointer passed to the socket close callback

Usage

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETDATA,
                          void *pointer);

Overview

Pass a pointer that remains untouched by libcurl and passed as the first argument in the closesocket callback set with CURLOPT_CLOSESOCKETFUNCTION(3).

Default

The default value of this parameter is NULL.

Protocols

All except file:

Examples

struct priv {
  void *custom;
};
static int closesocket(void *clientp, curl_socket_t item)
{
  struct priv *my = clientp;
  printf("our ptr: %p\n", my->custom);
  printf("libcurl wants to close %d now\n", (int)item);
  return 0;
}
int main(void)
{
  struct priv myown;
  CURL *curl = curl_easy_init();
  /* call this function to close sockets */
  curl_easy_setopt(curl, CURLOPT_CLOSESOCKETFUNCTION, closesocket);
  curl_easy_setopt(curl, CURLOPT_CLOSESOCKETDATA, &myown);
  curl_easy_perform(curl);
  curl_easy_cleanup(curl);
}

Return value

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

Releases

79 releases since OS X 10.10; the text changed 13 times.

  1. 10.10–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.21.7

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