BUG/MINOR: quic: wake up MUX on probing only for 01RTT
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 20 Mar 2023 17:29:36 +0000 (18:29 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 21 Mar 2023 13:09:50 +0000 (14:09 +0100)
commit2a19b6e564513db52a7f4524a6545a0ca815afe9
tree7cdee4a3dc82064fe322e32ac896b5149ea4644b
parent465a6c850629bd1fbbecb028af631ff81bd09e11
BUG/MINOR: quic: wake up MUX on probing only for 01RTT

On PTO probe timeout expiration, a probe packet must be emitted.
quic_pto_pktns() is used to determine for which packet space the timer
has expired. However, if MUX is already subscribed for sending, it is
woken up without checking first if this happened for the 01RTT packet
space.

It is unsure that this is really a bug as in most cases, MUX is
established only after Initial and Handshake packet spaces are removed.
However, the situation is not se clear when 0-RTT is used. For this
reason, adjust the code to explicitely check for the 01RTT packet space
before waking up the MUX layer.

This should be backported up to 2.6. Note that qc_notify_send() does not
exists in 2.6 so it should be replaced by the explicit block checking
(qc->subs && qc->subs->events & SUB_RETRY_SEND).
src/quic_conn.c