mirror of
https://github.com/curl/curl.git
synced 2026-08-10 21:30:58 +03:00
alt-svc: the libcurl bits
This commit is contained in:
parent
4331a3b8fa
commit
e1be825453
25 changed files with 1180 additions and 32 deletions
|
|
@ -5,7 +5,7 @@
|
|||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" * Copyright (C) 1998 - 2019, 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
|
||||
|
|
@ -313,6 +313,10 @@ File to write cookies to. See \fICURLOPT_COOKIEJAR(3)\fP
|
|||
Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP
|
||||
.IP CURLOPT_COOKIELIST
|
||||
Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP
|
||||
.IP CURLOPT_ALTSVC
|
||||
Specify the Alt-Svc: cache file name. See \fICURLOPT_ALTSVC(3)\fP
|
||||
.IP CURLOPT_ALTSVC_CTRL
|
||||
Enable and configure Alt-Svc: treatment. See \fICURLOPT_ALTSVC_CTRL(3)\fP
|
||||
.IP CURLOPT_HTTPGET
|
||||
Do an HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP
|
||||
.IP CURLOPT_REQUEST_TARGET
|
||||
|
|
|
|||
61
docs/libcurl/opts/CURLOPT_ALTSVC.3
Normal file
61
docs/libcurl/opts/CURLOPT_ALTSVC.3
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2019, 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.haxx.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.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLOPT_ALTSVC 3 "5 Feb 2019" "libcurl 7.64.1" "curl_easy_setopt options"
|
||||
.SH NAME
|
||||
CURLOPT_ALTSVC \- set alt-svc cache file name
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC, char *filename);
|
||||
.fi
|
||||
.SH EXPERIMENTAL
|
||||
Warning: this feature is early code and is marked as experimental. It can only
|
||||
be enabled by explictly telling configure with \fB--enable-alt-svc\fP. You are
|
||||
advised to not ship this in production before the experimental label is
|
||||
removed.
|
||||
.SH DESCRIPTION
|
||||
Pass in a pointer to a \fIfilename\fP to instruct libcurl to use that file as
|
||||
the Alt-Svc cache to read existing cache contents from and possibly also write
|
||||
it back to a after a transfer, unless \fBCURLALTSVC_READONLYFILE\fP is set in
|
||||
\fICURLOPT_ALTSVC_CTRL(3)\fP.
|
||||
.SH DEFAULT
|
||||
NULL. The alt-svc cache is not read nor written to file.
|
||||
.SH PROTOCOLS
|
||||
HTTPS
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, CURLALTSVC_H1);
|
||||
curl_easy_setopt(curl, CURLOPT_ALTSVC, "altsvc-cache.txt");
|
||||
curl_easy_perform(curl);
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.64.1
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR CURLOPT_ALTSVC_CTRL "(3), " CURLOPT_CONNECT_TO "(3), " CURLOPT_RESOLVE "(3), "
|
||||
.BR CURLOPT_COOKIEFILE "(3), "
|
||||
92
docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3
Normal file
92
docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2019, 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.haxx.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.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLOPT_ALTSVC_CTRL 3 "5 Feb 2019" "libcurl 7.64.1" "curl_easy_setopt options"
|
||||
.SH NAME
|
||||
CURLOPT_ALTSVC_CTRL \- control alt-svc behavior
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
#include <curl/curl.h>
|
||||
|
||||
#define CURLALTSVC_IMMEDIATELY (1<<0)
|
||||
#define CURLALTSVC_ALTUSED (1<<1)
|
||||
#define CURLALTSVC_READONLYFILE (1<<2)
|
||||
#define CURLALTSVC_H1 (1<<3)
|
||||
#define CURLALTSVC_H2 (1<<4)
|
||||
#define CURLALTSVC_H3 (1<<5)
|
||||
|
||||
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC_CTRL, long bitmask);
|
||||
.fi
|
||||
.SH EXPERIMENTAL
|
||||
Warning: this feature is early code and is marked as experimental. It can only
|
||||
be enabled by explictly telling configure with \fB--enable-alt-svc\fP. You are
|
||||
advised to not ship this in production before the experimental label is
|
||||
removed.
|
||||
.SH DESCRIPTION
|
||||
Populate the long \fIbitmask\fP with the correct set of features to instruct
|
||||
libcurl how to handle Alt-Svc for the transfers using this handle.
|
||||
|
||||
libcurl will only accept Alt-Svc headers over a secure transport, meaning
|
||||
HTTPS. It will also only complete a request to an alternative origin if that
|
||||
origin is properly hosted over HTTPS. These requirements are there to make
|
||||
sure both the source and the destination are legitimate.
|
||||
|
||||
Setting any bit will enable the alt-svc engine.
|
||||
.IP "CURLALTSVC_IMMEDIATELY"
|
||||
If an Alt-Svc: header is received, this instructs libcurl to switch to one of
|
||||
those alternatives asap rather than to save it and use for the next request.
|
||||
.IP "CURLALTSVC_ALTUSED"
|
||||
Issue the Alt-Used: header in all requests that have been redirected by
|
||||
alt-svc.
|
||||
.IP "CURLALTSVC_READONLYFILE"
|
||||
Do not write the alt-svc cache back to the file specified with
|
||||
\fICURLOPT_ALTSVC(3)\fP even if it gets updated. By default a file specified
|
||||
with that option will be read and written to as deemed necessary.
|
||||
.IP "CURLALTSVC_H1"
|
||||
Accept alternative services offered over HTTP/1.1.
|
||||
.IP "CURLALTSVC_H2"
|
||||
Accept alternative services offered over HTTP/2. This will only be used if
|
||||
libcurl was also built to actually support HTTP/2, otherwise this bit will be
|
||||
ignored.
|
||||
.IP "CURLALTSVC_H3"
|
||||
Accept alternative services offered over HTTP/3. This will only be used if
|
||||
libcurl was also built to actually support HTTP/3, otherwise this bit will be
|
||||
ignored.
|
||||
.SH DEFAULT
|
||||
0. No Alt-Svc treatment.
|
||||
.SH PROTOCOLS
|
||||
HTTPS
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, CURLALTSVC_H1);
|
||||
curl_easy_setopt(curl, CURLOPT_ALTSVC, "altsvc-cache.txt");
|
||||
curl_easy_perform(curl);
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.64.1
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR CURLOPT_ALTSVC "(3), " CURLOPT_CONNECT_TO "(3), " CURLOPT_RESOLVE "(3), "
|
||||
|
|
@ -83,6 +83,8 @@ man_MANS = \
|
|||
CURLOPT_ACCEPTTIMEOUT_MS.3 \
|
||||
CURLOPT_ACCEPT_ENCODING.3 \
|
||||
CURLOPT_ADDRESS_SCOPE.3 \
|
||||
CURLOPT_ALTSVC.3 \
|
||||
CURLOPT_ALTSVC_CTRL.3 \
|
||||
CURLOPT_APPEND.3 \
|
||||
CURLOPT_AUTOREFERER.3 \
|
||||
CURLOPT_BUFFERSIZE.3 \
|
||||
|
|
|
|||
|
|
@ -12,6 +12,12 @@
|
|||
|
||||
Name Introduced Deprecated Removed
|
||||
|
||||
CURLALTSVC_ALTUSED 7.64.1
|
||||
CURLALTSVC_H1 7.64.1
|
||||
CURLALTSVC_H2 7.64.1
|
||||
CURLALTSVC_H3 7.64.1
|
||||
CURLALTSVC_IMMEDIATELY 7.64.1
|
||||
CURLALTSVC_READONLYFILE 7.64.1
|
||||
CURLAUTH_ANY 7.10.6
|
||||
CURLAUTH_ANYSAFE 7.10.6
|
||||
CURLAUTH_BASIC 7.10.6
|
||||
|
|
@ -343,6 +349,8 @@ CURLOPT_ABSTRACT_UNIX_SOCKET 7.53.0
|
|||
CURLOPT_ACCEPTTIMEOUT_MS 7.24.0
|
||||
CURLOPT_ACCEPT_ENCODING 7.21.6
|
||||
CURLOPT_ADDRESS_SCOPE 7.19.0
|
||||
CURLOPT_ALTSVC 7.64.1
|
||||
CURLOPT_ALTSVC_CTRL 7.64.1
|
||||
CURLOPT_APPEND 7.17.0
|
||||
CURLOPT_AUTOREFERER 7.1
|
||||
CURLOPT_BUFFERSIZE 7.10
|
||||
|
|
@ -432,8 +440,6 @@ CURLOPT_HTTPREQUEST 7.1 - 7.15.5
|
|||
CURLOPT_HTTP_CONTENT_DECODING 7.16.2
|
||||
CURLOPT_HTTP_TRANSFER_DECODING 7.16.2
|
||||
CURLOPT_HTTP_VERSION 7.9.1
|
||||
CURLOPT_TRAILERFUNCTION 7.64.0
|
||||
CURLOPT_TRAILERDATA 7.64.0
|
||||
CURLOPT_IGNORE_CONTENT_LENGTH 7.14.1
|
||||
CURLOPT_INFILE 7.1 7.9.7
|
||||
CURLOPT_INFILESIZE 7.1
|
||||
|
|
@ -615,6 +621,8 @@ CURLOPT_TLS13_CIPHERS 7.61.0
|
|||
CURLOPT_TLSAUTH_PASSWORD 7.21.4
|
||||
CURLOPT_TLSAUTH_TYPE 7.21.4
|
||||
CURLOPT_TLSAUTH_USERNAME 7.21.4
|
||||
CURLOPT_TRAILERDATA 7.64.0
|
||||
CURLOPT_TRAILERFUNCTION 7.64.0
|
||||
CURLOPT_TRANSFERTEXT 7.1.1
|
||||
CURLOPT_TRANSFER_ENCODING 7.21.6
|
||||
CURLOPT_UNIX_SOCKET_PATH 7.40.0
|
||||
|
|
@ -855,8 +863,6 @@ CURL_PUSH_DENY 7.44.0
|
|||
CURL_PUSH_OK 7.44.0
|
||||
CURL_READFUNC_ABORT 7.12.1
|
||||
CURL_READFUNC_PAUSE 7.18.0
|
||||
CURL_TRAILERFUNC_OK 7.64.0
|
||||
CURL_TRAILERFUNC_ABORT 7.64.0
|
||||
CURL_REDIR_GET_ALL 7.19.1
|
||||
CURL_REDIR_POST_301 7.19.1
|
||||
CURL_REDIR_POST_302 7.19.1
|
||||
|
|
@ -903,7 +909,10 @@ CURL_TIMECOND_LASTMOD 7.9.7
|
|||
CURL_TIMECOND_NONE 7.9.7
|
||||
CURL_TLSAUTH_NONE 7.21.4
|
||||
CURL_TLSAUTH_SRP 7.21.4
|
||||
CURL_TRAILERFUNC_ABORT 7.64.0
|
||||
CURL_TRAILERFUNC_OK 7.64.0
|
||||
CURL_UPKEEP_INTERVAL_DEFAULT 7.62.0
|
||||
CURL_VERSION_ALTSVC 7.64.1
|
||||
CURL_VERSION_ASYNCHDNS 7.10.7
|
||||
CURL_VERSION_BROTLI 7.57.0
|
||||
CURL_VERSION_CONV 7.15.4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue