#
bb09a304 |
| 26-Jun-2024 |
Stefan Eissing |
http/3: add shutdown support - openssl-quic shutdown handling - ngtcp2 shutdown handling - quiche shutdown handling - add test_19_06 for verfication Reported-by: Dexter
http/3: add shutdown support - openssl-quic shutdown handling - ngtcp2 shutdown handling - quiche shutdown handling - add test_19_06 for verfication Reported-by: Dexter Gerig Closes #14027 Fixes #14022
show more ...
|
#
411af830 |
| 26-Jun-2024 |
Stefan Eissing |
quic: require at least OpenSSL 3.3 for QUIC - when checking for QUIC support in OpenSSL, also check for it being at least 3.3.0 - remove workarounds for features buggy or missing i
quic: require at least OpenSSL 3.3 for QUIC - when checking for QUIC support in OpenSSL, also check for it being at least 3.3.0 - remove workarounds for features buggy or missing in 3.2 Closes #14026
show more ...
|
#
7208ff65 |
| 12-Jun-2024 |
Daniel Stenberg |
http: remove "struct HTTP" It is not actually used anymore and only contained a dummy struct field. Remove all traces and uses of it. Closes #13927
|
#
c31041b1 |
| 07-Jun-2024 |
Stefan Eissing |
connection: shutdown TLS (for FTP) better This adds connection shutdown infrastructure and first use for FTP. FTP data connections, when not encountering an error, are now shut down in a
connection: shutdown TLS (for FTP) better This adds connection shutdown infrastructure and first use for FTP. FTP data connections, when not encountering an error, are now shut down in a blocking way with a 2sec timeout. - add cfilter `Curl_cft_shutdown` callback - keep a shutdown start timestamp and timeout at connectdata - provide shutdown timeout default and member in `data->set.shutdowntimeout`. - provide methods for starting, interrogating and clearing shutdown timers - provide `Curl_conn_shutdown_blocking()` to shutdown the `sockindex` filter chain in a blocking way. Use that in FTP. - add `Curl_conn_cf_poll()` to wait for socket events during shutdown of a connection filter chain. This gets the monitoring sockets and events via the filters "adjust_pollset()" methods. This gives correct behaviour when shutting down a TLS connection through a HTTP/2 proxy. - Implement shutdown for all socket filters - for HTTP/2 and h2 proxying to send GOAWAY - for TLS backends to the best of their capabilities - for tcp socket filter to make a final, nonblocking receive to avoid unwanted RST states - add shutdown forwarding to happy eyeballers and https connect ballers when applicable. Closes #13904
show more ...
|
#
08872971 |
| 13-May-2024 |
Viktor Szakats |
lib/v*: tidy up types and casts Also add a couple of negative checks. Cherry-picked from #13489 Closes #13622
|
#
c6655f70 |
| 27-Mar-2024 |
Stefan Eissing |
http/2, http/3: decouple stream state from easy handle - add `Curl_hash_offt` as hashmap between a `curl_off_t` and an object. Use this in h2+h3 connection filters to associate `
http/2, http/3: decouple stream state from easy handle - add `Curl_hash_offt` as hashmap between a `curl_off_t` and an object. Use this in h2+h3 connection filters to associate `data->id` with the internal stream state. - changed implementations of all affected connection filters - removed `h2_ctx*` and `h3_ctx*` from `struct HTTP` and thus the easy handle - solves the problem of attaching "foreign protocol" easy handles during connection shutdown Test 1616 verifies the new hash functions. Closes #13204
show more ...
|
#
e411c98f |
| 11-Apr-2024 |
Viktor Szakats |
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) Before this patch, two macros were used to guard IPv6 features in curl sources: `ENABLE_IPV6` and `USE_IPV6`. This patch ma
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) Before this patch, two macros were used to guard IPv6 features in curl sources: `ENABLE_IPV6` and `USE_IPV6`. This patch makes the source use the latter for consistency with other similar switches. `-DENABLE_IPV6` remains accepted for compatibility as a synonym for `-DUSE_IPV6`, when passed to the compiler. `ENABLE_IPV6` also remains the name of the CMake and `Makefile.vc` options to control this feature. Closes #13349
show more ...
|
#
32101010 |
| 22-Mar-2024 |
Stefan Eissing |
tls: use shared init code for TCP+QUIC Closes #13172
|
#
9287563e |
| 05-Apr-2024 |
Stefan Eissing |
vquic: use new curl_int64_t type - add curl_int64_t signed 64-bit type for lib use - define CURL_PRId64, CURL_PRIu64 format ids - use curl_int64_t in vquic curl_in
vquic: use new curl_int64_t type - add curl_int64_t signed 64-bit type for lib use - define CURL_PRId64, CURL_PRIu64 format ids - use curl_int64_t in vquic curl_int64_t signed complements the existing curl_uint64_t unsigned. Note that `curl_int64_t` and `int64_t` are assignable from each other but not identical. Some platforms with 64 long type defint int64_t as "long long" (staring at macOS) which messes up things like pointers and format identifiers. Closes https://github.com/curl/curl/pull/13293
show more ...
|
#
32083608 |
| 30-Mar-2024 |
Daniel Stenberg |
vquic: use CURL_FORMAT_CURL_OFF_T for 64 bit printf output Reported-by: Keitagit-kun on github Fixes #13224 Closes #13231
|
#
98f67a61 |
| 19-Mar-2024 |
Stefan Eissing |
http2, http3: only return CURLE_PARTIAL_FILE when bytes were received - should resolve spurious pytest failures when stream were reset right after response header were received
http2, http3: only return CURLE_PARTIAL_FILE when bytes were received - should resolve spurious pytest failures when stream were reset right after response header were received Clsoes #13151
show more ...
|
#
fcef00db |
| 08-Mar-2024 |
Stefan Eissing |
lib: keep conn IP information together new struct ip_quadruple for holding local/remote addr+port - used in data->info and conn and cf-socket.c - copy back and forth complete st
lib: keep conn IP information together new struct ip_quadruple for holding local/remote addr+port - used in data->info and conn and cf-socket.c - copy back and forth complete struct - add 'secondary' to conn - use secondary in reporting success for ftp 2nd connection Reported-by: DasKutti on github Fixes #13084 Closes #13090
show more ...
|
#
9c7768cd |
| 04-Mar-2024 |
Viktor Szakats |
openssl-quic: fix BIO leak and Windows warning Caused by an accidentally duplicated line in d6825df334def106f735ce7e0c1a2ea87bddffb0. ``` .../lib/vquic/curl_osslq.c:1095:30:
openssl-quic: fix BIO leak and Windows warning Caused by an accidentally duplicated line in d6825df334def106f735ce7e0c1a2ea87bddffb0. ``` .../lib/vquic/curl_osslq.c:1095:30: warning: implicit conversion loses integer precision: 'curl_socket_t' (aka 'unsigned long long') to 'int' [-Wshorten-64-to-32] 1095 | bio = BIO_new_dgram(ctx->q.sockfd, BIO_NOCLOSE); | ~~~~~~~~~~~~~ ~~~~~~~^~~~~~ 1 warning and 2 errors generated. ``` Reviewed-by: Stefan Eissing Closes #13043
show more ...
|
#
065faf2f |
| 04-Mar-2024 |
Viktor Szakats |
openssl-quic: fix unity build, casing, indentation - rename static functions to avoid duplicate symbols in unity mode. - windows -> Windows/window in error message and comment. - fix
openssl-quic: fix unity build, casing, indentation - rename static functions to avoid duplicate symbols in unity mode. - windows -> Windows/window in error message and comment. - fix indentation. Reviewed-by: Stefan Eissing Closes #13044
show more ...
|
#
2cd78f52 |
| 29-Feb-2024 |
RainRat |
misc: Fix typos in docs and lib This fixes miscellaneous typos and duplicated words in the docs, lib and test comments and a few user facing errorstrings. Author: RainRat on Git
misc: Fix typos in docs and lib This fixes miscellaneous typos and duplicated words in the docs, lib and test comments and a few user facing errorstrings. Author: RainRat on Github Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Dan Fandrich <dan@coneharvesters.com> Closes: #13019
show more ...
|
#
bdff974f |
| 13-Feb-2024 |
Stefan Eissing |
OpenSSL QUIC: adapt to v3.3.x - set our idle timeout as transport parameter - query negotiated idle timeout for connection alive checks - query number of available bidi streams on a
OpenSSL QUIC: adapt to v3.3.x - set our idle timeout as transport parameter - query negotiated idle timeout for connection alive checks - query number of available bidi streams on a connection - use write_ex2 with SSL_WRITE_FLAG_CONCLUDE to signal EOF on last chunk write, so stream close does not require an additional QUIC packet Closes #12933
show more ...
|
#
d6825df3 |
| 05-Feb-2024 |
Stefan Eissing |
openssl-quic: check on Windows that socket conv to int is possible Fixes #12861 Closes #12865
|
#
e17b89db |
| 23-Jan-2024 |
Daniel Stenberg |
osslq: remove the TLS library from the version output Since we only support using a single TLS library at any one time, we know that the TLS library for QUIC is the same that is also sho
osslq: remove the TLS library from the version output Since we only support using a single TLS library at any one time, we know that the TLS library for QUIC is the same that is also shown for regular TLS. Fixes #12763 Reported-by: Viktor Szakats Closes #12767
show more ...
|
#
0535f6ec |
| 18-Jan-2024 |
Stefan Eissing |
http3: initial support for OpenSSL 3.2 QUIC stack - HTTP/3 for curl using OpenSSL's own QUIC stack together with nghttp3 - configure with `--with-openssl-quic` to enable curl to
http3: initial support for OpenSSL 3.2 QUIC stack - HTTP/3 for curl using OpenSSL's own QUIC stack together with nghttp3 - configure with `--with-openssl-quic` to enable curl to build this. This requires the nghttp3 library - implementation with the following restrictions: * macOS has to use an unconnected UDP socket due to an issue in OpenSSL's datagram implementation See https://github.com/openssl/openssl/issues/23251 This makes connections to non-reponsive servers hang. * GET requests will send the indicator that they have no body in a separate QUIC packet. This may result in processing delays or Transfer-Encodings on proxied requests * uploads that encounter blocks will use 100% cpu as detection of these flow control issue is not working (we have not figured out to pry that from OpenSSL). Closes #12734
show more ...
|