curl/tests/http
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
..
testenv FTP: fix TLS session reuse on the data connection 2026-07-02 17:39:04 +02:00
.gitignore tidy-up: mostly whitespace nits 2023-08-31 23:02:10 +00:00
CMakeLists.txt HTTP/3: add proxy CONNECT and MASQUE CONNECT-UDP support (ngtcp2 QUIC) 2026-05-27 08:49:53 +02:00
config.ini.in HTTP/3: add proxy CONNECT and MASQUE CONNECT-UDP support (ngtcp2 QUIC) 2026-05-27 08:49:53 +02:00
conftest.py FTP: fix TLS session reuse on the data connection 2026-07-02 17:39:04 +02:00
Makefile.am autotools: minor fixes and improvements 2026-06-25 11:32:36 +02:00
requirements.txt GHA: bump pip cryptography from 46.0.7 to 48.0.1 2026-06-16 22:18:43 +02:00
scorecard.py scorecard: add support for http: testing 2026-05-31 16:58:11 +02:00
test_01_basic.py tests: alphabetize and group Python imports & add check 2026-04-08 10:28:05 -07:00
test_02_download.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_03_goaway.py tests: alphabetize and group Python imports & add check 2026-04-08 10:28:05 -07:00
test_04_stuttered.py tests: alphabetize and group Python imports & add check 2026-04-08 10:28:05 -07:00
test_05_errors.py tidy-up: miscellaneous 2026-06-09 11:07:55 +02:00
test_06_eyeballs.py ngtcp2: share common functionality 2026-06-10 13:28:05 +02:00
test_07_upload.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_08_caddy.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_09_push.py tidy-up: add space around operators, where missing 2026-05-28 10:12:00 +02:00
test_10_proxy.py cf-https-connect: do not engage on proxy origin 2026-06-15 22:32:15 +02:00
test_11_unix.py unix-sockets: ignore proxy settings 2026-05-16 18:49:46 +02:00
test_12_reuse.py tests: pin connection reuse rules for partial, host, and credentials 2026-06-30 09:57:00 +02:00
test_13_proxy_auth.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_14_auth.py tidy-up: miscellaneous 2026-06-01 22:33:57 +02:00
test_15_tracing.py tests: alphabetize and group Python imports & add check 2026-04-08 10:28:05 -07:00
test_16_info.py tidy-up: add space around operators, where missing 2026-05-28 10:12:00 +02:00
test_17_ssl_use.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_18_methods.py tidy-up: add space around operators, where missing 2026-05-28 10:12:00 +02:00
test_19_shutdown.py tidy-up: add space around operators, where missing 2026-05-28 10:12:00 +02:00
test_20_websockets.py pytest: fix remaining code checker warnings 2026-06-09 12:30:16 +02:00
test_21_resolve.py pythonlint.sh: make it fail on error, fix ruff warnings in pytest 2026-05-13 22:59:36 +02:00
test_22_httpsrr.py pythonlint.sh: make it fail on error, fix ruff warnings in pytest 2026-05-13 22:59:36 +02:00
test_30_vsftpd.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_31_vsftpds.py FTP: fix TLS session reuse on the data connection 2026-07-02 17:39:04 +02:00
test_32_ftps_vsftpd.py FTP: fix TLS session reuse on the data connection 2026-07-02 17:39:04 +02:00
test_40_socks.py lib: transfer origin and proxy handling 2026-06-12 23:52:00 +02:00
test_50_scp.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_51_sftp.py pytest: close file handles after use, and two minor tidy-ups 2026-06-09 02:05:21 +02:00
test_60_h3_proxy.py tidy-up: miscellaneous 2026-06-01 22:33:57 +02:00