CURLSHOPT_USERDATA(3)

CURLSHOPT_USERDATA3

Pointer passed to the lock and unlock mutex callbacks

Usage

#include <curl/curl.h>
CURLSHcode curl_share_setopt(CURLSH *share, CURLSHOPT_USERDATA, void *clientp);

Overview

The clientp parameter is held verbatim by libcurl and is passed on as the clientp argument to the callbacks set with CURLSHOPT_LOCKFUNC(3) and CURLSHOPT_UNLOCKFUNC(3).

Protocols

This functionality affects all supported protocols

Examples

struct secrets {
  void *custom;
};
int main(void)
{
  CURLSHcode sh;
  struct secrets private_stuff;
  CURLSH *share = curl_share_init();
  sh = curl_share_setopt(share, CURLSHOPT_USERDATA, &private_stuff);
  if(sh)
    printf("Error: %s\n", curl_share_strerror(sh));
}

Return value

CURLSHE_OK (zero) means that the option was set properly, non-zero means an error occurred. See libcurl-errors(3) for the full list with descriptions.

Releases

3 releases since Debian 12 (Bookworm); the text changed 2 times.

  1. 12
  2. 13
  3. Arch

Availability

Added in curl 7.10.3

From curl 8.23.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.