pub struct ConnectionH1<Front: SocketHandler> {
pub position: Position,
pub readiness: Readiness,
pub requests: usize,
pub socket: Front,
pub stream: Option<usize>,
pub timeout_container: TimeoutContainer,
pub parked_on_buffer_pressure: bool,
pub close_notify_sent: bool,
pub session_ulid: Ulid,
}Expand description
HTTP/1.1 connection handler within the mux layer.
Manages a single HTTP/1.1 connection (either frontend or backend), handling request/response forwarding through kawa buffers. Supports keep-alive, chunked transfer encoding, close-delimited responses, and upgrade (e.g., WebSocket).
Fields§
§position: Position§readiness: Readiness§requests: usize§socket: Front§stream: Option<usize>Active stream index, or None when the connection has no assigned stream
(initial client state before start_stream, or after end_stream detaches).
timeout_container: TimeoutContainer§parked_on_buffer_pressure: boolSet when readable exits early because the kawa buffer was full.
Edge-triggered epoll will not re-fire READABLE for data already in the
kernel socket buffer, so the cross-readiness mechanism must re-arm it
via try_resume_reading once the peer drains the buffer.
close_notify_sent: boolTrue once we’ve asked rustls to emit TLS close_notify for this frontend.
session_ulid: UlidConnection/session ULID propagated from the parent [Mux]. Used to
stamp the session slot of the [session req cluster backend] log
prefix emitted by the local log_context! macro.