mirror of
https://github.com/curl/curl.git
synced 2026-08-25 21:43:37 +03:00
CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly
Even though it cannot fall-back to a lower HTTP version automatically. The safer way to upgrade remains via CURLOPT_ALTSVC. CURLOPT_H3 no longer has any bits that do anything and might be removed before we remove the experimental label. Updated the curl tool accordingly to use "--http3". Closes #4197
This commit is contained in:
parent
317076876a
commit
026840e35c
16 changed files with 43 additions and 39 deletions
|
|
@ -169,10 +169,10 @@ static CURLcode http_setup_conn(struct connectdata *conn)
|
|||
Curl_mime_initpart(&http->form, conn->data);
|
||||
data->req.protop = http;
|
||||
|
||||
if(data->set.h3opts & CURLH3_DIRECT) {
|
||||
if(data->set.httpversion == CURL_HTTP_VERSION_3) {
|
||||
if(conn->handler->flags & PROTOPT_SSL)
|
||||
/* Only go h3-direct on HTTPS URLs. It needs a UDP socket and does the
|
||||
QUIC dance. */
|
||||
/* Only go HTTP/3 directly on HTTPS URLs. It needs a UDP socket and does
|
||||
the QUIC dance. */
|
||||
conn->transport = TRNSPRT_QUIC;
|
||||
else {
|
||||
failf(data, "HTTP/3 requested for non-HTTPS URL");
|
||||
|
|
|
|||
|
|
@ -809,6 +809,11 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
|
|||
arg = va_arg(param, long);
|
||||
if(arg < CURL_HTTP_VERSION_NONE)
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
#ifdef ENABLE_QUIC
|
||||
if(arg == CURL_HTTP_VERSION_3)
|
||||
;
|
||||
else
|
||||
#endif
|
||||
#ifndef USE_NGHTTP2
|
||||
if(arg >= CURL_HTTP_VERSION_2)
|
||||
return CURLE_UNSUPPORTED_PROTOCOL;
|
||||
|
|
@ -2752,8 +2757,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
|
|||
#endif
|
||||
case CURLOPT_H3:
|
||||
#ifdef ENABLE_QUIC
|
||||
arg = va_arg(param, long);
|
||||
data->set.h3opts = arg;
|
||||
/* not use anymore */
|
||||
#else
|
||||
return CURLE_NOT_BUILT_IN;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1680,7 +1680,6 @@ struct UserDefined {
|
|||
CURLU *uh; /* URL handle for the current parsed URL */
|
||||
void *trailer_data; /* pointer to pass to trailer data callback */
|
||||
curl_trailer_callback trailer_callback; /* trailing data callback */
|
||||
long h3opts; /* the CURLOPT_H3 bitmask */
|
||||
bit is_fread_set:1; /* has read callback been set to non-NULL? */
|
||||
bit is_fwrite_set:1; /* has write callback been set to non-NULL? */
|
||||
bit free_referer:1; /* set TRUE if 'referer' points to a string we
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue