| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
* fix two build errors due to mismatch between function
declarations and their definitions
* silence two mismatched signs warnings via casts
Approved-by: Daniel Stenberg
Closes #6093
|
|
|
|
| |
Closes #6012
|
|
|
|
|
|
|
| |
Makes get_protocol_family() faster and it moves the knowledge about the
"families" to each protocol handler, where it belongs.
Closes #5986
|
|
|
|
|
|
| |
Guidance-by: Tatsuhiro Tsujikawa
Closes #5864
|
|
|
|
| |
Closes #5786
|
|
|
|
|
| |
Reported-by: Tatsuhiro Tsujikawa
Closes #5733
|
|
|
|
|
|
| |
Reported-by: lilongyan-huawei on github
Fixes #5726
Closes #5727
|
|
|
|
| |
Closes #5690
|
|
|
|
| |
Closes #5675
|
|
|
|
|
|
|
|
| |
ngtcp2 added two new callbacks
Reported-by: Lucien Zürcher
Fixes #5624
Closes #5627
|
|
|
|
|
|
|
|
| |
For QUIC but also for regular TCP when the second family runs out of IPs
with a failure while the first family is still trying to connect.
Separated the timeout handling for IPv4 and IPv6 connections when they
both have a number of addresses to iterate over.
|
| |
|
|
|
|
|
|
| |
Reported-by: Peter Wu
Fixes #5565
Closes #5568
|
|
|
|
|
|
|
|
| |
quiche now requires the application to explicitly set the keylog path
for each connection, rather than reading the environment variable
itself.
Closes #5541
|
|
|
|
|
|
|
| |
Syncs with ngtcp2 commit 7e9a917d386d98 merged June 7 2020.
Assisted-by: Tatsuhiro Tsujikawa
Closes #5538
|
|
|
|
|
|
|
| |
Fix the verbose message while at it, quiche currently supports draft
27 and draft 28 simultaneously.
Closes #5518
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the method is updated inside libcurl we must still not change the
method as set by the user as then repeated transfers with that same
handle might not execute the same operation anymore!
This fixes the libcurl part of #5462
Test 1633 added to verify.
Closes #5499
|
|
|
|
|
|
|
|
|
| |
Tested with ngtcp2 built against the OpenSSL library. Additionally
tested with MultiSSL (NSS for TLS and ngtcp2+OpenSSL for QUIC).
The TLS backend (independent of QUIC) may or may not already have opened
the keylog file before. Therefore Curl_tls_keylog_open is always called
to ensure the file is open.
|
|
|
|
|
|
| |
Reported-by: Peter Wu
Fixes #5447 (the ngtcp2 side of it)
Closes #5451
|
|
|
|
|
|
| |
Addresses the quiche side of #5447
Reported-by: Peter Wu
Closes #5450
|
|
|
|
|
|
|
|
| |
Based on client.cc changes from ngtcp2. Tested with current git master,
ngtcp2 commit c77d5731ce92, nghttp3 commit 65ff479d4380.
Fixes #5444
Closes #5443
|
|
|
|
|
|
|
|
|
| |
If the QLOGDIR environment variable is set, enable qlogging.
... and create Curl_qlogdir() in the new generic vquic/vquic.c file for
QUIC functions that are backend independent.
Closes #5353
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
quiche has the potential to log qlog files. To enable this, you must
build quiche with the qlog feature enabled `cargo build --features
qlog`. curl then passes a file descriptor to quiche, which takes
ownership of the file. The FD transfer only works on UNIX.
The convention is to enable logging when the QLOGDIR environment is
set. This should be a path to a folder where files are written with the
naming template <SCID>.qlog.
Co-authored-by: Lucas Pardue
Replaces #5337
Closes #5341
|
|
|
|
| |
Closes #5335
|
|
|
|
| |
Follow-up to 0736ee73d346a52
|
|
|
|
|
|
|
|
| |
Currently, the TLS backend used by vquic/ngtcp2.c is selected at compile
time. Therefore OpenSSL support needs to be explicitly disabled.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
Closes #5148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This updates the ngtcp2 OpenSSL backend to follow the API change in
commit 32e703164 of ngtcp2.
Notable changes are:
- ngtcp2_crypto_derive_and_install_{rx,tx}_key have been added to replace
ngtcp2_crypto_derive_and_install_key
- the 'side' argument of ngtcp2_crypto_derive_and_install_initial_key
has been removed
Fixes #5166
Closes #5168
|
|
|
|
| |
Closes #5010
|
| |
|
|
|
|
| |
Follow-up to 7fc63d72333a
|
|
|
|
| |
Closes #4867
|
|
|
|
| |
Closes #4865
|
|
|
|
|
|
| |
Follow-up to recent commits
[skip ci]
|
|
|
|
|
|
|
|
|
|
| |
- Add new error code CURLE_QUIC_CONNECT_ERROR for QUIC connection
errors.
Prior to this change CURLE_FAILED_INIT was used, but that was not
correct.
Closes https://github.com/curl/curl/pull/4754
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove our cb_update_key in favor of ngtcp2's new
ngtcp2_crypto_update_key_cb which does the same thing.
Several days ago the ngtcp2_update_key callback function prototype was
changed in ngtcp2/ngtcp2@42ce09c. Though it would be possible to
fix up our cb_update_key for that change they also added
ngtcp2_crypto_update_key_cb which does the same thing so we'll use that
instead.
Ref: https://github.com/ngtcp2/ngtcp2/commit/42ce09c
Closes https://github.com/curl/curl/pull/4735
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Disable warning C4127 "conditional expression is constant" globally
in curl_setup.h for when building with Microsoft's compiler.
This mainly affects building with the Visual Studio project files found
in the projects dir.
Prior to this change the cmake and winbuild build systems already
disabled 4127 globally for when building with Microsoft's compiler.
Also, 4127 was already disabled for all build systems in the limited
circumstance of the WHILE_FALSE macro which disabled the warning
specifically for while(0). This commit removes the WHILE_FALSE macro and
all other cruft in favor of disabling globally in curl_setup.
Background:
We have various macros that cause 0 or 1 to be evaluated, which would
cause warning C4127 in Visual Studio. For example this causes it:
#define Curl_resolver_asynch() 1
Full behavior is not clearly defined and inconsistent across versions.
However it is documented that since VS 2015 Update 3 Microsoft has
addressed this somewhat but not entirely, not warning on while(true) for
example.
Prior to this change some C4127 warnings occurred when I built with
Visual Studio using the generated projects in the projects dir.
Closes https://github.com/curl/curl/pull/4658
|
|
|
|
|
|
|
|
| |
ERR_error_string(NULL) should never be called. It places the error in a
global buffer, which is not thread-safe. Use ERR_error_string_n with a
local buffer instead.
Closes #4645
|
|
|
|
|
| |
Fixes #4525
Closes #4603
|
|
|
|
|
| |
Fixes #4614
Closes #4615
|
|
|
|
|
|
|
| |
Reviewed-by: Tatsuhiro Tsujikawa
Fixes #4612
Closes #4613
|
|
|
|
|
|
| |
Assisted-by: Javier Blazquez
Ref #4525 (partial fix)
Closes #4600
|
|
|
|
|
|
|
|
| |
Pseudo header MUST come before regular headers or cause an error.
Reported-by: Cynthia Coan
Fixes #4571
Closes #4584
|
|
|
|
|
|
|
|
|
|
| |
On macOS/BSD, trying to call sendto on a connected UDP socket fails
with a EISCONN error. Because the singleipconnect has already called
connect on the socket when we're trying to use it for QUIC transfers
we need to use plain send instead.
Fixes #4529
Closes https://github.com/curl/curl/pull/4533
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ngtcp2 QUIC backend was using the MSG_DONTWAIT flag for send/recv
in order to perform nonblocking operations. On Windows this flag does
not exist. Instead, the socket must be set to nonblocking mode via
ioctlsocket.
This change sets the nonblocking flag on UDP sockets used for QUIC on
all platforms so the use of MSG_DONTWAIT is not needed.
Fixes #4531
Closes #4532
|
|
|
|
| |
Closes #4457
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- convert some of them to H3BUF() calls to infof()
- remove some of them completely
- made DEBUG_HTTP3 defined only if CURLDEBUG is set for now
Closes #4421
|