]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: mux-quic: retry after small buf alloc failure
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 29 Jul 2024 15:01:38 +0000 (17:01 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 20 Aug 2024 16:12:27 +0000 (18:12 +0200)
commit0d6112b40b20f9eea0cf38dc304bc1155b673588
tree55aaef510ef74a59c8d7ab4d0b2950adf9a73cae
parentb355e89bf9cfc0c0ae4fffdc033bb59ea75a37c0
MINOR: mux-quic: retry after small buf alloc failure

Previous commit switch to small buffers for HTTP/3 HEADERS emission.
This ensures that several parallel streams can allocate their own buffer
without hitting the connection buffer limit based now on the congestion
window size.

However, this prevents the transmission of responses with uncommonly
large headers. Indeed, if all headers cannot be encoded in a single
buffer, an error is reported which cause the whole connection closure.

Adjust this by implementing a realloc API exposed by QUIC MUX. This
allows application layer to switch from a small to a default buffer and
restart its processing. This guarantees that again headers not longer
than bufsize can be properly transferred.
include/haproxy/mux_quic.h
include/haproxy/quic_stream.h
src/h3.c
src/mux_quic.c
src/quic_stream.c