xref: /aosp_15_r20/external/curl/docs/libcurl/curl_pushheader_bynum.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerTitle: curl_pushheader_bynum
5*6236dae4SAndroid Build Coastguard WorkerSection: 3
6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl
7*6236dae4SAndroid Build Coastguard WorkerSee-also:
8*6236dae4SAndroid Build Coastguard Worker  - CURLMOPT_PUSHFUNCTION (3)
9*6236dae4SAndroid Build Coastguard Worker  - curl_pushheader_byname (3)
10*6236dae4SAndroid Build Coastguard WorkerProtocol:
11*6236dae4SAndroid Build Coastguard Worker  - HTTP
12*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.44.0
13*6236dae4SAndroid Build Coastguard Worker---
14*6236dae4SAndroid Build Coastguard Worker
15*6236dae4SAndroid Build Coastguard Worker# NAME
16*6236dae4SAndroid Build Coastguard Worker
17*6236dae4SAndroid Build Coastguard Workercurl_pushheader_bynum - get a push header by index
18*6236dae4SAndroid Build Coastguard Worker
19*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard Worker~~~c
22*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
23*6236dae4SAndroid Build Coastguard Worker
24*6236dae4SAndroid Build Coastguard Workerchar *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num);
25*6236dae4SAndroid Build Coastguard Worker~~~
26*6236dae4SAndroid Build Coastguard Worker
27*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION
28*6236dae4SAndroid Build Coastguard Worker
29*6236dae4SAndroid Build Coastguard WorkerThis is a function that is only functional within a
30*6236dae4SAndroid Build Coastguard WorkerCURLMOPT_PUSHFUNCTION(3) callback. It makes no sense to try to use it
31*6236dae4SAndroid Build Coastguard Workerelsewhere and it has no function then.
32*6236dae4SAndroid Build Coastguard Worker
33*6236dae4SAndroid Build Coastguard WorkerIt returns the value for the header field at the given index **num**, for
34*6236dae4SAndroid Build Coastguard Workerthe incoming server push request or NULL. The data pointed to is freed by
35*6236dae4SAndroid Build Coastguard Workerlibcurl when this callback returns. The returned pointer points to a
36*6236dae4SAndroid Build Coastguard Worker"name:value" string that gets freed when this callback returns.
37*6236dae4SAndroid Build Coastguard Worker
38*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS%
39*6236dae4SAndroid Build Coastguard Worker
40*6236dae4SAndroid Build Coastguard Worker# EXAMPLE
41*6236dae4SAndroid Build Coastguard Worker
42*6236dae4SAndroid Build Coastguard Worker~~~c
43*6236dae4SAndroid Build Coastguard Worker/* output all the incoming push request headers */
44*6236dae4SAndroid Build Coastguard Workerstatic int push_cb(CURL *parent,
45*6236dae4SAndroid Build Coastguard Worker                   CURL *easy,
46*6236dae4SAndroid Build Coastguard Worker                   size_t num_headers,
47*6236dae4SAndroid Build Coastguard Worker                   struct curl_pushheaders *headers,
48*6236dae4SAndroid Build Coastguard Worker                   void *clientp)
49*6236dae4SAndroid Build Coastguard Worker{
50*6236dae4SAndroid Build Coastguard Worker  int i = 0;
51*6236dae4SAndroid Build Coastguard Worker  char *field;
52*6236dae4SAndroid Build Coastguard Worker  do {
53*6236dae4SAndroid Build Coastguard Worker     field = curl_pushheader_bynum(headers, i);
54*6236dae4SAndroid Build Coastguard Worker     if(field)
55*6236dae4SAndroid Build Coastguard Worker       fprintf(stderr, "Push header: %s\n", field);
56*6236dae4SAndroid Build Coastguard Worker     i++;
57*6236dae4SAndroid Build Coastguard Worker  } while(field);
58*6236dae4SAndroid Build Coastguard Worker  return CURL_PUSH_OK; /* permission granted */
59*6236dae4SAndroid Build Coastguard Worker}
60*6236dae4SAndroid Build Coastguard Worker
61*6236dae4SAndroid Build Coastguard Workerint main(void)
62*6236dae4SAndroid Build Coastguard Worker{
63*6236dae4SAndroid Build Coastguard Worker  CURLM *multi = curl_multi_init();
64*6236dae4SAndroid Build Coastguard Worker  curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_cb);
65*6236dae4SAndroid Build Coastguard Worker}
66*6236dae4SAndroid Build Coastguard Worker~~~
67*6236dae4SAndroid Build Coastguard Worker
68*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY%
69*6236dae4SAndroid Build Coastguard Worker
70*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE
71*6236dae4SAndroid Build Coastguard Worker
72*6236dae4SAndroid Build Coastguard WorkerReturns a pointer to the header field content or NULL.
73