haproxy/include/proto
Willy Tarreau 9c06ee4ccf BUG/MEDIUM: channel: don't schedule data in transit for leaving until connected
Option http-send-name-header is still hurting. If a POST request has to be
redispatched when this option is used, and the next server's name is larger
than the initial one, and the POST body fills the buffer, it becomes
impossible to rewrite the server's name in the buffer when redispatching.
In 1.4, this is worse, the process may crash because of a negative size
computation for the memmove().

The only solution to fix this is to refrain from eating the reserve before
we're certain that we won't modify the buffer anymore. And the condition for
that is that the connection is established.

This patch introduces "channel_may_send()" which helps to detect whether it's
safe to eat the reserve or not. This condition is used by channel_in_transit()
introduced by recent patches.

This patch series must be backported into 1.5, and a simpler version must be
backported into 1.4 where fixing the bug is much easier since there were no
channels by then. Note that in 1.4 the severity is major.
2015-01-14 16:08:45 +01:00
..
acl.h MINOR: pattern: store configuration reference for each acl or map pattern. 2014-03-17 18:06:07 +01:00
arg.h MAJOR: sample: maintain a per-proxy list of the fetch args to resolve 2013-04-03 02:13:02 +02:00
auth.h MEDIUM: pattern: The match function browse itself the list or the tree. 2014-03-17 18:06:07 +01:00
backend.h MAJOR: checks: add support for a new "drain" administrative mode 2014-05-23 14:29:11 +02:00
channel.h BUG/MEDIUM: channel: don't schedule data in transit for leaving until connected 2015-01-14 16:08:45 +01:00
checks.h MEDIUM: checks: simplify server up/down/nolb transitions 2014-05-23 14:29:11 +02:00
compression.h
connection.h MAJOR: namespace: add Linux network namespace support 2014-11-21 07:51:57 +01:00
cttproxy.h
dumpstats.h MEDIUM: stats: reimplement HTTP keep-alive on the stats page 2014-04-24 17:24:56 +02:00
fd.h MAJOR: polling: centralize calls to I/O callbacks 2014-11-21 20:37:32 +01:00
freq_ctr.h MINOR: freq_ctr: introduce a new averaging method 2014-06-17 17:15:51 +02:00
frontend.h
hdr_idx.h
lb_chash.h
lb_fas.h
lb_fwlc.h
lb_fwrr.h
lb_map.h
listener.h CLEANUP: fix missing include <string.h> in proto/listener.h 2013-06-14 19:52:17 +02:00
log.h MEDIUM: log: support a user-configurable max log line length 2014-06-27 18:13:53 +02:00
map.h MINOR: map: export parse output sample functions 2013-12-12 15:44:05 +01:00
obj_type.h MINOR: obj: introduce a new type appctx 2013-12-09 15:40:22 +01:00
pattern.h BUG/MEDIUM: pattern: don't load more than once a pattern list. 2014-11-24 15:40:16 +01:00
payload.h MINOR: payload: split smp_fetch_rdp_cookie() 2013-08-01 21:17:13 +02:00
peers.h
pipe.h
port_range.h
proto_http.h BUG/MEDIUM: http: adjust close mode when switching to backend 2014-09-30 18:44:22 +02:00
proto_tcp.h MEDIUM: listener: implement a per-protocol pause() function 2014-07-08 01:13:34 +02:00
proto_uxst.h BUG/MEDIUM: unix: completely unbind abstract sockets during a pause() 2014-07-08 01:13:35 +02:00
protocol.h
proxy.h MEDIUM: proxy: create a tree to store proxies by name 2014-03-15 07:48:35 +01:00
queue.h REORG: checks: put the functions in the appropriate files ! 2014-05-22 11:27:00 +02:00
raw_sock.h
sample.h MINOR: configuration: File and line propagation 2014-03-17 18:06:08 +01:00
server.h BUG/MINOR: server: move the directive #endif to the end of file 2014-07-29 11:03:14 +02:00
session.h CLEANUP: session: remove session_from_task() 2014-12-28 12:19:57 +01:00
shctx.h BUG/MAJOR: ssl: Fallback to private session cache if current lock mode is not supported. 2014-05-08 22:46:32 +02:00
signal.h
ssl_sock.h BUILD: ssl: use OPENSSL_NO_OCSP to detect OCSP support 2014-12-09 20:49:22 +01:00
stick_table.h MEDIUM: stick-table: make it easier to register extra data types 2014-07-15 19:14:52 +02:00
stream_interface.h MINOR: stream-int: retrieve session pointer from stream-int 2014-12-24 23:47:31 +01:00
task.h MINOR: task: release the task pool when stopping 2014-11-13 16:57:19 +01:00
template.h