Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
curl_pushheader_byname/bynum.3: document in their own man pages
These two functions were added in 7.44.0 when CURLMOPT_PUSHFUNCTION was introduced but always lived a life in the shadows, embedded in the CURLMOPT_PUSHFUNCTION man page. Until now. It makes better sense and gives more visibility to document them in their own stand-alone man pages. Closes #11286
- Loading branch information
Showing
5 changed files
with
159 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
.\" ************************************************************************** | ||
.\" * _ _ ____ _ | ||
.\" * Project ___| | | | _ \| | | ||
.\" * / __| | | | |_) | | | ||
.\" * | (__| |_| | _ <| |___ | ||
.\" * \___|\___/|_| \_\_____| | ||
.\" * | ||
.\" * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. | ||
.\" * | ||
.\" * This software is licensed as described in the file COPYING, which | ||
.\" * you should have received as part of this distribution. The terms | ||
.\" * are also available at https://curl.se/docs/copyright.html. | ||
.\" * | ||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell | ||
.\" * copies of the Software, and permit persons to whom the Software is | ||
.\" * furnished to do so, under the terms of the COPYING file. | ||
.\" * | ||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
.\" * KIND, either express or implied. | ||
.\" * | ||
.\" * SPDX-License-Identifier: curl | ||
.\" * | ||
.\" ************************************************************************** | ||
.TH curl_pushheader_byname 3 "9 Jun 2023" "libcurl" "libcurl" | ||
.SH NAME | ||
curl_pushheader_byname - get a push header by name | ||
.SH SYNOPSIS | ||
.nf | ||
#include <curl/curl.h> | ||
|
||
char *curl_pushheader_byname(struct curl_pushheaders *h, const char *name); | ||
.fi | ||
.SH DESCRIPTION | ||
This is a function that is only functional within a | ||
\fICURLMOPT_PUSHFUNCTION(3)\fP 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 will be freed when this callback returns. If more | ||
than one header field use the same name, this returns only the first one. | ||
|
||
.SH EXAMPLE | ||
.nf | ||
int curl_push_callback(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; | ||
} | ||
|
||
curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, curl_push_callback); | ||
curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter); | ||
.fi | ||
.SH AVAILABILITY | ||
Added in 7.44.0 | ||
.SH RETURN VALUE | ||
Returns a pointer to the header field content or NULL. | ||
.SH "SEE ALSO" | ||
.BR CURLMOPT_PUSHFUNCTION "(3)," curl_pushheader_bynum "(3), " |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
.\" ************************************************************************** | ||
.\" * _ _ ____ _ | ||
.\" * Project ___| | | | _ \| | | ||
.\" * / __| | | | |_) | | | ||
.\" * | (__| |_| | _ <| |___ | ||
.\" * \___|\___/|_| \_\_____| | ||
.\" * | ||
.\" * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. | ||
.\" * | ||
.\" * This software is licensed as described in the file COPYING, which | ||
.\" * you should have received as part of this distribution. The terms | ||
.\" * are also available at https://curl.se/docs/copyright.html. | ||
.\" * | ||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell | ||
.\" * copies of the Software, and permit persons to whom the Software is | ||
.\" * furnished to do so, under the terms of the COPYING file. | ||
.\" * | ||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
.\" * KIND, either express or implied. | ||
.\" * | ||
.\" * SPDX-License-Identifier: curl | ||
.\" * | ||
.\" ************************************************************************** | ||
.TH curl_pushheader_bynum 3 "9 Jun 2023" "libcurl" "libcurl" | ||
.SH NAME | ||
curl_pushheader_bynum - get a push header by index | ||
.SH SYNOPSIS | ||
.nf | ||
#include <curl/curl.h> | ||
|
||
char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num); | ||
.fi | ||
.SH DESCRIPTION | ||
This is a function that is only functional within a | ||
\fICURLMOPT_PUSHFUNCTION(3)\fP 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 \fBnum\fP, for | ||
the incoming server push request or NULL. The data pointed will be freed when | ||
this callback returns. The returned pointer points to a "name:value" string | ||
that will be freed when this callback returns. | ||
|
||
.SH EXAMPLE | ||
.nf | ||
/* output all the incoming push request headers */ | ||
int curl_push_callback(CURL *parent, | ||
CURL *easy, | ||
size_t num_headers, | ||
struct curl_pushheaders *headers, | ||
void *clientp) | ||
{ | ||
sizt_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 */ | ||
} | ||
|
||
curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, curl_push_callback); | ||
.fi | ||
.SH AVAILABILITY | ||
Added in 7.44.0 | ||
.SH RETURN VALUE | ||
Returns a pointer to the header field content or NULL. | ||
.SH "SEE ALSO" | ||
.BR CURLMOPT_PUSHFUNCTION "(3)," curl_pushheader_byname "(3)," |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters