axum_server 0.8's Server builder exposes no tcp_nodelay method (verified in source: src/axum_server/server.rs:32-360). Plan A made TCP_NODELAY unconditional on the plaintext path; this slice extends parity to the TLS path via a custom Accept<TcpStream, S> impl that calls set_nodelay(true) BEFORE the inner RustlsAcceptor runs the TLS handshake. TLS does not undo the option (kernel persists it on the fd across the bytes the TLS layer writes); axum-server's own examples/rustls_session.rs documents this wrapping pattern for a different reason. serve_tls_with_nodelay is the production TLS serve path: axum_server::bind + NodeLayAcceptor + Handle::graceful_shutdown. main.rs switches to it when RUTSTER_TLS_CERT + RUTSTER_TLS_KEY are both set (Task 4). Hot-reload via RustlsConfig::reload_from_pem_file lands in Task 4's e2e reload test. Signed-off-by: Aaron D. Lee <himself@adlee.work>
63 KiB
63 KiB