haproxy/src
Willy Tarreau fc10f599cc BUG/MEDIUM: mux-h2: fix two half-closed to closed transitions
When receiving a HEADERS or DATA frame with END_STREAM set, we would
inconditionally switch to half-closed(remote). This is wrong because we
could already have been in half-closed(local) and need to switch to closed.
This happens in the following situations :
    - receipt of the end of a client upload after we've already responded
      (e.g. redirects to POST requests)
    - receipt of a response on the backend side after we've already finished
      sending the request (most common case).

This may possibly have caused some streams to stay longer than needed
at the end of a transfer, though this is not apparent in tests.

This must be backported to 1.9 and 1.8.
2019-01-30 19:34:40 +01:00
..
51d.c BUG: 51d: Changes to the buffer API in 1.9 were not applied to the 51Degrees code. 2019-01-16 17:26:14 +01:00
acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
action.c MINOR: action: Add function to check rules using an action ACT_ACTION_TRK_* 2017-10-31 11:36:12 +01:00
activity.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
applet.c MINOR: stream-int: replace si_{want,stop}_put() with si_rx_endp_{more,done}() 2018-11-18 21:41:47 +01:00
arg.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
auth.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
backend.c BUG/MEDIUM: servers: Close the connection if we failed to install the mux. 2019-01-29 19:53:09 +01:00
base64.c BUG/MINOR: base64: dec func ignores padding for output size checking 2019-01-14 19:32:15 +01:00
buffer.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cache.c BUG/MAJOR: cache: fix confusion between zero and uninitialized cache key 2019-01-14 10:31:31 +01:00
cfgparse-global.c MINOR: cfgparse: make the process/thread parser support a maximum value 2019-01-26 13:25:14 +01:00
cfgparse-listen.c MINOR: cfgparse: make the process/thread parser support a maximum value 2019-01-26 13:25:14 +01:00
cfgparse.c MINOR: cfgparse: make the process/thread parser support a maximum value 2019-01-26 13:25:14 +01:00
channel.c MINOR: channel: Add the function channel_add_input 2019-01-02 20:12:44 +01:00
checks.c BUG/MEDIUM: checks: Don't try to set ALPN if connection failed. 2019-01-29 19:47:20 +01:00
chunk.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cli.c MINOR: cfgparse: make the process/thread parser support a maximum value 2019-01-26 13:25:14 +01:00
compression.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
connection.c CLEANUP: connection: rename subscription events values and event field 2018-12-19 14:09:21 +01:00
da.c BUILD/MEDIUM: da: Necessary code changes for new buffer API. 2019-01-15 15:07:30 +01:00
dns.c BUG/MEDIUM: dns: overflowed dns name start position causing invalid dns error 2018-12-21 11:36:44 +01:00
ev_epoll.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
ev_kqueue.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
ev_poll.c MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
ev_select.c MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
fd.c BUG/MINOR: startup: certain goto paths in init_pollers fail to free 2019-01-21 04:48:48 +01:00
filters.c BUG/MINOR: filters: Detect cache+compression config on legacy HTTP streams 2019-01-08 11:32:23 +01:00
flt_http_comp.c BUG/MEDIUM: compression: Rewrite strong ETags 2019-01-29 20:26:06 +01:00
flt_spoe.c BUG/MINOR: spoe: corrected fragmentation string size 2019-01-28 13:45:09 +01:00
flt_trace.c CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
freq_ctr.c BUG/MAJOR: threads/freq_ctr: use a memory barrier to detect changes 2017-10-31 18:01:18 +01:00
frontend.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
h1.c BUG/MEDIUM: h1: Get the h1m state when restarting the headers parsing 2019-01-04 16:23:03 +01:00
h2.c MEDIUM: h2: always parse and deduplicate the content-length header 2019-01-24 19:07:26 +01:00
haproxy.c BUG/MINOR: deinit: tcp_rep.inspect_rules not deinit, add to deinit 2019-01-30 10:22:34 +01:00
hash.c MINOR: hash: add new function hash_crc32c 2018-03-21 05:04:01 +01:00
hathreads.c MINOR: threads: make MAX_THREADS configurable at build time 2019-01-26 13:37:48 +01:00
hdr_idx.c CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
hlua.c BUG/MINOR: lua/htx: Respect the reserve when data are send from an HTX applet 2019-01-09 14:36:22 +01:00
hlua_fcn.c CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
hpack-dec.c BUG/MINOR: hpack: return a compression error on invalid table size updates 2019-01-24 15:27:06 +01:00
hpack-enc.c BUG/MAJOR: hpack: fix length check for short names encoding 2018-12-16 09:38:30 +01:00
hpack-huff.c BUG/MINOR: hpack: must reject huffman literals padded with more than 7 bits 2017-12-03 21:08:39 +01:00
hpack-tbl.c BUG/CRITICAL: hpack: fix improper sign check on the header index value 2018-09-20 11:45:56 +02:00
http.c MEDIUM: proto_htx: Convert all HTTP error messages into HTX 2018-12-01 17:37:27 +01:00
http_acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_act.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_conv.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_fetch.c MINOR: http_fecth: Implement body_len and body_size sample fetches for the HTX 2018-12-14 16:03:39 +01:00
http_htx.c REORG: h1: merge types+proto into common/h1.h 2018-12-11 17:15:13 +01:00
http_msg.c REORG: h1: move legacy http functions to http_msg.c 2018-12-11 17:15:13 +01:00
http_rules.c MINOR: http: Make new "early-hint" http-request action really be parsed. 2018-11-12 21:08:55 +01:00
htx.c MINOR: htx: Add a function to truncate all blocks after a specific offset 2019-01-08 12:06:55 +01: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 MINOR: backend: move hash_balance_factor out of chash 2019-01-14 19:33:17 +01:00
lb_fas.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fwlc.c MINOR: lb: make the leastconn algorithm more accurate 2018-12-14 08:33:28 +01:00
lb_fwrr.c CLEANUP: Fix typo in the fwrr subsystem 2018-12-02 18:40:53 +01:00
lb_map.c BUG/MINOR: lb-map: fix unprotected update to server's score 2018-12-02 19:22:55 +01:00
listener.c BUG/MINOR: listener: always fill the source address for accepted socketpairs 2019-01-27 21:48:29 +01:00
log.c BUG/MEDIUM: log: don't mark log FDs as non-blocking on terminals 2019-01-02 20:12:02 +01:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c MEDIUM: Add parsing of mailers section 2015-02-03 00:24:16 +01:00
map.c CLEANUP: Fix typos in the map management functions 2018-12-02 18:40:38 +01:00
memory.c MEDIUM: memory: make the pool cache an array and not a thread_local 2018-11-26 19:50:32 +01:00
mux_h1.c BUG/MINOR: mux-h1: avoid copying output over itself in zero-copy 2019-01-23 20:43:53 +01:00
mux_h2.c BUG/MEDIUM: mux-h2: fix two half-closed to closed transitions 2019-01-30 19:34:40 +01:00
mux_pt.c CLEANUP: connection: rename conn->mux_ctx to conn->ctx 2018-12-19 14:13:07 +01:00
namespace.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
pattern.c MEDIUM: init: use self-initializing spinlocks and rwlocks 2018-11-26 19:50:32 +01:00
payload.c MINOR: payload: add sample fetch for TLS ALPN 2019-01-01 09:15:01 +01:00
peers.c BUG/MEDIUM: peers: Handle mux creation failure. 2019-01-29 19:47:20 +01:00
pipe.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
proto_http.c BUG/MINOR: backend: don't use url_param_name as a hint for BE_LB_ALGO_PH 2019-01-14 19:33:17 +01:00
proto_htx.c BUG/MINOR: proto-htx: Return an error if all headers cannot be received at once 2019-01-23 11:27:34 +01:00
proto_sockpair.c CLEANUP: Fix typos in the socket pair protocol subsystem 2018-12-02 18:40:33 +01:00
proto_tcp.c CLEANUP: Fix typos in the proto_tcp subsystem 2018-12-02 18:39:05 +01:00
proto_udp.c CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proto_uxst.c BUG/MEDIUM: mworker: avoid leak of client socket 2018-11-27 19:34:00 +01:00
protocol.c MEDIUM: protocol: use a custom AF_MAX to help protocol parser 2018-09-12 07:12:27 +02:00
proxy.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
queue.c CLEANUP: Fix a typo in the queue subsystem 2018-12-02 18:40:11 +01:00
raw_sock.c BUG/MEDIUM: connections: Add the CO_FL_CONNECTED flag if a send succeeded. 2019-01-17 19:18:20 +01:00
regex.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
sample.c BUG/MEDIUM: sample: Don't treat SMP_T_METH as SMP_T_STR. 2018-12-07 15:31:43 +01:00
server.c MINOR: server: add a max-reuse parameter 2019-01-24 19:06:43 +01:00
session.c MEDIUM: sessions: Keep track of which connections are idle. 2018-12-28 19:16:03 +01:00
sha1.c IMPORT: sha1: import SHA1 functions 2017-10-25 04:45:48 +02:00
shctx.c CLEANUP: Fix typos in the shctx subsystem 2018-12-02 18:40:29 +01:00
signal.c CLEANUP: Fix a typo in the signal subsystem 2018-12-02 18:39:52 +01:00
ssl_sock.c BUG/MEDIUM: ssl: Fix handling of TLS 1.3 KeyUpdate messages 2019-01-23 09:51:22 +01:00
standard.c MINOR: tools: preset the port of fd-based "sockets" to zero 2018-12-15 15:40:12 +01:00
stats.c BUG/MEDIUM: stats: Get the right scope pointer depending on HTX is used or not 2019-01-16 17:27:49 +01:00
stick_table.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
stream.c MINOR: stream: don't wait before retrying after a failed connection reuse 2019-01-24 19:06:43 +01:00
stream_interface.c BUG/MAJOR: stream-int: Update the stream expiration date in stream_int_notify() 2019-01-03 18:45:00 +01:00
task.c MEDIUM: tasks: check the global task mask instead of the thread number 2018-12-14 15:49:45 +01:00
tcp_rules.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
time.c REORG: time/activity: move activity measurements to activity.{c,h} 2018-11-22 11:48:41 +01:00
trace.c CONTRIB: trace: try to display the function's return value on exit 2017-10-24 19:54:25 +02:00
uri_auth.c CLEANUP: log: Rename Alert/Warning in ha_alert/ha_warning 2017-11-24 17:19:12 +01:00
vars.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
version.c BUILD: add a new file "version.c" to carry version updates 2019-01-04 18:20:32 +01:00
wurfl.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
xxhash.c CLEANUP: fix 2 typos in the xxhash subsystem 2018-11-18 22:23:15 +01:00