haproxy/include/proto
Willy Tarreau 3eba98aa57 [MEDIUM] splice: make use of pipe pools
Using pipe pools makes pipe management a lot easier. It also allows to
remove quite a bunch of #ifdefs in areas which depended on the presence
or not of support for kernel splicing.

The buffer now holds a pointer to a pipe structure which is always NULL
except if there are still data in the pipe. When it needs to use that
pipe, it dynamically allocates it from the pipe pool. When the data is
consumed, the pipe is immediately released.

That way, there is no need anymore to care about pipe closure upon
session termination, nor about pipe creation when trying to use
splice().

Another immediate advantage of this method is that it considerably
reduces the number of pipes needed to use splice(). Tests have shown
that even with 0.2 pipe per connection, almost all sessions can use
splice(), because the same pipe may be used by several consecutive
calls to splice().
2009-01-25 13:56:13 +01:00
..
acl.h [MEDIUM] acl: when possible, report the name and requirements of ACLs in warnings 2008-08-03 09:41:05 +02:00
backend.h [MAJOR] migrate the connection logic to stream interface 2008-11-02 10:19:10 +01:00
buffers.h [MEDIUM] splice: make use of pipe pools 2009-01-25 13:56:13 +01:00
checks.h [MEDIUM] Spread health checks even more 2007-10-15 09:33:10 +02:00
client.h [CLEANUP] remove unused include/types/client.h 2008-07-16 10:30:40 +02:00
cttproxy.h [MEDIUM] check for cttproxy support when required 2007-03-24 17:24:39 +01:00
dumpstats.h [MEDIUM] add support for "show sess" in unix stats socket 2008-12-07 22:41:17 +01:00
fd.h [MEDIUM] Fix memory freeing at exit 2008-05-30 07:07:19 +02:00
hdr_idx.h [MAJOR] huge rework of the HTTP request FSM 2007-01-21 19:16:41 +01:00
httperr.h [MEDIUM] errorloc now checked first from backend then from frontend 2006-12-24 17:47:20 +01:00
log.h [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
pipe.h [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
proto_http.h [MEDIUM] reference the current hijack function in the buffer itself 2008-12-07 18:03:29 +01:00
proto_tcp.h [MEDIUM] extract TCP request processing from HTTP 2008-11-30 23:15:34 +01:00
proto_uxst.h [MAJOR] make unix sockets work again with stats 2008-12-07 16:06:43 +01:00
protocols.h [MINOR] add a generic unbind_all_listeners() primitive 2007-11-04 22:42:49 +01:00
proxy.h [BUG] ensure that listeners from disabled proxies are correctly unbound. 2008-12-07 23:33:25 +01:00
queue.h [BUG] do not dequeue the backend's pending connections on a dead server 2008-12-07 23:51:12 +01:00
server.h [MEDIUM]: rework checks handling 2008-01-22 11:29:06 +01:00
session.h [MINOR] declare process_session in session.h, not proto_http.h 2008-12-01 01:35:40 +01:00
stream_interface.h [MINOR] replace client_retnclose() with stream_int_retnclose() 2008-11-30 19:48:07 +01:00
stream_sock.h [MEDIUM] enable inter-stream_interface wakeup calls 2008-12-28 11:09:02 +01:00
task.h [MEDIUM] indicate a reason for a task wakeup 2008-11-02 10:19:08 +01:00
template.h