curl\_pushheader\_bynum(3) Library Functions Manual curl\_pushheader\_bynum(3)

# [NAME](#NAME)

curl\_pushheader\_bynum - get a push header by index

# [SYNOPSIS](#SYNOPSIS)

```
#include <curl/curl.h>
char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num);
```

# [DESCRIPTION](#DESCRIPTION)

This is a function that is only functional within a [*CURLMOPT\_PUSHFUNCTION(3)*](/man/os/curl/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 header field at the given index **num**, for the incoming server push request or NULL. The data pointed to is freed by libcurl when this callback returns. The returned pointer points to a "name:value" string that gets freed when this callback returns; although not constrained by its type, this string may not be altered.

# [PROTOCOLS](#PROTOCOLS)

This functionality affects http only

# [EXAMPLE](#EXAMPLE)

```
/* output all the incoming push request headers */
static int push_cb(CURL *parent,


                   CURL *easy,


                   size_t num_headers,


                   struct curl_pushheaders *headers,


                   void *clientp)
{


  size_t i = 0;


  char *field;


  do {


    field = curl_pushheader_bynum(headers, i);


    if(field)


      fprintf(stderr, "Push header: %s\n", field);


    i++;


  } while(field);


  return CURL_PUSH_OK; /* permission granted */
}
int main(void)
{


  CURLM *multi = curl_multi_init();


  curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_cb);
}
```

# [AVAILABILITY](#AVAILABILITY)

Added in curl 7.44.0

# [RETURN VALUE](#RETURN_VALUE)

Returns a pointer to the header field content or NULL.

# [SEE ALSO](#SEE_ALSO)

[**CURLMOPT\_PUSHFUNCTION**(3)](/man/os/curl/CURLMOPT_PUSHFUNCTION.3), [**curl\_pushheader\_byname**(3)](/man/os/curl/curl_pushheader_byname.3)

2026-10-19 libcurl

---

Document: curl_pushheader_bynum(3) from curl 8.23.0-r1 (Chainguard OS)
Source: https://github.com/curl/curl.git
