haproxy/src
Christopher Faulet d1ac2b90cd MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead
The EOM block may be removed. The HTX_FL_EOM flags is enough. Most of time,
to know if the end of the message is reached, we just need to have an empty
HTX message with HTX_FL_EOM flag set. It may also be detected when the last
block of a message with HTX_FL_EOM flag is manipulated.

Removing EOM blocks simplifies the HTX message filling. Indeed, there is no
more edge problems when the message ends but there is no more space to write
the EOM block. However, some part are more tricky. Especially the
compression filter or the FCGI mux. The compression filter must finish the
compression on the last DATA block. Before it was performed on the EOM
block, an extra DATA block with the checksum was added. Now, we must detect
the last DATA block to be sure to finish the compression. The FCGI mux on
its part must be sure to reserve the space for the empty STDIN record on the
last DATA block while this record was inserted on the EOM block.

The H2 multiplexer is probably the part that benefits the most from this
change. Indeed, it is now fairly easier to known when to set the ES flag.

The HTX documentaion has been updated accordingly.
2021-01-28 16:37:14 +01:00
..
51d.c MEDIUM: xxhash: use the XXH3 functions to generate 64-bit hashes 2020-12-23 06:39:21 +01:00
acl.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
action.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
activity.c
applet.c
arg.c CLEANUP: Do not use a fixed type for 'sizeof' in 'calloc' 2020-09-12 20:31:25 +02:00
auth.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 17:32:03 +01:00
backend.c BUG/MEDIUM: backend: never reuse a connection for tcp mode 2021-01-28 14:18:33 +01:00
base64.c
cache.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
calltrace.c BUILD: trace: include tools.h 2020-09-25 17:54:48 +02:00
cfgparse-global.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
cfgparse-listen.c BUG/MINOR: config: fix leak on proxy.conn_src.bind_hdr_name 2021-01-26 14:48:39 +01:00
cfgparse-ssl.c MINOR: ssl: Remove client_crt member of the server's ssl context 2021-01-26 15:19:36 +01:00
cfgparse-tcp.c CLEANUP: cfgparse: remove duplicate registration for transparent build options 2020-11-05 19:27:16 +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 CLEANUP: cfgparse: replace "realloc" with "my_realloc2" to fix to memory leak on error 2021-01-08 14:45:39 +01:00
channel.c MINOR: channel: new getword and getchar functions on channel. 2020-10-07 17:17:27 +02:00
check.c BUG/MEDIUM: tcpcheck: Don't destroy connection in the wake callback context 2021-01-21 15:21:12 +01:00
chunk.c
cli.c MINOR: cli/show_fd: report some easily detectable suspicious states 2021-01-21 09:09:05 +01:00
compression.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
connection.c MEDIUM: connection: make use of the control layer check_events/ignore_events 2020-12-11 17:06:11 +01:00
da.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
debug.c BUILD: debug: fix build warning by consuming the write() result 2021-01-22 15:58:26 +01:00
dgram.c
dict.c MEDIUM: stick-tables: Add srvkey option to stick-table 2020-12-31 10:04:54 +01:00
dns.c BUG/MINOR: dns: SRV records ignores duplicated AR records (v2) 2021-01-15 17:01:24 +01:00
dynbuf.c
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
ev_epoll.c
ev_evports.c
ev_kqueue.c
ev_poll.c CLEANUP: few extra typo and fixes over last one ("ot" -> "to") 2021-01-06 17:35:52 +01:00
ev_select.c CLEANUP: few extra typo and fixes over last one ("ot" -> "to") 2021-01-06 17:35:52 +01:00
extcheck.c BUG/MINOR: extcheck: add missing checks on extchk_setenv() 2020-10-24 13:07:39 +02:00
fcgi-app.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
fcgi.c
fd.c CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
filters.c BUG/MEDIUM: filters/htx: Fix data forwarding when payload length is unknown 2021-01-26 09:53:52 +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 MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
flt_spoe.c CLEANUP: spoe: fix typo on var_check_arg comment 2021-01-05 17:23:32 +01:00
flt_trace.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
freq_ctr.c
frontend.c MINOR: frontend: add client timeout sample fetch 2020-12-11 12:01:07 +01:00
h1_htx.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
h1.c
h2.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
haproxy.c BUG/MINOR: config: fix leak on proxy.conn_src.bind_hdr_name 2021-01-26 14:48:39 +01:00
hash.c
hlua_fcn.c MEDIUM: stats: allow to select one field in stats_fill_sv_stats 2021-01-26 09:24:51 +01:00
hlua.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
hpack-dec.c
hpack-enc.c
hpack-huff.c
hpack-tbl.c
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 CLEANUP: Fix spelling errors in comments 2021-01-08 14:56:32 +01:00
http_ana.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
http_conv.c MINOR: converter: adding support for url_enc 2021-01-06 23:43:04 +01:00
http_fetch.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
http_htx.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
http_rules.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
http.c MINOR: http: Add HTTP 501-not-implemented error message 2021-01-21 15:21:12 +01:00
htx.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +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 MINOR: lb/first: use a read lock in fas_get_next_server() 2020-10-17 19:49:49 +02:00
lb_fwlc.c BUG/MEDIUM: lb-leastconn: Reposition a server using the right eweight 2020-12-14 09:52:34 +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: listener: now use a generic add_listener() function 2020-12-04 15:08:00 +01:00
log.c MINOR: muxes: Add exit status for errors about not implemented features 2021-01-21 15:21:12 +01:00
lru.c
mailers.c
map.c MEDIUM: pattern: only match patterns that match the current generation 2020-11-05 19:27: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 MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
mux_h1.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
mux_h2.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
mux_pt.c MINOR: xprt/mux: export all *_io_cb functions so that "show fd" resolves them 2021-01-20 17:17:39 +01:00
mworker-prog.c CLEANUP: mworker: remove duplicate pointer tests in cfg_parse_program() 2021-01-05 15:58:37 +01:00
mworker.c BUG/MINOR: mworker: define _GNU_SOURCE for strsignal() 2021-01-21 12:16:52 +01:00
namespace.c
pattern.c CLEANUP: pattern: rename pat_ref_commit() to pat_ref_commit_elt() 2021-01-15 14:11:59 +01:00
payload.c MINOR: config: Deprecate and ignore tune.chksize global option 2020-11-27 10:30:23 +01:00
peers.c BUG/MINOR: peers: Wrong "new_conn" value for "show peers" CLI command. 2021-01-19 10:08:18 +01:00
pipe.c
pool.c MEDIUM: pools: call malloc_trim() from pool_gc() 2020-11-05 19:27:08 +01:00
proto_quic.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 17:32:03 +01:00
proto_sockpair.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
proto_tcp.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
proto_udp.c MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver() 2020-12-08 18:10:18 +01:00
proto_uxst.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
protocol.c MINOR: protocol: remove the redundant ->sock_domain field 2020-12-08 12:13:54 +01:00
proxy.c BUG/MEDIUM: stream: Don't immediatly ack the TCP to H1 upgrades 2021-01-28 16:27:48 +01: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 BUG/MEDIUM: queue: fix unsafe proxy pointer when counting nbpend 2020-10-24 12:57:41 +02:00
quic_cc_newreno.c MINOR: quic: Add traces to congestion avoidance NewReno callback. 2020-12-23 11:57:26 +01:00
quic_cc.c MINOR: quic: Import C source code files for QUIC protocol. 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 MINOR: quic: QUIC socket management finalization. 2020-12-23 11:57:26 +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
regex.c
ring.c
sample.c BUG/MINOR: sample: Memory leak of sample_expr structure in case of error 2021-01-12 17:00:59 +01:00
server.c MINOR: ssl: Remove client_crt member of the server's ssl context 2021-01-26 15:19:36 +01:00
session.c MINOR: session: Add the idle duration field into the session 2020-12-04 14:41:48 +01:00
sha1.c
shctx.c
signal.c
sink.c BUG/MINOR: sink: Return an allocation failure in __sink_new if strdup() fails 2021-01-03 20:35:45 +01:00
sock_inet.c MINOR: protocol: add a ->set_port() helper to address families 2020-12-04 15:08:00 +01:00
sock_unix.c CLEANUP: protocol: remove the now unused <handler> field of proto_fam->bind() 2020-10-15 21:47:56 +02:00
sock.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
ssl_ckch.c BUG/MINOR: ssl: init tmp chunk correctly in ssl_sock_load_sctl_from_file() 2021-01-27 14:58:51 +01:00
ssl_crtlist.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
ssl_sample.c BUILD: ssl: use HAVE_OPENSSL_KEYLOG instead of OpenSSL versions 2020-11-03 14:54:15 +01:00
ssl_sock.c CLEANUP: ssl: remove dead code in ckch_inst_new_load_srv_store() 2021-01-27 14:44:59 +01:00
ssl_utils.c
stats.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
stick_table.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
stream_interface.c MEDIUM: stream-int: Take care of EOS if the SI wake callback function 2021-01-28 16:22:04 +01:00
stream.c MINOR: stream: Add a function to validate TCP to H1 upgrades 2021-01-28 16:27:48 +01:00
task.c BUG/MEDIUM: task: close a possible data race condition on a tasklet's list link 2020-11-30 18:17:59 +01:00
tcp_act.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
tcp_rules.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
tcp_sample.c MINOR: listener: prefer to retrieve the socket's settings via the receiver 2020-09-16 22:08:07 +02:00
tcpcheck.c MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead 2021-01-28 16:37:14 +01:00
thread.c BUG/MINOR: threads: Fixes the number of possible cpus report for Mac. 2021-01-15 11:58:46 +01:00
time.c
tools.c CLEANUP: tools: make resolve_sym_name() take a const pointer 2021-01-20 17:17:39 +01:00
trace.c BUG/MINOR: trace: Wrong displayed trace level 2020-12-02 17:44:40 +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 MINOR: vars: replace static functions with global ones 2020-12-16 14:20:08 +01:00
version.c
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: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
xprt_handshake.c MINOR: xprt/mux: export all *_io_cb functions so that "show fd" resolves them 2021-01-20 17:17:39 +01:00
xprt_quic.c MINOR: xprt/mux: export all *_io_cb functions so that "show fd" resolves them 2021-01-20 17:17:39 +01:00