haproxy/include/types
Willy Tarreau e9dfa79a75 MAJOR: connection: rearrange the polling flags.
Polling flags were set for data and sock layer, but while this does make
sense for the ENA flag, it does not for the POL flag which translates the
detection of an EAGAIN condition. So now we remove the {DATA,SOCK}_POL*
flags and instead introduce two new layer-independant flags (WANT_RD and
WANT_WR). These flags are only set when an EAGAIN is encountered so that
polling can be enabled.

In order for these flags to have any meaning they are not persistent and
have to be cleared by the connection handler before calling the I/O and
data callbacks. For this reason, changes detection has been slightly
improved. Instead of comparing the WANT_* flags with CURR_*_POL, we only
check if the ENA status changes, or if the polling appears, since we don't
want to detect the useless poll to ena transition. Tests show that this
has eliminated one useless call to __fd_clr().

Finally the conn_set_polling() function which was becoming complex and
required complex operations from the caller was split in two and replaced
its two only callers (conn_update_data_polling and conn_update_sock_polling).
The two functions are now much smaller due to the less complex conditions.
Note that it would be possible to re-merge them and only pass a mask but
this does not appear much interesting.
2012-09-03 20:47:35 +02:00
..
acl.h MEDIUM: acl: support IPv6 address matching 2012-05-08 21:28:14 +02:00
arg.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
auth.h [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00
backend.h BUG/MAJOR: checks: don't call set_server_status_* when no LB algo is set 2012-05-19 19:09:46 +02:00
capture.h [MAJOR] last bunch of capture changes for mempool v2 2007-05-13 22:46:04 +02:00
channel.h CLEANUP: frontend: remove the old proxy protocol decoder 2012-09-03 20:47:35 +02:00
checks.h MINOR: checks: add on-marked-up option 2012-06-03 23:48:42 +02:00
connection.h MAJOR: connection: rearrange the polling flags. 2012-09-03 20:47:35 +02:00
counters.h [MINOR] stats: report the number of requests intercepted by the frontend 2011-09-10 23:32:41 +02:00
fd.h MINOR: fd: get rid of FD_WAIT_* 2012-09-02 21:53:12 +02:00
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
global.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
hdr_idx.h [BUG] files were missing for hdr_idx in previous commit 2006-12-04 02:20:02 +01:00
lb_chash.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.h [CLEANUP] proxy: move last lb-specific bits to their respective files 2009-10-03 18:41:18 +02:00
log.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
peers.h CLEANUP: connection: split sock_ops into data_ops, app_cp and si_ops 2012-09-03 20:47:31 +02:00
pipe.h [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
proto_http.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
proto_tcp.h [MINOR] session-counters: use "track-sc{1,2}" instead of "track-{fe,be}-counters" 2010-08-10 18:04:15 +02:00
protocols.h MEDIUM: proto_tcp: remove any dependence on stream_interface 2012-09-03 20:47:34 +02:00
proxy.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
queue.h [MAJOR] ported pendconn to mempools v2 2007-05-13 20:19:55 +02:00
sample.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
server.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
session.h MAJOR: session: introduce embryonic sessions 2012-09-03 20:47:35 +02:00
signal.h [MEDIUM] signals: add support for registering functions and tasks 2010-08-27 18:00:40 +02:00
stick_table.h [MEDIUM] IPv6 support for stick-tables 2011-03-29 01:09:14 +02:00
stream_interface.h MEDIUM: stream_interface: remove CAP_SPLTCP/CAP_SPLICE flags 2012-09-03 20:47:34 +02:00
task.h [MEDIUM] signals: add support for registering functions and tasks 2010-08-27 18:00:40 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00