BUG/MINOR mux-quic: apply correctly timeout on output pending data master github/haproxy-3.0
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 8 Jul 2025 08:30:46 +0000 (10:30 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 17 Oct 2025 09:31:30 +0000 (11:31 +0200)
commit565f987e85011754ebb73da3b1d6e36d6e5cafac
tree49d8c06334a0b45b3ab7259f54e712af5d81eeac
parent2b2499ce6f8c3efb7778020b1237f4ccbeb56a63
BUG/MINOR mux-quic: apply correctly timeout on output pending data

When no stream is attached, mux layer is responsible to maintain a
timeout. The first criteria is to apply client/server timeout if there
is still data waiting for emission.

Previously, <hreq> qcc member was used to determine this state. However,
this only covers bidirectional streams. Fix this by testing if
<send_list> is empty or not. This is enough to take into account both
bidi and uni streams.

Theorically, this should be backported to every stable versions.
However, send-list is not available on 2.6 and there is no alternative
to quickly determine if there is waiting output data. Thus, it's better
to backport it up to 2.8 only.

(cherry picked from commit c5bcc3a21ef371b81099cc0c6a4a27ae34d7726b)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
(cherry picked from commit 5806cae870c0a942ab5d0a54fb2db4cb2b70ae5f)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 5f0ff9fd3e469d0a9f08ba05966aee96c1f3009c)
[ad: non existing qcc.tx.frms member in 3.0- (introduced with pacing)]
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
src/mux_quic.c