Expand description
Per-connection driving: accept request streams, authenticate them, dispatch them.
A connection owns the things every tunnel on it shares: the credentials and
destination policy each request is checked against, the QUIC connection its
UDP sessions send datagrams on, and the tunnel quota they all draw on. All of
it lives in crate::tunnel::Context, built once and held in an Arc that
every request on the connection shares rather than copies. Inbound datagrams
are not among them: they are routed by the HTTP/3 connection, to the request
stream each one names (D79).
The accept loop is also where graceful shutdown is observed: see
handle for the GOAWAY and drain sequence.
Functionsยง
- handle
- Drives one QUIC connection until the peer stops sending requests.