parent
1695fcf57d
commit
0065b146eb
@ -22,4 +22,4 @@ HTTP/3 when you know that the target speaks HTTP/3 on the given host and port.
|
|||||||
|
|
||||||
This option will make curl fail if a QUIC connection cannot be established, it
|
This option will make curl fail if a QUIC connection cannot be established, it
|
||||||
will not attempt any other HTTP version on its own. Use --http3 for similar
|
will not attempt any other HTTP version on its own. Use --http3 for similar
|
||||||
fuctionality *with* a fallback.
|
functionality *with* a fallback.
|
||||||
|
|||||||
@ -14,7 +14,7 @@ Multi: mutex
|
|||||||
Experimental: yes
|
Experimental: yes
|
||||||
---
|
---
|
||||||
Tells curl to try HTTP/3 to the host in the URL, but fallback to earlier
|
Tells curl to try HTTP/3 to the host in the URL, but fallback to earlier
|
||||||
HTTP versions if the HTTP/3 connection establishement fails. HTTP/3 is only
|
HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only
|
||||||
available for HTTPS and not for HTTP URLs.
|
available for HTTPS and not for HTTP URLs.
|
||||||
|
|
||||||
This option allows a user to avoid using the Alt-Svc method of upgrading to
|
This option allows a user to avoid using the Alt-Svc method of upgrading to
|
||||||
@ -24,4 +24,4 @@ When asked to use HTTP/3, curl will issue a separate attempt to use older HTTP
|
|||||||
versions with a slight delay, so if the HTTP/3 transfer fails or is very slow,
|
versions with a slight delay, so if the HTTP/3 transfer fails or is very slow,
|
||||||
curl will still try to proceed with an older HTTP version.
|
curl will still try to proceed with an older HTTP version.
|
||||||
|
|
||||||
Use --http3-only for similar fuctionality *without* a fallback.
|
Use --http3-only for similar functionality *without* a fallback.
|
||||||
|
|||||||
@ -258,7 +258,7 @@ static CURLcode socket_open(struct Curl_easy *data,
|
|||||||
* we get sockfd == 0 and if called again, we get a valid one > 0.
|
* we get sockfd == 0 and if called again, we get a valid one > 0.
|
||||||
* If we close the 0, we sometimes get failures in multi poll, as
|
* If we close the 0, we sometimes get failures in multi poll, as
|
||||||
* 0 seems also be the fd for the sockpair used for WAKEUP polling.
|
* 0 seems also be the fd for the sockpair used for WAKEUP polling.
|
||||||
* Very strange. Maybe this code shouldbe ifdef'ed for macOS, but
|
* Very strange. Maybe this code should be ifdef'ed for macOS, but
|
||||||
* on "real" OS, fd 0 is stdin and we never see that. So...
|
* on "real" OS, fd 0 is stdin and we never see that. So...
|
||||||
*/
|
*/
|
||||||
fake_sclose(*sockfd);
|
fake_sclose(*sockfd);
|
||||||
|
|||||||
@ -227,7 +227,7 @@ CURLcode Curl_cf_def_query(struct Curl_cfilter *cf,
|
|||||||
* Create a new filter instance, unattached to the filter chain.
|
* Create a new filter instance, unattached to the filter chain.
|
||||||
* Use Curl_conn_cf_add() to add it to the chain.
|
* Use Curl_conn_cf_add() to add it to the chain.
|
||||||
* @param pcf on success holds the created instance
|
* @param pcf on success holds the created instance
|
||||||
* @parm cft the filter type
|
* @param cft the filter type
|
||||||
* @param ctx the type specific context to use
|
* @param ctx the type specific context to use
|
||||||
*/
|
*/
|
||||||
CURLcode Curl_cf_create(struct Curl_cfilter **pcf,
|
CURLcode Curl_cf_create(struct Curl_cfilter **pcf,
|
||||||
|
|||||||
@ -1793,7 +1793,7 @@ static ssize_t cf_h2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||||||
|
|
||||||
while(stream->memlen == 0 /* have no data for this stream */
|
while(stream->memlen == 0 /* have no data for this stream */
|
||||||
&& !ctx->pause_stream_id /* we are not paused either */
|
&& !ctx->pause_stream_id /* we are not paused either */
|
||||||
&& ctx->inbuflen == 0) { /* and out inpput buffer is emtpy */
|
&& ctx->inbuflen == 0) { /* and out input buffer is empty */
|
||||||
/* Receive data from the "lower" filters */
|
/* Receive data from the "lower" filters */
|
||||||
nread = Curl_conn_cf_recv(cf->next, data, ctx->inbuf, H2_BUFSIZE, err);
|
nread = Curl_conn_cf_recv(cf->next, data, ctx->inbuf, H2_BUFSIZE, err);
|
||||||
if(nread < 0) {
|
if(nread < 0) {
|
||||||
|
|||||||
@ -1353,7 +1353,7 @@ struct UrlState {
|
|||||||
size_t drain; /* Increased when this stream has data to read, even if its
|
size_t drain; /* Increased when this stream has data to read, even if its
|
||||||
socket is not necessarily is readable. Decreased when
|
socket is not necessarily is readable. Decreased when
|
||||||
checked. */
|
checked. */
|
||||||
struct Curl_data_priority priority; /* shallow coyp of data->set */
|
struct Curl_data_priority priority; /* shallow copy of data->set */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
curl_read_callback fread_func; /* read callback/function */
|
curl_read_callback fread_func; /* read callback/function */
|
||||||
|
|||||||
@ -76,7 +76,7 @@ CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char *name,
|
|||||||
#define ALPN_H3 "h3"
|
#define ALPN_H3 "h3"
|
||||||
|
|
||||||
/* conservative sizes on the ALPN entries and count we are handling,
|
/* conservative sizes on the ALPN entries and count we are handling,
|
||||||
* we can increase these if we ever feel the need or have to accomodate
|
* we can increase these if we ever feel the need or have to accommodate
|
||||||
* ALPN strings from the "outside". */
|
* ALPN strings from the "outside". */
|
||||||
#define ALPN_NAME_MAX 10
|
#define ALPN_NAME_MAX 10
|
||||||
#define ALPN_ENTRIES_MAX 3
|
#define ALPN_ENTRIES_MAX 3
|
||||||
|
|||||||
@ -78,7 +78,7 @@ int test(char *URL)
|
|||||||
/* no peer verify */
|
/* no peer verify */
|
||||||
easy_setopt(curl[i], CURLOPT_SSL_VERIFYPEER, 0L);
|
easy_setopt(curl[i], CURLOPT_SSL_VERIFYPEER, 0L);
|
||||||
easy_setopt(curl[i], CURLOPT_SSL_VERIFYHOST, 0L);
|
easy_setopt(curl[i], CURLOPT_SSL_VERIFYHOST, 0L);
|
||||||
/* wait for first connection establised to see if we can share it */
|
/* wait for first connection established to see if we can share it */
|
||||||
easy_setopt(curl[i], CURLOPT_PIPEWAIT, 1L);
|
easy_setopt(curl[i], CURLOPT_PIPEWAIT, 1L);
|
||||||
/* go verbose */
|
/* go verbose */
|
||||||
easy_setopt(curl[i], CURLOPT_VERBOSE, 1L);
|
easy_setopt(curl[i], CURLOPT_VERBOSE, 1L);
|
||||||
|
|||||||
@ -77,7 +77,7 @@ int test(char *URL)
|
|||||||
easy_setopt(curl[i], CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_3ONLY);
|
easy_setopt(curl[i], CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_3ONLY);
|
||||||
easy_setopt(curl[i], CURLOPT_CONNECTTIMEOUT_MS, (long)5000);
|
easy_setopt(curl[i], CURLOPT_CONNECTTIMEOUT_MS, (long)5000);
|
||||||
easy_setopt(curl[i], CURLOPT_CAINFO, "./certs/EdelCurlRoot-ca.cacert");
|
easy_setopt(curl[i], CURLOPT_CAINFO, "./certs/EdelCurlRoot-ca.cacert");
|
||||||
/* wait for first connection establised to see if we can share it */
|
/* wait for first connection established to see if we can share it */
|
||||||
easy_setopt(curl[i], CURLOPT_PIPEWAIT, 1L);
|
easy_setopt(curl[i], CURLOPT_PIPEWAIT, 1L);
|
||||||
/* go verbose */
|
/* go verbose */
|
||||||
easy_setopt(curl[i], CURLOPT_VERBOSE, 1L);
|
easy_setopt(curl[i], CURLOPT_VERBOSE, 1L);
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class TestGoAway:
|
|||||||
self.r = None
|
self.r = None
|
||||||
def long_run():
|
def long_run():
|
||||||
curl = CurlClient(env=env)
|
curl = CurlClient(env=env)
|
||||||
# send 10 chunks of 1024 bytest in a response body with 100ms delay inbetween
|
# send 10 chunks of 1024 bytes in a response body with 100ms delay in between
|
||||||
urln = f'https://{env.authority_for(env.domain1, proto)}' \
|
urln = f'https://{env.authority_for(env.domain1, proto)}' \
|
||||||
f'/curltest/tweak?id=[0-{count - 1}]'\
|
f'/curltest/tweak?id=[0-{count - 1}]'\
|
||||||
'&chunks=10&chunk_size=1024&chunk_delay=100ms'
|
'&chunks=10&chunk_size=1024&chunk_delay=100ms'
|
||||||
@ -85,7 +85,7 @@ class TestGoAway:
|
|||||||
self.r = None
|
self.r = None
|
||||||
def long_run():
|
def long_run():
|
||||||
curl = CurlClient(env=env)
|
curl = CurlClient(env=env)
|
||||||
# send 10 chunks of 1024 bytest in a response body with 100ms delay inbetween
|
# send 10 chunks of 1024 bytes in a response body with 100ms delay in between
|
||||||
urln = f'https://{env.authority_for(env.domain1, proto)}' \
|
urln = f'https://{env.authority_for(env.domain1, proto)}' \
|
||||||
f'/curltest/tweak?id=[0-{count - 1}]'\
|
f'/curltest/tweak?id=[0-{count - 1}]'\
|
||||||
'&chunks=10&chunk_size=1024&chunk_delay=100ms'
|
'&chunks=10&chunk_size=1024&chunk_delay=100ms'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user