mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-14 15:34:35 +00:00
haproxy public development tree
2eb5243e7f
When a message is sent, we can switch it state to MSG_DONE if all the announced payload was processed. This way, if the EOM flag is not set on the message when the last expected data block is processed, the message can still be set to MSG_DONE state. This bug is related to the previous ones. There is a design issue with the HTX since the 2.4. When the EOM HTX block was replaced by a flag, I tried hard to be sure the flag is always set with the last HTX block on a message. It works pretty well for all messages received from a client or a server. But for internal messages, it is not so simple. Because applets cannot always properly handle the end of messages. So, there are some cases where the EOM flag is set on an empty message. As a workaround, for chunked messages, we can add an EOT HTX block. It does the trick. But for messages with a content-length, there is no empty DATA block. Thus, the only way to be sure the end of the message was reached in this case is to detect it in the H1 multiplexr. We already count the amount of data processed when the payload length is announced. Thus, we must only switch the message in DONE state when last bytes of the payload are received. Or when the EOM flag is received of course. This patch must be backported as far as 2.4. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
BRANCHES | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
ROADMAP | ||
SUBVERS | ||
VERDATE | ||
VERSION |
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)