curl_pushheader_byname(3)

πŸ’… curl_pushheader_byname(3) πŸ’…

okay bestie, this page is from the Library Functions Manual and the whole vibe is: grab one server push header by name, no cap. ✨

🌸 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 πŸ’–

so this function is only functional inside a CURLMOPT_PUSHFUNCTION(3) callback. trying to use it anywhere else makes no sense and it has no function then. periodt. πŸŽ€

it returns the value for the given header field name (or NULL) for the incoming server push request. it’s basically a shortcut so your app doesn’t have to loop through all headers to find the one it’s interested in. icon behavior. ✨

the data this function points to is freed when this callback returns, and β€” even though the type doesn’t constrain you β€” it may not be altered. so look, don’t touch, okay? πŸ™ˆ if more than one header field use the same name, this returns only the first one.

🌈 PROTOCOLS 🌈

this functionality affects http only. iykyk. πŸ’…

πŸ¦‹ 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. that’s the tea. πŸ“

πŸŽ€ SEE ALSO πŸŽ€


xoxo, this was libcurl πŸ’– β€” dated 2026-10-12, still serving curl_pushheader_byname(3) realness. 🫢

πŸ“¦ where this page comes from