haproxy/src
Willy Tarreau 98b306be65 [MEDIUM] splice: add hints to support older buggy kernels
Kernels before 2.6.27.13 would have splice() return EAGAIN on shutdown.
By adding a few tricks, we can deal with the situation. If splice()
returns EAGAIN and the pipe is empty, then fallback to recv() which
will be able to check if it's an end of connection or not.

The advantage of this method is that it remains transparent for good
kernels since there is no reason that epoll() will return EPOLLIN
without anything to read, and even if it would happen, the recv()
overhead on this check is minimal.
2009-01-25 11:11:32 +01:00
..
acl.c [MEDIUM] acl: when possible, report the name and requirements of ACLs in warnings 2008-08-03 09:41:05 +02:00
appsession.c [MEDIUM] memory: update pool_free2() to support NULL pointers 2008-08-03 20:48:50 +02:00
backend.c [OPTIM] buffer: replace rlim by max_len 2009-01-09 11:14:39 +01:00
base64.c [BUILD] change declaration of base64tab to fix build with Intel C++ 2008-06-29 17:17:38 +02:00
buffers.c [OPTIM] buffer: replace rlim by max_len 2009-01-09 11:14:39 +01:00
cfgparse.c [MEDIUM] splice: add configuration options and set global.maxpipes 2009-01-18 21:44:07 +01:00
checks.c [BUG] check timeout must not be changed if timeout.check is not set 2008-12-23 09:58:49 +01:00
client.c [OPTIM] buffer: replace rlim by max_len 2009-01-09 11:14:39 +01:00
cttproxy.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
dumpstats.c [MINOR] stats: indicate if a task is running in "show sess" 2008-12-08 00:16:21 +01:00
eb32tree.c [MINOR] merge ebtree version 3.0 2007-11-28 14:20:44 +01:00
eb64tree.c [MINOR] merge ebtree version 3.0 2007-11-28 14:20:44 +01:00
ebpttree.c [MINOR] merge ebtree version 3.0 2007-11-28 14:20:44 +01:00
ebtree.c [MINOR] merge ebtree version 3.0 2007-11-28 14:20:44 +01:00
ev_epoll.c [CLEANUP] remove 65 useless NULL checks before free 2008-08-03 20:48:50 +02:00
ev_kqueue.c [CLEANUP] remove 65 useless NULL checks before free 2008-08-03 20:48:50 +02:00
ev_poll.c [CLEANUP] remove 65 useless NULL checks before free 2008-08-03 20:48:50 +02:00
ev_select.c [CLEANUP] remove 65 useless NULL checks before free 2008-08-03 20:48:50 +02:00
ev_sepoll.c [OPTIM] ev_sepoll: detect newly created FDs and check them once 2008-11-02 10:19:07 +01:00
fd.c [MINOR] global.maxpipes: add the ability to reserve file descriptors for pipes 2009-01-18 20:39:42 +01:00
haproxy.c [BUG] reserve some pipes for backends with splice enabled 2009-01-25 10:42:05 +01:00
hdr_idx.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
log.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
memory.c [MEDIUM] Fix memory freeing at exit 2008-05-30 07:07:19 +02:00
proto_http.c [MINOR] redirect: in prefix mode a "/" means not to change the URI 2008-12-07 23:48:39 +01:00
proto_tcp.c [OPTIM] buffer: replace rlim by max_len 2009-01-09 11:14:39 +01:00
proto_uxst.c [MEDIUM] i/o: rework ->to_forward and ->send_max 2009-01-09 10:15:03 +01:00
protocols.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
proxy.c [BUG] ensure that listeners from disabled proxies are correctly unbound. 2008-12-07 23:33:25 +01:00
queue.c [BUG] do not dequeue the backend's pending connections on a dead server 2008-12-07 23:51:12 +01:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [CLEANUP] shut warnings 'is*' macros from ctype.h on solaris 2007-06-17 21:51:38 +02:00
server.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
session.c [MAJOR] complete support for linux 2.6 kernel splicing 2009-01-19 00:32:22 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
standard.c [MINOR] Allow to specify a domain for a cookie 2008-05-25 10:09:02 +02:00
stream_interface.c [MINOR] replace client_retnclose() with stream_int_retnclose() 2008-11-30 19:48:07 +01:00
stream_sock.c [MEDIUM] splice: add hints to support older buggy kernels 2009-01-25 11:11:32 +01:00
task.c [MEDIUM] indicate a reason for a task wakeup 2008-11-02 10:19:08 +01:00
time.c [MINOR] introduce now_ms, the current date in milliseconds 2008-06-29 13:47:25 +02:00
uri_auth.c [CLEANUP] remove 65 useless NULL checks before free 2008-08-03 20:48:50 +02:00