haproxy/src
Christopher Faulet f0d7eb2f4f MINOR: stream: Don't trigger errors on destructive HTTP upgrades
When a TCP stream is upgraded to H2 stream, a destructive upgrade is
performed. It means the TCP stream is silently released while a new one is
created. It is of course more complicated but it is what we observe from the
stream point of view.

That was performed by returning an error when the backend was set. It is
neither really elegant nor accurate. So now, instead of returning an error
from stream_set_backend() in case of destructive HTTP upgrades, the TCP
stream processing is aborted and no error is reported. However, the result
is more or less the same.
2021-04-01 11:06:39 +02:00
..
51d.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
acl.c REORG: global: move free acl/action in their related source files 2021-03-26 15:28:33 +01:00
action.c REORG: global: move free acl/action in their related source files 2021-03-26 15:28:33 +01:00
activity.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
applet.c MEDIUM: dynbuf: remove last usages of b_alloc_margin() 2021-03-22 16:27:59 +01:00
arg.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
auth.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
backend.c MEDIUM: backend: use a trylock to grab a connection on high FD counts as well 2021-03-27 09:39:23 +01:00
base64.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
cache.c MINOR: cache: use pool_alloc(), not pool_alloc_dirty() 2021-03-22 15:35:53 +01:00
calltrace.c BUILD: trace: include tools.h 2020-09-25 17:54:48 +02:00
cfgparse-global.c BUG/MINOR: cfgparse: use the GLOBAL not LISTEN keywords list for spell checking 2021-03-15 09:15:18 +01:00
cfgparse-listen.c REORG: split proxy allocation functions 2021-03-26 15:28:33 +01:00
cfgparse-ssl.c BUILD: ssl: guard ecdh functions with SSL_CTX_set_tmp_ecdh macro 2021-03-24 09:52:37 +01:00
cfgparse-tcp.c MINOR: server: prepare parsing for dynamic servers 2021-03-18 15:51:12 +01:00
cfgparse-unix.c MINOR: listener: create a new struct "settings" in bind_conf 2020-09-16 20:13:13 +02:00
cfgparse.c MINOR: sample: make smp_resolve_args() return an allocate error message 2021-03-26 16:23:45 +01:00
channel.c CLEANUP: channel: fix comment in ci_putblk. 2021-02-13 09:43:17 +01:00
check.c MEDIUM: dynbuf: remove last usages of b_alloc_margin() 2021-03-22 16:27:59 +01:00
chunk.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
cli.c MINOR: cli: implement experimental-mode 2021-03-18 15:37:05 +01:00
compression.c CLEANUP: compression: do not test for buffer before calling b_alloc() 2021-03-22 16:16:22 +01:00
connection.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
da.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
debug.c BUG/MEDIUM: debug/lua: Use internal hlua function to dump the lua traceback 2021-03-24 16:35:23 +01:00
dgram.c REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
dns.c MEDIUM: task: extend the state field to 32 bits 2021-03-05 08:30:08 +01:00
dynbuf.c MINOR: dynbuf: pass offer_buffers() the number of buffers instead of a threshold 2021-02-20 12:38:18 +01:00
eb32sctree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb32tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb64tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebimtree.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
ebistree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebmbtree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebpttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebsttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebtree.c BUG/MEDIUM: ebtree: use a byte-per-byte memcmp() to compare memory blocks 2020-06-16 11:30:33 +02:00
ev_epoll.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
ev_evports.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
ev_kqueue.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
ev_poll.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
ev_select.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
extcheck.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
fcgi-app.c REORG: global: move initcall register code in a dedicated file 2021-03-26 15:28:33 +01:00
fcgi.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
fd.c BUG/MEDIUM: fd: Take the fd_mig_lock when closing if no DWCAS is available. 2021-03-25 07:34:35 +01:00
filters.c CLEANUP: filters: use pool_zalloc() in flt_stream_add_filter() 2021-03-22 23:17:56 +01:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
flt_http_comp.c CLEANUP: compression: do not test for buffer before calling b_alloc() 2021-03-22 16:16:22 +01:00
flt_spoe.c CLEANUP: spoe: use pool_zalloc() instead of pool_alloc+memset 2021-03-22 23:18:26 +01:00
flt_trace.c CLEANUP: Use istadv(const struct ist, const size_t) whenever possible 2021-03-03 05:07:10 +01:00
freq_ctr.c BUG/MEDIUM: freq_ctr/threads: use the global_now_ms variable 2021-03-23 09:03:37 +01:00
frontend.c CLEANUP: frontend: use pool_zalloc() in frontend_accept() 2021-03-22 23:18:54 +01:00
h1.c MEDIUM: h1: add a WebSocket key on handshake if needed 2021-01-28 16:37:14 +01:00
h1_htx.c MINOR: h1: Raise the chunk size limit up to (2^52 - 1) 2021-01-28 16:37:14 +01:00
h2.c CLEANUP: Replace for loop with only a condition by while 2021-03-05 08:28:53 +01:00
haproxy.c MINOR: proxy: implement a free_proxy function 2021-03-26 15:28:33 +01:00
hash.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
hlua.c MINOR: lua: properly allocate the lua Socket servers 2021-03-26 15:28:33 +01:00
hlua_fcn.c BUG/MINOR: hlua: Don't strip last non-LWS char in hlua_pushstrippedstring() 2021-03-03 19:48:12 +01:00
hpack-dec.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
hpack-enc.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-huff.c REORG: include: move hpack*.h to haproxy/ and split hpack-tbl 2020-06-11 10:18:57 +02:00
hpack-tbl.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
http.c MINOR: http: Add HTTP 501-not-implemented error message 2021-01-21 15:21:12 +01:00
http_acl.c CLEANUP: acl: don't reference the generic pattern deletion function anymore 2020-11-05 19:27:09 +01:00
http_act.c BUG/MEDIUM: stick-tables: fix ref counter in table entry using multiple http tracksc. 2021-03-11 14:14:44 +01:00
http_ana.c CLEANUP: l7-retries: do not test the buffer before calling b_alloc() 2021-03-22 16:17:37 +01:00
http_conv.c MINOR: http-conv: Don't check if argument list is set in sample converters 2021-01-29 13:26:02 +01:00
http_fetch.c BUG/MINOR: http_fetch: make hdr_ip() resistant to empty fields 2021-03-31 11:45:42 +02:00
http_htx.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
http_rules.c MINOR: http-rules: suggest approaching action names on mismatch 2021-03-12 14:13:21 +01:00
htx.c CLEANUP: Use istadv(const struct ist, const size_t) whenever possible 2021-03-03 05:07:10 +01:00
init.c REORG: global: move initcall register code in a dedicated file 2021-03-26 15:28:33 +01:00
lb_chash.c MINOR: lb/chash: use a read lock in chash_get_server_hash() 2020-10-17 20:15:49 +02:00
lb_fas.c OPTIM: lb-first: do not take the server lock on take_conn/drop_conn 2021-02-18 10:06:45 +01:00
lb_fwlc.c OPTIM: lb-leastconn: do not unlink the server if it did not change 2021-02-18 10:06:45 +01:00
lb_fwrr.c MINOR: backend: replace the lbprm lock with an rwlock 2020-10-17 18:51:41 +02:00
lb_map.c MINOR: lb/map: use seek lock and read locks where appropriate 2020-10-17 19:04:27 +02:00
listener.c MINOR: cfgparse/bind: suggest correct spelling for unknown bind keywords 2021-03-12 14:13:21 +01:00
log.c MINOR: cfgparse/bind: suggest correct spelling for unknown bind keywords 2021-03-12 14:13:21 +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 CLEANUP: mailers: use pool_zalloc() in enqueue_one_email_alert() 2021-03-22 23:19:13 +01:00
map.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
mqtt.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
mux_fcgi.c MEDIUM: dynbuf: remove last usages of b_alloc_margin() 2021-03-22 16:27:59 +01:00
mux_h1.c BUG/MEDIUM: mux-h1: make h1_shutw_conn() idempotent 2021-03-26 09:29:38 +01:00
mux_h2.c BUG/MINOR: mux-h2: Don't emit log twice if an error occurred on the preface 2021-04-01 08:56:07 +02:00
mux_pt.c CLEANUP: task: make sure tasklet handlers always indicate their statuses 2021-03-13 11:30:19 +01:00
mworker-prog.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
mworker.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
namespace.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
pattern.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
payload.c BUG/MINOR: payload: Wait for more data if buffer is empty in payload/payload_lv 2021-03-29 11:47:53 +02:00
peers.c MEDIUM: task: extend the state field to 32 bits 2021-03-05 08:30:08 +01:00
pipe.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
pool.c CLEANUP: mark defproxy as const on parse tune.fail-alloc 2021-03-22 11:50:31 +01:00
proto_quic.c CLEANUP: socket: replace SOL_IP/IPV6/TCP with IPPROTO_IP/IPV6/TCP 2021-03-31 08:59:34 +02:00
proto_sockpair.c MEDIUM: connections: Introduce a new XPRT method, start(). 2021-03-19 15:33:04 +01:00
proto_tcp.c CLEANUP: socket: replace SOL_IP/IPV6/TCP with IPPROTO_IP/IPV6/TCP 2021-03-31 08:59:34 +02:00
proto_udp.c MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver() 2020-12-08 18:10:18 +01:00
proto_uxdg.c BUG/MINOR: protocol: add missing support of dgram unix socket. 2021-03-18 18:30:29 +01:00
proto_uxst.c MEDIUM: connections: Introduce a new XPRT method, start(). 2021-03-19 15:33:04 +01:00
protocol.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
proxy.c MINOR: stream: Don't trigger errors on destructive HTTP upgrades 2021-04-01 11:06:39 +02:00
qpack-tbl.c CLEANUP: qpack: Wrong comment about the draft for QPACK static header table. 2021-01-04 12:31:28 +01:00
queue.c MINOR: lb/api: let callers of take_conn/drop_conn tell if they have the lock 2021-02-18 10:06:45 +01:00
quic_cc.c MINOR: quic: Import C source code files for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_cc_newreno.c MINOR: quic: Add traces to congestion avoidance NewReno callback. 2020-12-23 11:57:26 +01:00
quic_frame.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 16:26:50 +01:00
quic_sock.c MEDIUM: quic: Fix build. 2021-03-19 20:09:22 +01:00
quic_tls.c MINOR: quic: Update the initial salt to that of draft-29. 2020-12-23 11:57:26 +01:00
raw_sock.c MINOR: raw_sock: Add a close method. 2021-03-19 15:33:04 +01:00
regex.c OPTIM: regex: PCRE2 use JIT match when JIT optimisation occured. 2020-08-14 07:53:40 +02:00
resolvers.c REORG: global: move initcall register code in a dedicated file 2021-03-26 15:28:33 +01:00
ring.c MINOR: ring: adds new ring_init function. 2021-02-13 09:43:17 +01:00
sample.c BUILD: ssl: use EVP_CIPH_GCM_MODE macro instead of HA_OPENSSL_VERSION 2021-03-26 23:16:25 +01:00
server.c CLEANUP: assorted typo fixes in the code and comments 2021-03-20 09:28:58 +01:00
server_state.c BUG/MINOR: server-state: use the argument, not the global state 2021-03-12 14:13:07 +01:00
session.c MEDIUM: connections: Introduce a new XPRT method, start(). 2021-03-19 15:33:04 +01:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c REORG: include: split global.h into haproxy/global{,-t}.h 2020-06-11 10:18:58 +02:00
signal.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
sink.c REORG: server: use flags for parse_server 2021-03-18 15:37:05 +01:00
sock.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
sock_inet.c CLEANUP: socket: replace SOL_IP/IPV6/TCP with IPPROTO_IP/IPV6/TCP 2021-03-31 08:59:34 +02:00
sock_unix.c CLEANUP: protocol: remove the now unused <handler> field of proto_fam->bind() 2020-10-15 21:47:56 +02:00
ssl_ckch.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
ssl_crtlist.c BUG/MINOR: ssl: Prevent removal of crt-list line if the instance is a default one 2021-03-26 13:06:39 +01:00
ssl_sample.c BUILD: ssl: introduce fine guard for ssl random extraction functions 2021-03-26 15:19:07 +01:00
ssl_sock.c BUG/MINOR: ssl: Fix update of default certificate 2021-03-26 13:06:29 +01:00
ssl_utils.c CLEANUP: ssl: ssl_sock_crt2der semicolon and spaces 2020-08-07 15:38:40 +02:00
stats.c BUG/MINOR: stats: Apply proper styles in HTML status page. 2021-03-30 16:57:22 +02:00
stick_table.c MEDIUM: task: extend the state field to 32 bits 2021-03-05 08:30:08 +01:00
stream.c MINOR: stream: Don't trigger errors on destructive HTTP upgrades 2021-04-01 11:06:39 +02:00
stream_interface.c CLEANUP: task: make sure tasklet handlers always indicate their statuses 2021-03-13 11:30:19 +01:00
task.c MINOR: task: give the scheduler a bit more flexibility in the runqueue size 2021-03-10 11:15:34 +01:00
tcp_act.c CLEANUP: socket: replace SOL_IP/IPV6/TCP with IPPROTO_IP/IPV6/TCP 2021-03-31 08:59:34 +02:00
tcp_rules.c CLEANUP: tcp-rules: Fix a typo in error messages about expect-netscaler-cip 2021-03-19 15:41:16 +01:00
tcp_sample.c CLEANUP: socket: replace SOL_IP/IPV6/TCP with IPPROTO_IP/IPV6/TCP 2021-03-31 08:59:34 +02:00
tcpcheck.c CLEANUP: tcpcheck: use pool_zalloc() instead of pool_alloc+memset 2021-03-22 23:20:03 +01:00
thread.c BUG/MEDIUM: thread: Fix a deadlock if an isolated thread is marked as harmless 2021-03-25 14:31:50 +01:00
time.c BUG/MEDIUM: time: make sure to always initialize the global tick 2021-03-30 18:28:25 +02:00
tools.c MINOR: tools: make url2ipv4 return the exact number of bytes parsed 2021-03-25 15:18:47 +01:00
trace.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
uri_auth.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
vars.c MEDIUM: cli: add a new experimental "set var" command 2021-03-26 16:57:43 +01:00
version.c BUILD: Fix build by including haproxy/global.h 2020-06-16 23:36:04 +02:00
wdt.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
wurfl.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
xprt_handshake.c MEDIUM: connections: Implement a start() method for xprt_handshake. 2021-03-19 15:33:04 +01:00
xprt_quic.c CLEANUP: quic: use pool_zalloc() instead of pool_alloc+memset 2021-03-22 23:20:21 +01:00