]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: h3: do not wait a complete frame for demuxing
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 12 May 2022 14:56:16 +0000 (16:56 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 18 May 2022 13:31:46 +0000 (15:31 +0200)
commitb5454d42df6ef76e72a1f96db107d2bf74c92c29
tree3e14d4e7f00c7e5c9d304ded2d0a33ad3c26b27d
parent03dcf560aea8ae77d1e9458cbfd9fd309426b43e
MINOR: h3: do not wait a complete frame for demuxing

Previously, H3 demuxer refused to proceed the payload if the frame was
not entirely received and the QCS buffer is not full. This code was
duplicated from the H2 demuxer.

In H2, this is a justified optimization as only one frame at a time can
be demuxed. However, this is not the case in H3 with interleaved frames
in the lower layer QUIC STREAM frames.

This condition is now removed. H3 demuxer will proceed payload as soon
as possible. An exception is kept for HEADERS frame as the code is not
able to deal with partial HEADERS.

With this change, H3 demuxer should consume less memory. To ensure that
we never received a HEADER bigger than the RX buffer, we should use the
H3 SETTINGS_MAX_FIELD_SECTION_SIZE.
src/h3.c