curl/lib/vquic
Stefan Eissing 84ecfb3ecc
FTP: fix TLS session reuse on the data connection
FTP servers using SSL can be configured to check TLS session reuse on
the DATA connection. They hand out a new session on every CONTROL
connect and require to see the client using exactly that one when
up-/downloading on DATA.

This means:

1. We have to configure the SSL filter on the DATA connection with
   exactly the same peers.

2. We have to remember the SSL session on the CONTROL connection -
   separately from the session cache. The SSL filter on the DATA
   connection then looks for a session at the CONTROL filter and, if
   present, uses that.

Tests:

Enable `require_ssl_reuse` in our pytest setup for vsftpd. This
reproduces the problem reported in #22225 and verifies the fix.

Skip ftp+SSL pytests for rustls, as we have no possibility to reuse
sessions in that backend.

Schannel: we do not run these tests with the backend. I expect it has
similar problems but am not able to verify.

Reported-by: Laurent Sabourin
Fixes #22225
Closes #22246
2026-07-02 17:39:04 +02:00
..
capsule.c cf-capsule: complete filter 2026-06-15 15:42:22 +02:00
capsule.h cf-capsule: complete filter 2026-06-15 15:42:22 +02:00
cf-capsule.c cf-capsule: complete filter 2026-06-15 15:42:22 +02:00
cf-capsule.h cf-capsule: complete filter 2026-06-15 15:42:22 +02:00
cf-ngtcp2-cmn.c FTP: fix TLS session reuse on the data connection 2026-07-02 17:39:04 +02:00
cf-ngtcp2-cmn.h ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
cf-ngtcp2-proxy.c tidy-up: miscellaneous 2026-06-14 20:10:28 +02:00
cf-ngtcp2-proxy.h ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
cf-ngtcp2.c build: enable -Wformat-signedness, fix issues found 2026-06-10 15:14:08 +02:00
cf-ngtcp2.h ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
cf-quiche.c cf-dns: pass peer for result lookups 2026-06-16 23:15:43 +02:00
cf-quiche.h ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
vquic-tls.c ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
vquic-tls.h ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
vquic.c vquic: fix -Wunused-parameter with proxies disabled 2026-06-19 14:46:54 +02:00
vquic.h ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
vquic_int.h cf-capsule: complete filter 2026-06-15 15:42:22 +02:00