curl/lib/vquic
Stefan Eissing c31041b17e
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
2024-06-10 13:08:12 +02:00
..
curl_msh3.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
curl_msh3.h quic: rename vquic implementations, fix for quiche build. 2023-01-05 23:39:49 +01:00
curl_ngtcp2.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
curl_ngtcp2.h ngtcp2: adjust config and code checks for ngtcp2 without nghttp3 2023-03-23 15:39:13 +01:00
curl_osslq.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
curl_osslq.h http3: initial support for OpenSSL 3.2 QUIC stack 2024-01-22 16:15:45 +01:00
curl_quiche.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
curl_quiche.h quic: rename vquic implementations, fix for quiche build. 2023-01-05 23:39:49 +01:00
vquic_int.h lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
vquic-tls.c gnutls: support CA caching 2024-06-04 08:17:55 +02:00
vquic-tls.h wolfssl: support CA caching 2024-06-01 23:50:36 +02:00
vquic.c lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
vquic.h lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00