mirror of
https://github.com/3proxy/3proxy.git
synced 2026-10-16 08:35:48 +08:00
A service with ssl_ktls keeps its splice() mode. A connection whose TLS sockets all got kernel TLS both ways may splice, as a plain one does when no data filters apply; one where the kernel did not take TLS (nosplice) copies as before. TLS may hold data for a socket that a splice() from it would not see: OpenSSL reads more from a kernel TLS socket than it is asked for. sockmap asks the TLS code (splicetls) and reads that through TLS into the buffer first, once the pipe has drained, so the order is kept, then splices on. A read from a TLS socket counts as large at 4K, TLS handing out a record at a time, and the short read collecting what TLS left from the last one does not end a run of large ones. A splice() refused because a record is not data (an alert, a key update, a ticket) falls back to reading it through TLS instead of ending the connection. The kernel TLS test compares the bodies with the origin's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| admin.py | ||
| auto.py | ||
| counters.py | ||
| dnspr.py | ||
| httpsrv_auth.py | ||
| httpsrv_files.py | ||
| httpsrv_keepalive.py | ||
| httpsrv_ops.py | ||
| httpsrv_parsing.py | ||
| httpsrv_proxypass.py | ||
| httpsrv_rules.py | ||
| ipv6.py | ||
| ktls.py | ||
| maxconn.py | ||
| parent_failover.py | ||
| parent_ports.py | ||
| parent_weights.py | ||
| pcre.py | ||
| portmap.py | ||
| proxy_http.py | ||
| socks.py | ||
| ssl.py | ||
| timeouts.py | ||
| tlspr.py | ||
| transparent.py | ||