mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-01 22:48:25 +00:00
haproxy public development tree
In fact there is already flags on the SE to state a shutdown for reads or writes was performed. But for applets, this notion does not exist. Both flags are set in same time when the applet is released. But at the SC level, there are functions to perform a shutdown (formely the shutw) and an abort (formely the shutr). For applets, when a shutdown is performed on the SC, if the applet is not immediately released, nothing is acknowledge at the SE level. With old way to implement applets, this was not an real issue until recently because applets accessed to the channel/SC flags. It was thus possible to catch the shutdowns. But the "wait" command on the CLI reveals the flaw. Indeed, when this command is executed, nothing is read or sent. So, it is not possible to detect the shutdowns. As a workaround, a dedicated test on the SC flags was added at the end of the wait command I/O handler. But it is pretty ugly. With new way to implement applets, there is no longer access to the channel or SC. So we must add a way to acknowledge shutdown into the SE. This patch solves the both sides of the issue. The shutw notion is added for applets. Its only purpose is to set SE_FL_SHWN flags. This flag is tested by all applets, so, it solves the issue quite simply. Note that it is described as a bug fix but there is no real issue, just a design flaw. However, if the "wait" command is backported, this patch must be backported too. Unfortinately it will require an adaptation because there is no appctx flags on older versions. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
BRANCHES | ||
BSDmakefile | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
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)