mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-02-09 11:21:20 +01:00
When building STREAM frames in a packet buffer, if a frame is too large it will be splitted in two. A shorten version will be used and the original frame will be modified to represent the remaining space. To ensure there is enough space to store the frame data length encoded as a QUIC integer, we use the function max_available_room(). This function can return 0 if there not only a small space left which is insufficient for the frame header and the shorten data. Prior to this patch, this wasn't check and an empty unneeded STREAM frame was built and sent for nothing. Change this by checking the value return by max_available_room(). If 0, do not try to split this frame and continue to the next ones in the packet. On 2.6, this patch serves as an optimization which will prevent the building of unneeded empty STREAM frames. On 2.7, this behavior has the side-effect of triggering a BUG_ON() statement on quic_build_stream_frame(). This BUG_ON() ensures that we do not use quic_frame with OFF bit set if its offset is 0. This can happens if the condition defined above is reproduced for a STREAM frame at offset 0. An empty unneeded frame is built as descibed. The problem is that the original frame is modified with its OFF bit set even if the offset is still 0. This must be backported up to 2.6.
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
Languages
C
98.1%
Shell
0.9%
Makefile
0.5%
Lua
0.2%
Python
0.1%