1CURLMOPT_PUSHDATA(3)                libcurl               CURLMOPT_PUSHDATA(3)
2
3
4

NAME

6       CURLMOPT_PUSHDATA - pointer to pass to push callback
7

SYNOPSIS

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

DESCRIPTION

14       Set  pointer  to  pass  as  the last argument to the CURLMOPT_PUSHFUNC‐
15       TION(3) callback. The pointer will not be touched or  used  by  libcurl
16       itself, only passed on to the callback function.
17

DEFAULT

19       NULL
20

PROTOCOLS

22       HTTP(S)
23

EXAMPLE

25       /* only allow pushes for file names starting with "push-" */
26       int push_callback(CURL *parent,
27                         CURL *easy,
28                         size_t num_headers,
29                         struct curl_pushheaders *headers,
30                         void *clientp)
31       {
32         char *headp;
33         int *transfers = (int *)clientp;
34         FILE *out;
35         headp = curl_pushheader_byname(headers, ":path");
36         if(headp && !strncmp(headp, "/push-", 6)) {
37           fprintf(stderr, "The PATH is %s\n", headp);
38
39           /* save the push here */
40           out = fopen("pushed-stream", "wb");
41
42           /* write to this file */
43           curl_easy_setopt(easy, CURLOPT_WRITEDATA, out);
44
45           (*transfers)++; /* one more */
46
47           return CURL_PUSH_OK;
48         }
49         return CURL_PUSH_DENY;
50       }
51
52       curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_callback);
53       curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter);
54

AVAILABILITY

56       Added in 7.44.0
57

RETURN VALUE

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

SEE ALSO

63       CURLMOPT_PUSHFUNCTION(3), CURLMOPT_PIPELINING(3),  CURLOPT_PIPEWAIT(3),
64       RFC7540
65
66
67
68ibcurl 8.2.1                    April 26, 2023            CURLMOPT_PUSHDATA(3)
Impressum