CURLMOPT\_NOTIFYDATA(3) Library Functions Manual CURLMOPT\_NOTIFYDATA(3)

# [NAME](#NAME)

CURLMOPT\_NOTIFYDATA - custom pointer passed to the notification callback

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#DESCRIPTION)

A data *pointer* to pass to the notification callback set with the [*CURLMOPT\_NOTIFYFUNCTION(3)*](/man/os/curl/CURLMOPT_NOTIFYFUNCTION.3) option.

This pointer is not touched by libcurl but is only passed in as the notification callback's **clientp** argument.

# [DEFAULT](#DEFAULT)

NULL

# [PROTOCOLS](#PROTOCOLS)

This functionality affects all supported protocols

# [EXAMPLE](#EXAMPLE)

```
struct priv {


  void *ours;
};
static void notify_cb(CURLM *multi, unsigned int notification,


                      CURL *easy, void *notifyp)
{


  struct priv *p = notifyp;


  printf("my ptr: %p\n", p->ours);


  /* ... */
}
int main(void)
{


  struct priv setup;


  CURLM *multi = curl_multi_init();


  /* ... use socket callback and custom pointer */


  curl_multi_setopt(multi, CURLMOPT_NOTIFYFUNCTION, notify_cb);


  curl_multi_setopt(multi, CURLMOPT_NOTIFYDATA, &setup);


  curl_multi_notify_enable(multi, CURLMNOTIFY_INFO_READ);
}
```

# [AVAILABILITY](#AVAILABILITY)

Added in curl 8.17.0

# [RETURN VALUE](#RETURN_VALUE)

Returns CURLM\_OK.

# [SEE ALSO](#SEE_ALSO)

[**CURLMOPT\_NOTIFYFUNCTION**(3)](/man/os/curl/CURLMOPT_NOTIFYFUNCTION.3), [**curl\_multi\_notify\_disable**(3)](/man/os/curl/curl_multi_notify_disable.3), [**curl\_multi\_notify\_enable**(3)](/man/os/curl/curl_multi_notify_enable.3)

2026-10-01 libcurl

---

Document: CURLMOPT_NOTIFYDATA(3) from curl 8.22.0-r4 (Chainguard OS)
Source: https://github.com/curl/curl.git
