CURLMOPT_PUSHDATA(3)

CURLMOPT_PUSHDATA3

Pointer to pass to push callback

Usage

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

Overview

Set a pointer to pass as the last argument to the CURLMOPT_PUSHFUNCTION(3) callback. The pointer is not touched or used by libcurl itself, only passed on to the callback function.

Default

NULL

Protocols

HTTP(S)

Examples

#include <string.h>
/* only allow pushes for file names starting with "push-" */
int push_callback(CURL *parent,
                  CURL *easy,
                  size_t num_headers,
                  struct curl_pushheaders *headers,
                  void *clientp)
{
  char *headp;
  int *transfers = (int *)clientp;
  FILE *out;
  headp = curl_pushheader_byname(headers, ":path");
  if(headp && !strncmp(headp, "/push-", 6)) {
    fprintf(stderr, "The PATH is %s\n", headp);
    /* save the push here */
    out = fopen("pushed-stream", "wb");
    /* write to this file */
    curl_easy_setopt(easy, CURLOPT_WRITEDATA, out);
    (*transfers)++; /* one more */
    return CURL_PUSH_OK;
  }
  return CURL_PUSH_DENY;
}
int main(void)
{
  int counter;
  CURLM *multi = curl_multi_init();
  curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_callback);
  curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter);
}

Return value

Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.

Releases

66 releases since macOS 10.12; the text changed 12 times.

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

Availability

Added in 7.44.0

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