haproxy/src
Willy Tarreau fc47f91c9c BUG/MEDIUM: http: set DONTWAIT on data when switching to tunnel mode
Jaroslaw Bojar diagnosed an issue when haproxy switches to tunnel mode
after a transfer. The response data are sent with the MSG_MORE flag,
causing them to be needlessly queued in the kernel. In order to fix this,
we set the CF_NEVER_WAIT flag on the channels when switching to tunnel
mode.

One issue remained with client-side keep-alive : if the response is sent
before the end of the request, it suffers the same issue for the same
reason. This is easily addressed by setting the CF_SEND_DONTWAIT flag
on the channel when the response has been parsed and we're waiting for
the other side.

The same issue is present in 1.4 so the fix must be backported.
2012-10-20 10:41:37 +02:00
..
acl.c MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +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 MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +02:00
auth.c CLEANUP: auth: make the code build again with DEBUG_AUTH 2012-05-10 23:25:35 +02:00
backend.c MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +02: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 MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +02:00
cfgparse.c MINOR: ssl: move ssl context init for servers from cfgparse.c to ssl_sock.c 2012-10-12 11:37:36 +02:00
channel.c MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +02:00
checks.c CLEANUP: checks: remove minor warnings for assigned but not used variables 2012-10-05 14:54:30 +02:00
chunk.c MINOR: chunk: provide string compare functions 2012-10-19 15:18:06 +02:00
connection.c BUG: connection: fix regression from commit 9e272bf9 2012-10-05 21:29:37 +02:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +02:00
ev_epoll.c BUG/MINOR: epoll: correctly disable FD polling in fd_rem() 2012-10-04 22:26:09 +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 CLEANUP: fdtab: flatten the struct and merge the spec struct with the rest 2012-09-03 20:49:14 +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: connection: move the PROXY protocol management to connection.c 2012-10-05 00:32:33 +02:00
haproxy.c MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +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 MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +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
listener.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
log.c MEDIUM: log: report SSL ciphers and version in logs using logformat %sslc/%sslv 2012-10-12 20:48:51 +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 CLEANUP: session: remove term_trace which is not used anymore 2012-10-13 11:10:30 +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 BUG/MEDIUM: http: set DONTWAIT on data when switching to tunnel mode 2012-10-20 10:41:37 +02:00
proto_tcp.c MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +02:00
proto_uxst.c MINOR: standard: make memprintf() support a NULL destination 2012-09-24 10:53:16 +02:00
protocol.c REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.c MEDIUM: proxy: add the global frontend to the list of normal proxies 2012-10-04 08:58:23 +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 MEDIUM: connection: it's not the data layer's role to validate the connection 2012-10-04 22:26:11 +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 MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +02:00
server.c MEDIUM: server: move parsing of keyword "id" to server.c 2012-10-10 17:51:05 +02:00
session.c CLEANUP: session: remove term_trace which is not used anymore 2012-10-13 11:10:30 +02:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c BUILD: ssl: fix shctx build on older compilers 2012-10-18 19:03:00 +02:00
signal.c MINOR: signal: really ignore signals configured with no handler 2012-10-04 22:26:09 +02:00
ssl_sock.c MINOR: ssl: improve socket behaviour upon handshake abort. 2012-10-19 20:56:59 +02:00
standard.c MINOR: standard: make indent_msg() support empty messages 2012-10-10 17:42:39 +02:00
stick_table.c REORG: rename "pattern" files 2012-05-08 20:57:21 +02:00
stream_interface.c MAJOR: channel: replace the struct buffer with a pointer to a buffer 2012-10-13 09:07:52 +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