]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: connection: add definitions for dual polling mechanisms
authorWilly Tarreau <wtarreau@exceliance.fr>
Fri, 17 Aug 2012 09:55:04 +0000 (11:55 +0200)
committerWilly Tarreau <w@1wt.eu>
Sun, 2 Sep 2012 19:53:11 +0000 (21:53 +0200)
commitb5e2cbdcc8af943c19fa5d436a651a4897c78897
tree3fd336128e87083ff1a8f900d773e6f7d3e2edc5
parentbabd05a6c6d3a9f835b0f978c7f159d06338eb58
MEDIUM: connection: add definitions for dual polling mechanisms

The conflicts we're facing with polling is that handshake handlers have
precedence over data handlers and may change the polling requirements
regardless of what is expected by the data layer. This causes issues
such as missed events.

The real need is to have three polling levels :
  - the "current" one, which is effective at any moment
  - the data one, which reflects what the data layer asks for
  - the sock one, which reflects what the socket layer asks for

Depending on whether a handshake is in progress or not, either one of the
last two will replace the current one, and the change will be propagated
to the lower layers.

At the moment, the shutdown status is not considered, and only handshakes
are used to decide which layer to chose. This will probably change.
include/proto/connection.h
include/types/connection.h
src/connection.c