3proxy/tests/cases
Vladimir Dubrovin d0e88a7b88 Optional kernel TLS with OpenSSL (ssl_ktls)
ssl_ktls asks OpenSSL to hand TLS to the kernel (SSL_OP_ENABLE_KTLS)
on the connections of the services which follow, both to clients and
to servers; ssl_noktls, the default, keeps it in 3proxy. Where the
library, the kernel and the cipher allow it, the kernel then encrypts
and decrypts, and SSL_read/SSL_write go on working over it. What a
service got is logged on its first TLS connection.

Reading ahead is left off where the kernel took receiving, which reads
a record at a time. A build whose library has no kernel TLS (wolfSSL,
OpenSSL before 3.0 or without it) warns and ignores the command.
splice() is not used for TLS services yet.

Tested on AlmaLinux 10 (OpenSSL 3.5.8, tls module): both directions
of both legs of a TLS chain in the kernel, the suite passing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:29:21 +03:00
..
admin.py Tests: wait for the reload requested in the admin case 2026-10-11 10:26:02 +03:00
auto.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
counters.py Keep the values of numbered traffic counters across reloads 2026-10-13 19:05:59 +03:00
dnspr.py Fix dnspr for Windows 2026-08-26 16:28:27 +03:00
httpsrv_auth.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_files.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_keepalive.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_ops.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_parsing.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_proxypass.py support proxypass in web server 2026-08-27 17:57:51 +03:00
httpsrv_rules.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
ipv6.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
ktls.py Optional kernel TLS with OpenSSL (ssl_ktls) 2026-10-14 17:29:21 +03:00
maxconn.py Change waiting loops to semaphores for child counters 2026-10-10 23:10:57 +03:00
parent_failover.py parent: support fraction and % syntaxis for weight; support fallbacks with 0 weight 2026-09-16 20:04:10 +03:00
parent_ports.py Take another local port when the one bound cannot reach the destination 2026-09-17 13:02:56 +03:00
parent_weights.py parent: support fraction and % syntaxis for weight; support fallbacks with 0 weight 2026-09-16 20:04:10 +03:00
pcre.py Fix rewrite and over-long header handling on Windows 2026-08-29 20:21:29 +03:00
portmap.py tests: run the half-close case on Windows again 2026-10-13 12:57:50 +03:00
proxy_http.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
socks.py Fix: invalid hostname ACL handling in UDPASSOC 2026-10-01 16:57:36 +03:00
ssl.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
timeouts.py per-service timeouts 2026-10-13 15:12:05 +03:00
tlspr.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
transparent.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00