MINOR: mux-quic: refactor wait-for-handshake support
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 29 Nov 2024 15:18:12 +0000 (16:18 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 6 Jan 2025 10:21:36 +0000 (11:21 +0100)
commitac30691da333d5a91305f219d81a65dc7d278f2d
tree9a3b8ec90419f92ce1dbff717ce55c3e04207e61
parent7ed9bed4b7c1007e6a154326059c07fb8861a2d6
MINOR: mux-quic: refactor wait-for-handshake support

This commit refactors wait-for-handshake support from QUIC MUX. The flag
logic QC_CF_WAIT_HS is inverted : it is now positionned only if MUX is
instantiated before handshake completion. When the handshake is
completed, the flag is removed.

The flag is now set directly on initialization via qmux_init(). Removal
via qcc_wait_for_hs() is moved from qcc_io_process() to qcc_io_recv().
This is deemed more logical as QUIC MUX is scheduled on RECV to be
notify by the transport layer about handshake termination. Moreover,
qcc_wait_for_hs() is now called if recv subscription is still active.

This commit is the first of a serie which aims to refactor QUIC MUX I/O
handler and improves its overall performance. The ultimate objective is
to be able to stream qcc_io_cb() by removing pacing specific code path
via qcc_purge_sending().

This should be backported up to 3.1.

(cherry picked from commit 0a53a008d032b69377869c8caaec38f81bdd5bd6)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
include/haproxy/mux_quic-t.h
src/mux_quic.c