manpagez: man pages & more
man curl_pushheader_byname(3)
Home | html | info | man
curl_pushheader_byname(3)  Library Functions Manual  curl_pushheader_byname(3)


NAME

       curl_pushheader_byname - get a push header by name


SYNOPSIS

       #include <curl/curl.h>

       char *curl_pushheader_byname(struct curl_pushheaders *h, const char *name);


DESCRIPTION

       This is a function that is only functional within a
       CURLMOPT_PUSHFUNCTION(3) callback. It makes no sense to try to use it
       elsewhere and it has no function then.

       It returns the value for the given header field name (or NULL) for the
       incoming server push request. This is a shortcut so that the
       application does not have to loop through all headers to find the one
       it is interested in. The data this function points to is freed when
       this callback returns. If more than one header field use the same name,
       this returns only the first one.


PROTOCOLS

       This functionality affects http only


EXAMPLE

       #include <string.h> /* for strncmp */

       static int push_cb(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_cb);
         curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter);
       }


AVAILABILITY

       Added in curl 7.44.0


RETURN VALUE

       Returns a pointer to the header field content or NULL.


SEE ALSO

       CURLMOPT_PUSHFUNCTION(3), curl_pushheader_bynum(3)

libcurl                           2024-08-05         curl_pushheader_byname(3)

curl 8.9.1 - Generated Tue Aug 6 18:36:22 CDT 2024
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.