curl/lib/vtls
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
..
bearssl.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
bearssl.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
cipher_suite.c sectransp: use common code for cipher suite lookup 2024-05-29 13:08:14 +02:00
cipher_suite.h sectransp: use common code for cipher suite lookup 2024-05-29 13:08:14 +02:00
gtls.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
gtls.h connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
hostcheck.c gskit: remove 2023-08-07 20:57:48 +02:00
hostcheck.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
keylog.c tls: use shared init code for TCP+QUIC 2024-04-09 09:08:05 +02:00
keylog.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
mbedtls_threadlock.c mbedtls: properly cleanup the thread-shared entropy 2024-03-12 03:09:37 -04:00
mbedtls_threadlock.h tidy-up: one comment and EOF newlines 2024-03-12 15:38:44 +00:00
mbedtls.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
mbedtls.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
openssl.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
openssl.h openssl: stop duplicate ssl key logging for legacy OpenSSL 2024-05-24 15:22:53 -04:00
rustls.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
rustls.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
schannel_int.h windows: fix UWP builds, add GHA job 2024-06-05 00:52:24 +02:00
schannel_verify.c windows: fix UWP builds, add GHA job 2024-06-05 00:52:24 +02:00
schannel.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
schannel.h build: do not publish HAVE_BORINGSSL, HAVE_AWSLC macros 2023-10-08 22:29:45 +00:00
sectransp.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
sectransp.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
vtls_int.h connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
vtls.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
vtls.h connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
wolfssl.c connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
wolfssl.h wolfssl: support CA caching 2024-06-01 23:50:36 +02:00
x509asn1.c lib/v*: tidy up types and casts 2024-06-02 19:27:17 +02:00
x509asn1.h gskit: remove 2023-08-07 20:57:48 +02:00