haproxy/src
Willy Tarreau 40f151aa79 BUG/MINOR: http: don't abort client connection on premature responses
When a server responds prematurely to a POST request, haproxy used to
cause the transfer to be aborted before the end. This is problematic
because this causes the client to receive a TCP reset when it tries to
push more data, generally preventing it from receiving the response
which contain the reason for the premature reponse (eg: "entity too
large" or an authentication request).

From now on we take care of allowing the upload traffic to flow to the
server even when the response has been received, since the server is
supposed to drain it. That way the client receives the server response.

This bug has been present since 1.4 and the fix should probably be
backported there.
2012-12-20 12:10:09 +01:00
..
acl.c BUG/MEDIUM: acl: make prue_acl_expr() correctly free ACL expressions upon exit 2012-11-24 00:02:14 +01:00
appsession.c MEDIUM: make the trash be a chunk instead of a char * 2012-10-29 16:57:30 +01: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 CLEANUP: backend: use the same tproxy address selection code for servers and backends 2012-12-09 10:06:01 +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 CLEANUP: buffer: use buffer_empty() instead of buffer_len()==0 2012-12-17 01:14:49 +01:00
cfgparse.c MINOR: config: improve error checking on TCP stick-table tracking 2012-12-12 00:25:44 +01:00
channel.c OPTIM: channel: inline channel_forward's fast path 2012-10-26 01:08:01 +02:00
checks.c MEDIUM: connection: add an error code in connections 2012-12-03 14:22:13 +01:00
chunk.c CLEANUP: replace chunk_printf() with chunk_appendf() 2012-10-29 16:14:26 +01:00
compression.c BUG/MEDIUM: compression: does not forward trailers 2012-11-23 11:12:33 +01:00
connection.c BUG/MEDIUM: connection: always update connection flags prior to computing polling 2012-12-17 01:14:25 +01:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c MINOR: stats: add a few more information on session dump 2012-12-08 17:48:47 +01:00
ev_epoll.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +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 BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
ev_select.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
fd.c BUG: polling: don't skip polled events in the spec list 2012-11-12 01:57:14 +01: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 BUILD: stream_interface: remove si_fd() and its references 2012-11-11 20:53:29 +01:00
haproxy.c BUG/MEDIUM: comp: DEFAULT_MAXZLIBMEM was expressed in bytes and not megabytes 2012-12-03 14:22:12 +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 [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 MINOR: listeners: make the accept loop more robust when maxaccept==0 2012-11-23 20:22:10 +01:00
log.c BUG: connection: fix typo in previous commit 2012-11-12 01:14:56 +01: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: use an array for the stick counters 2012-12-09 15:57:16 +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 BUG/MINOR: http: don't abort client connection on premature responses 2012-12-20 12:10:09 +01:00
proto_tcp.c BUG/MINOR: connection: remove a few synchronous calls to polling updates 2012-12-10 17:03:52 +01: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 BUG: proxy: fix server name lookup in get_backend_server() 2012-11-15 00:15:18 +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 CLEANUP: buffer: use buffer_empty() instead of buffer_len()==0 2012-12-17 01:14:49 +01: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: remove remains of BUFSIZE in HTTP auth and sample conversions 2012-10-29 20:44:36 +01: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: use an array for the stick counters 2012-12-09 15:57:16 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c MEDIUM: ssl: manage shared cache by blocks for huge sessions. 2012-12-04 10:56:56 +01:00
signal.c MINOR: signal: really ignore signals configured with no handler 2012-10-04 22:26:09 +02:00
ssl_sock.c CLEANUP: buffer: use buffer_empty() instead of buffer_len()==0 2012-12-17 01:14:49 +01:00
standard.c MINOR: log: add '%Tl' to log-format 2012-10-29 11:55:26 +01:00
stick_table.c BUG/MEDIUM: stick-tables: conversions to strings were broken in dev13 2012-12-09 11:10:30 +01:00
stream_interface.c BUG/MEDIUM: stream_interface: fix another case where the reader might not be woken up 2012-12-19 19:28:57 +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 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