MEDIUM: quic: strengthen MUX send notification
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 30 Sep 2024 12:39:15 +0000 (14:39 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 1 Oct 2024 14:19:25 +0000 (16:19 +0200)
commitd7f4e5abf0b7129329d0ea716c104474fd934bc6
treea859254dbb7ab69812dd193b800203523ab39b56
parent6ad99af0a9e857c6cd47a81866a10de83bfa0dea
MEDIUM: quic: strengthen MUX send notification

Previous commit implement a refactor of MUX send notification from
quic_conn layer. With this new architecture, a proper callback is
defined for each qc_stream_desc instance.

This architecture change allows to simplify notification from quic_conn
layer. First, ensure the MUX callback to properly ignore retransmission
of an already emitted frame. Luckily, this can be handled easily by
comparing offsets and FIN status. Also, each QCS instance can now be
unregistered from send notification just prior qc_stream_desc releasing.
This ensures a QCS is never manipulated from quic_conn after its
emission ending. Both these changes render the send notification more
robust. As a nice effect, flag QUIC_FL_CONN_TX_MUX_CONTEXT can be
removed as it is now unneeded.
include/haproxy/quic_conn-t.h
src/mux_quic.c
src/quic_stream.c
src/quic_tx.c