haproxy/src
Willy Tarreau 96199b1016 MAJOR: stream-interface: restore splicing mechanism
The splicing is now provided by the data-layer rcv_pipe/snd_pipe functions
which in turn are called by the stream interface's recv and send callbacks.

The presence of the rcv_pipe/snd_pipe functions is used to attest support
for splicing at the data layer. It looks like the stream-interface's
SI_FL_CAP_SPLICE flag does not make sense anymore as it's used as a proxy
for the pointers above.

It also appears that we call chk_snd() from the recv callback and then
try to call it again in update_conn(). It is very likely that this last
function will progressively slip into the recv/send callbacks in order
to avoid duplicate check code.

The code works right now with and without splicing. Only raw_sock provides
support for it and it is automatically selected when the various splice
options are set. However it looks like splice-auto doesn't enable it, which
possibly means that the streamer detection code does not work anymore, or
that it's only called at a time where it's too late to enable splicing (in
process_session).
2012-09-03 20:47:31 +02:00
..
acl.c REORG/MAJOR: extract "struct buffer" from "struct channel" 2012-09-02 21:54:56 +02:00
appsession.c CLEANUP: remove a few warning about unchecked return values in debug code 2012-04-30 11:56:30 +02:00
arg.c BUG/MEDIUM: ensure that unresolved arguments are freed exactly once 2012-06-01 10:40:52 +02:00
auth.c CLEANUP: auth: make the code build again with DEBUG_AUTH 2012-05-10 23:25:35 +02:00
backend.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffers.c REORG/MAJOR: extract "struct buffer" from "struct channel" 2012-09-02 21:54:56 +02:00
cfgparse.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
checks.c MEDIUM: checks: don't use FD_WAIT_* anymore 2012-09-02 21:53:12 +02:00
connection.c MEDIUM: stream_interface: offer a generic function for connection updates 2012-09-02 21:54:18 +02:00
cttproxy.c [BUG] cttproxy: socket fd leakage in check_cttproxy_version 2010-05-09 21:19:08 +02:00
dumpstats.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
ev_epoll.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_kqueue.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_poll.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_select.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_sepoll.c MINOR: fd: get rid of FD_WAIT_* 2012-09-02 21:53:12 +02:00
fd.c MAJOR: fd: replace all EV_FD_* macros with new fd_*_* inline calls 2012-09-02 21:53:11 +02:00
freq_ctr.c [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
haproxy.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
hdr_idx.c OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
i386-linux-vsys.c OPTIM: i386: make use of kernel-mode-linux when available 2012-07-31 07:53:42 +02:00
lb_chash.c [MEDIUM] hash: add support for an 'avalanche' hash-type 2010-11-29 07:28:16 +01:00
lb_fas.c CLEANUP: lb_first: add reference to a paper describing the original idea 2012-04-07 09:08:45 +02:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
log.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
memory.c MEDIUM: memory: add the ability to poison memory at run time 2012-05-08 21:28:16 +02:00
peers.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
pipe.c BUILD/MINOR: silent a build warning in src/pipe.c (fcntl) 2011-10-24 17:09:22 +02:00
proto_http.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
proto_tcp.c MAJOR: stream-interface: restore splicing mechanism 2012-09-03 20:47:31 +02:00
proto_uxst.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
protocols.c MAJOR: make use of conn_{data|sock}_{poll|stop|want}* in connection handlers 2012-09-02 21:53:12 +02:00
proxy.c BUG/MINOR: fix option httplog validation with TCP frontends 2012-05-31 19:30:26 +02:00
queue.c BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
raw_sock.c MAJOR: stream-interface: restore splicing mechanism 2012-09-03 20:47:31 +02:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
sample.c REORG: rename "pattern" files 2012-05-08 20:57:21 +02:00
server.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
session.c MAJOR: stream-interface: restore splicing mechanism 2012-09-03 20:47:31 +02:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
signal.c [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
standard.c MINOR: standard: add an IPv6 parsing function (str62net) 2012-05-08 20:57:21 +02:00
stick_table.c REORG: rename "pattern" files 2012-05-08 20:57:21 +02:00
stream_interface.c MAJOR: stream-interface: restore splicing mechanism 2012-09-03 20:47:31 +02:00
task.c [OPTIM] task: don't scan the run queue if we know it's empty 2011-09-10 20:08:49 +02:00
time.c MINOR: Date and time fonctions that don't use snprintf 2012-02-09 17:03:28 +01:00
trace.c MINOR: add a new function call tracer for debugging purposes 2012-05-26 00:12:37 +02:00
uri_auth.c [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00