]> git.kaiwu.me - haproxy.git/commit
MINOR: mux_quic/xprt_qstrm: simplify Rx buffer transfer
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 23 Apr 2026 13:36:08 +0000 (15:36 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 24 Apr 2026 07:33:04 +0000 (09:33 +0200)
commit64b7ef7971bbf0150859f681aaf6ba68c7c0b53c
treef4b3f6e50aab558de740fae59675a3ad6da956a8
parentb8e65423f3c9521158821cd13b269842a39ba0aa
MINOR: mux_quic/xprt_qstrm: simplify Rx buffer transfer

When xprt_qstrm layer is completed, MUX layer is started. Rx buffer from
the XPRT layer is transferred to the MUX so that it can handle any extra
data following the transport parameters first frame.

Since previous commit, QCC Rx buffer is dynamically allocated only when
needed. However, qmux_init() must still allocate it when there is data
to be transferred from the XPRT layer. As a result, code has been over
extended to continue to support this case.

This patch simplifies xprt_qstrm API for the Rx buffer transfer. Buffer
content and remaining record length can now be retrieved via the single
function xprt_qstrm_xfer_rxbuf(). If the buffer is empty, nothing is
performed and XPRT layer will release it. If not empty, MUX will take
ownership of the buffer from the XPRT layer.
include/haproxy/xprt_qstrm.h
src/mux_quic.c
src/xprt_qstrm.c