haproxy/src
Willy Tarreau d81ca04051 OPTIM: session: set the READ_DONTWAIT flag when connecting
As soon as we connect to the server, we want to limit the number of
recvfrom() on the response path because most of the time a single
call will retrieve enough information.

At the moment this is only done in the HTTP response parser, after
some reads have already failed, which is too late. We need to do
that at the earliest possible instant. It was already done for the
request side by frontend_accept() for the first request, and by
http_reset_txn() for the next requests.

Thanks to this change, there are no more failed recvfrom() calls in
keep-alive mode.
2013-12-31 22:39:26 +01:00
..
acl.c BUG/MINOR: acl: parser must also stop at comma on ACL-only keywords 2013-12-16 22:01:06 +01:00
appsession.c BUILD: definitely silence some stupid GCC warnings 2013-12-13 15:21:36 +01:00
arg.c MINOR: arg: improve wording on error reporting 2013-12-13 00:38:47 +01:00
auth.c MINOR: acl/pattern: use types different from int to clarify who does what. 2013-12-02 23:31:33 +01:00
backend.c MINOR: http: try to stick to same server after status 401/407 2013-12-23 15:12:44 +01:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c MINOR: buffer: align the last output line if there are less than 8 characters left 2013-11-21 08:07:04 +01:00
cfgparse.c MINOR: http: add option prefer-last-server 2013-12-16 02:23:54 +01:00
channel.c MAJOR: channel: add a new flag CF_WAKE_WRITE to notify the task of writes 2013-12-31 18:37:36 +01:00
checks.c BUG/MEDIUM: checks: unchecked servers could not be enabled anymore 2013-12-28 21:33:36 +01:00
chunk.c MINOR: chunks: always initialize the output chunk in get_trash_chunk() 2013-12-14 16:02:18 +01:00
compression.c MEDIUM: sample: systematically pass the keyword pointer to the keyword 2013-08-01 21:17:13 +02:00
connection.c MEDIUM: connection: merge the send_proxy and local_send_proxy calls 2013-12-09 15:40:23 +01:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c MAJOR: channel: add a new flag CF_WAKE_WRITE to notify the task of writes 2013-12-31 18:37:36 +01:00
ev_epoll.c BUG: Revert "OPTIM/MEDIUM: epoll: fuse active events into polled ones during polling changes" 2013-12-20 16:03:41 +01:00
ev_kqueue.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
ev_poll.c MEDIUM: poll: do not use FD_* macros anymore 2013-03-31 15:01:01 +02:00
ev_select.c BUG/MAJOR: ev_select: disable the select() poller if maxsock > FD_SETSIZE 2013-03-31 15:01:05 +02:00
fd.c MEDIUM: connection: centralize handling of nolinger in fd management 2013-12-16 02:23:52 +01:00
freq_ctr.c BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +01:00
frontend.c MEDIUM: connection: centralize handling of nolinger in fd management 2013-12-16 02:23:52 +01:00
haproxy-systemd-wrapper.c BUILD/MINOR: systemd: fix compiler warning about unused result 2013-12-10 08:50:55 +01:00
haproxy.c BUILD: definitely silence some stupid GCC warnings 2013-12-13 15:21:36 +01:00
hash.c MEDIUM: backend: add support for the wt6 hash 2013-11-14 16:37:50 +01: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 MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fas.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fwlc.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fwrr.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_map.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
listener.c MEDIUM: sample: systematically pass the keyword pointer to the keyword 2013-08-01 21:17:13 +02:00
log.c BUILD: log: fix build warning on Solaris 2013-12-16 02:23:51 +01:00
map.c MINOR: map: export parse output sample functions 2013-12-12 15:44:05 +01:00
memory.c MEDIUM: memory: add the ability to poison memory at run time 2012-05-08 21:28:16 +02:00
pattern.c BUG/MAJOR: patterns: fix double free caused by loading strings from files 2013-12-16 10:40:28 +01:00
payload.c BUG/MEDIUM: http: cook_cnt() forgets to set its output type 2013-12-16 15:21:29 +01:00
peers.c MEDIUM: peers: delay appctx initialization 2013-12-09 15:40:23 +01: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 MAJOR: channel: add a new flag CF_WAKE_WRITE to notify the task of writes 2013-12-31 18:37:36 +01:00
proto_tcp.c MEDIUM: connection: centralize handling of nolinger in fd management 2013-12-16 02:23:52 +01:00
proto_uxst.c MAJOR: listener: support inheriting a listening fd from the parent 2013-03-11 01:30:01 +01:00
protocol.c REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.c MEDIUM: checks: add send/expect tcp based check 2013-12-06 11:50:47 +01:00
queue.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
raw_sock.c MAJOR: connection: add two new flags to indicate readiness of control/transport 2013-12-09 15:40:23 +01:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c MINOR: regex: Copy the original regex expression into string. 2013-12-12 15:43:34 +01:00
sample.c BUG/MEDIUM: sample: simplify and fix the argument parsing 2013-12-13 01:33:33 +01:00
server.c MINOR: checks: use check->state instead of srv->state & SRV_CHECKED 2013-12-14 16:02:19 +01:00
session.c OPTIM: session: set the READ_DONTWAIT flag when connecting 2013-12-31 22:39:26 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c BUG/MEDIUM: shctx: makes the code independent on SSL runtime version. 2013-04-26 19:15:52 +02:00
signal.c BUG/MEDIUM: signal: signal handler does not properly check for signal bounds 2013-01-24 16:19:19 +01:00
ssl_sock.c MAJOR: connection: add two new flags to indicate readiness of control/transport 2013-12-09 15:40:23 +01:00
standard.c MINOR: standard: The function parse_binary() can use preallocated buffer 2013-12-12 15:42:11 +01:00
stick_table.c BUG/MEDIUM: acl: fix regression introduced by latest converters support 2013-12-05 02:23:13 +01:00
stream_interface.c MAJOR: channel: add a new flag CF_WAKE_WRITE to notify the task of writes 2013-12-31 18:37:36 +01: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 BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +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 BUG/MEDIUM: uri_auth: missing NULL check and memory leak on memory shortage 2013-01-24 16:19:19 +01:00