haproxy/src
Willy Tarreau 296897f2c6 [MEDIUM] connect to servers even when the input has already been closed
The BF_AUTO_CLOSE flag prevented a connection from establishing on
a server if the other side's input channel was already closed. This
is wrong because there may be pending data to be sent.

This was causing an issue with stats, as noticed and reported by
Cyril Bonté. Since the stats are now handled as a server, sometimes
concurrent accesses were causing one of the connections to send the
shutdown(write) before the connection to the stats function was
established, which aborted it early.

This fix causes the BF_AUTO_CLOSE flag to be checked only when the
connection on the outgoing stream interface has reached an established
state. That way we're still able to connect, send the request then
close.
2010-03-14 19:21:34 +01:00
..
acl.c [MEDIUM] add support for anonymous ACLs 2010-02-01 13:05:50 +01:00
appsession.c [MINOR] task: keep a task count and clean up task creators 2009-03-21 18:13:21 +01:00
auth.c [BUILD] fix platform-dependant build issues related to crypt() 2010-03-04 19:10:14 +01:00
backend.c [MINOR] add the "force-persist" statement to force persistence on down servers 2010-01-22 19:10:05 +01:00
base64.c [MINOR] Base64 decode 2010-01-31 19:14:07 +01:00
buffers.c [BUILD] fix some build warnings on Solaris with is* macros 2010-03-03 00:16:00 +01:00
cfgparse.c [BUG] Clear-cookie path issue 2010-03-04 23:16:42 +01:00
checks.c [BUILD] fix some build warnings on Solaris with is* macros 2010-03-03 00:16:00 +01:00
client.c [MINOR] add the ability to force kernel socket buffer size. 2010-01-22 11:49:41 +01:00
cttproxy.c
dumpstats.c [BUG] stats: connection reset counters must be plain ascii, not HTML 2010-03-05 18:15:23 +01:00
ev_epoll.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_kqueue.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_poll.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_select.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_sepoll.c [MEDIUM] fd: merge fd_list into fdtab 2009-10-18 08:20:26 +02:00
fd.c [OPTIM] move some rarely used fields out of fdtab 2009-10-18 08:17:33 +02:00
freq_ctr.c [OPTIM] freq_ctr: do not rotate the counters when reading 2009-03-06 14:29:25 +01:00
haproxy.c [MINOR] force null-termination of hostname 2010-03-12 21:58:54 +01:00
hdr_idx.c
lb_chash.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01: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
log.c [CLEANUP] remove ifdef MSG_NOSIGNAL and define it instead 2009-08-19 11:25:08 +02:00
memory.c [MEDIUM] ensure we don't recursively call pool_gc2() 2009-04-21 02:17:45 +02:00
pattern.c [CLEANUP] acl, patterns: make use of my_strndup() instead of malloc+memcpy 2010-01-26 19:02:46 +01:00
pipe.c [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
proto_http.c [BUG] http: don't wait for response data to leave buffer is client has left 2010-03-05 10:57:48 +01:00
proto_tcp.c [CLEANUP] config: use build_acl_cond() instead of parse_acl_cond() 2010-01-28 17:12:36 +01:00
proto_uxst.c [DOC] Some more documentation cleanups 2010-03-12 06:46:06 +01:00
protocols.c
proxy.c [MINOR] report total number of processed connections when stopping a proxy 2010-03-04 23:07:28 +01:00
queue.c [OPTIM] counters: move some max numbers to the counters struct 2009-10-04 23:26:19 +02:00
rbtree.c
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
server.c
session.c [MEDIUM] connect to servers even when the input has already been closed 2010-03-14 19:21:34 +01:00
sessionhash.c
signal.c [BUILD] fix a minor build warning on AIX 2009-07-26 17:32:11 +02:00
standard.c [BUILD] fix some build warnings on Solaris with is* macros 2010-03-03 00:16:00 +01:00
stick_table.c [MEDIUM] Add stick table (persistence) management functions and types 2010-01-12 11:23:15 +01:00
stream_interface.c [BUG] stream_interface: fix retnclose and remove cond_close 2010-01-10 10:21:21 +01:00
stream_sock.c [OPTIM] stream_sock: don't shutdown(write) when the socket is in error 2010-01-16 10:03:45 +01:00
task.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
time.c [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second. 2009-03-05 16:56:16 +01:00
uri_auth.c [MAJOR] use the new auth framework for http stats 2010-01-31 19:14:09 +01:00