]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: quic: do not emit probe data if CONNECTION_CLOSE requested
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 12 Aug 2025 09:30:03 +0000 (11:30 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 22 Aug 2025 16:06:43 +0000 (18:06 +0200)
commit0376e66112f17d79cfd1824ae75d7288eb383059
tree2ada291a1bbf9f9a3747e6204624ca421dc69546
parentfc3ad50788ed5e5751650ff16976a25c21b38595
BUG/MINOR: quic: do not emit probe data if CONNECTION_CLOSE requested

If connection closing is activated, qc_prep_pkts() can only built a
datagram with a single packet. This is because we consider that only a
single CONNECTION_CLOSE frame is relevant at this stage.

This is handled both by qc_prep_pkts() which ensure that only a single
packet datagram is built and also qc_do_build_pkt() which prevents the
invokation of qc_build_frms() if <cc> is set.

However, there is an incoherency for probing. First, qc_prep_pkts()
deactivates it if connection closing is requested. But qc_do_build_pkt()
may still emit probing frame as it does not check its <probe> argument
but rather <pto_probe> QEL field directly. This can results in a packet
mixing a PING and a CONNECTION close frames, which is useless.

Fix this by adjusting qc_do_build_pkt() : closing argument is also
checked on PING probing emission. Note that there is still shaky code
here as qc_do_build_pkt() should rely only on <probe> argument to ensure
this.

This should be backported up to 2.6.
src/quic_tx.c