BUG/MINOR: quic: Do not ignore coalesced packets in qc_prep_fast_retrans()
authorFrédéric Lécaille <flecaille@haproxy.com>
Tue, 31 Jan 2023 09:10:06 +0000 (10:10 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 3 Feb 2023 16:55:55 +0000 (17:55 +0100)
commit055e82657ed10017017d4d9f0d6b2bfe96bc0a07
treef1cf5b7fcf168a91d0a3f8f5d4e8357800b05704
parent6dead91b8a10c7068d44b8a81ce5efaead5699dd
BUG/MINOR: quic: Do not ignore coalesced packets in qc_prep_fast_retrans()

This function is called only when probing only one packet number space
(Handshake) or two times the same one (Application). So, there is no risk
to prepare two times the same frame when uneeded because we wanted to
probe two packet number spaces. The condition "ignore the packets which
has been coalesced to another one" is not necessary. More importantly
the bug is when we want to prepare a Application packet which has
been coalesced to an Handshake packet. This is always the case when
the first Application packet is sent. It is always coalesced to
an Handshake packet with an ACK frame. So, when lost, this first
application packet was never resent. It contains the HANDSHAKE_DONE
frame to confirm the completion of the handshake to the client.

Must be backported to 2.6 and 2.7.
src/quic_conn.c