Changes since version 3.0-dev2 : Abhijeet Rastogi (1): DOC: install: recommend pcre2 Amaury Denoyelle (16): MINOR: h3: add traces for stream sending function BUG/MEDIUM: h3: do not crash on invalid response status code BUG/MEDIUM: qpack: allow 6xx..9xx status codes BUG/MEDIUM: quic: fix crash on invalid qc_stream_buf_free() BUG_ON BUG/MINOR: ssl/quic: fix 0RTT define MINOR: mux-quic: prepare for earlier flow control update MINOR: mux-quic: define a flow control related type MEDIUM: mux-quic: limit stream flow control on snd_buf MEDIUM: mux-quic: limit conn flow control on snd_buf MINOR: mux-quic: remove unneeded sent-offset fields MINOR: mux-quic: check fctl during STREAM frame build MAJOR: mux-quic: remove intermediary Tx buffer MEDIUM: mux-quic: simplify sending API MEDIUM: mux-quic: release Tx buf on too small room MEDIUM: mux-quic: properly handle conn Tx buf exhaustion MINOR: mux-quic: realign Tx buffer if possible Aurelien DARRAGON (17): CLEANUP: connection: remove obsolete comment in header file OPTIM: connection: progressive hash for conn_calculate_hash() MINOR: tcp_act: fix alphabetical ordering of tcp request content actions MINOR: tcp-act: Rename "set-{mark,tos}" to "set-fc-{mark,tos}" MINOR: hlua: Rename set_{tos, mark} to set_fc_{tos, mark} MEDIUM: tcp-act: support for set-fc-{mark,tos} actions MEDIUM: tcp-act/backend: support for set-bc-{mark,tos} actions DOC: config: fix typo for '%ms' log format alternative DOC: config: fix ordering for "txn.*" fetches MINOR: stream: add "txn.redispatch" fetch BUILD: debug: remove leftover parentheses in ABORT_NOW() DOC: config: fix misplaced "txn.conn_retries" DOC: config: fix typos for "bytes_{in,out}" DOC: config: fix misplaced "bytes_{in,out}" DOC: config: add more custom log format table alternatives MINOR: stream: rename "txn.redispatch" to "txn.redispatched" MINOR: sample: implement bc_{be,srv}_queue samples Christopher Faulet (57): BUG/MINOR: h1: Don't support LF only at the end of chunks BUG/MEDIUM: h1: Don't support LF only to mark the end of a chunk size MINOR: stats: Be able to access to registered stats modules from anywhere MEDIUM: stats: Be able to access a specific field into a stats module MINOR: promex: Add a param to override the description when a metric is dumped MINOR: promex: Add info in the promex context to dump extra counters MEDIUM: promex: Dump frontends extra counters if requested MEDIUM: promex: Dump backends extra counters if requested MEDIUM: promex: Dump servers extra counters if requested MEDIUM: promex: Dump listeners extra counters if requested DOC: promex: Add documentation about extra-counters MINOR: promex: Always limit the number of labels dumped for each metric MEDIUM: promex: Simplify the context using generic pointers for restart points MINOR: promex: Remove unsued htx parameter when a metric is dumped MEDIUM: promex: Add a registration mechanism to support modules MEDIUM: promex: Dump metrics of registered modules with a way to filter them MEDIUM: promex/stick-table: Dump stick-table metrics via a promex module MEDIUM: promex/resolvers: Dump resolvers metrics via a promex module MINOR: promex: Rename dump functions to use the right wording MINOR: promex: Always pass the final name and description to promex_dmp_ts() MEDIUM: promex: Add support for filters on metric names REGTESTS: promex: Adapt script to be less verbose MINOR: task: Move wait_event in the task header file MINOR: stconn: Be able to detect applets using HTX MINOR: stconn: Explicitly use an appctx to attach a stconn on it MINOR: stconn: Be prepared to handle error when a SC is attached to an applet MINOR: applet: Add dedicated IN/OUT buffers for appctx MINOR: applet: Add traces to debug receive/send and block/wake events MINOR: applet: Add support for callback functions to exchange data with channels MINOR: applet: Implement default functions to exchange data with channels MEDIUM: stconn: Add functions to handle applets I/O from the SC layer MEDIM: applet: Add the applet handler based on IN/OUT buffers MINOR: applet: Show IN/OUT buffers in trace messages when used MINOR: applet: Add flags on the appctx and stop abusing its state MINIOR: applet: Add flags to deal with ends of input, ends of stream and errors MINOR: applet: Remove appctx state field to only used the flags MINOR: applet: Add an appctx flag to report shutdown to applets MEDIUM: applet: Use appctx flags to report EOS/EOI/ERROR to SE MINOR: applet: Add callback function to deal with zero-copy forwarding MEDIUM: applet: Add support for zero-copy forwarding from an applet MINOR: applet: Automatically handle applets having more data for the stream MEDIUM: stats: Don't interrupt processing on partial post MAJOR: stats: Update HTTP stats applet to handle its own buffers MEDIUM: cache: Temporarily remove zero-copy forwarding support MAJOR: cache: Update HTTP cache applet to handle its own buffers MAJOR: cache: Send cached objects using zero-copy forwarding MINOR: stconn: Add support for flags during zero-copy forwarding negotiation MINOR: mux-h1: Be able to define the length of a chunk size when it is prepended MEDIUM: stconn: Nofify requested size during zero-copy forwarding nego is exact MINOR: mux-h1: Stop zero-copy forwarding during nego for too big requested size MEDIUM: mux-h1: Support zero-copy forwarding for chunks with an unknown size MAJOR: stats: Send stats dump over HTTP using zero-copy forwarding MEDIUM: applet: Simplify a bit API to exchange data with applets MINOR: cache: Remove unsed .data_sent field from the cache applet context MINOR: applet: Use an option to disable zero-copy forwarding for all applets MINOR: applet: Identify applets using their own buffers via a flag BUG/MINOR: applet: Always release empty appctx buffers after processing Frederic Lecaille (5): BUG/MINOR: quic: Wrong ack ranges handling when reaching the limit. BUILD: quic: Variable name typo inside a BUG_ON(). CLEANUP: quic: Code clarifications for QUIC CUBIC (RFC 9438) BUG/MINOR: quic: fix possible integer wrap around in cubic window calculation MINOR: quic: Stop using 1024th of a second. Ilya Shipitsin (2): CI: github: abandon asan matrix.py helper CI: ssl: add yet another OpenSSL download fallback Lukas Tribus (2): DOC: httpclient: add dedicated httpclient section DOC: install: clarify WolfSSL chroot requirements Miroslav Zagorac (1): CLEANUP: log: deinitialization of the log buffer in one function Olivier Houchard (1): BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions Remi Tricot-Le Breton (9): BUG/MINOR: ssl: Fix error message after ssl_sock_load_ocsp call BUG/MINOR: ssl: Duplicate ocsp update mode when dup'ing ckch MINOR: ssl: Use OCSP_CERTID instead of ckch_store in ckch_store_build_certid BUG/MINOR: ssl: Clear the ckch instance when deleting a crt-list line BUG/MEDIUM: ocsp: Separate refcount per instance and per store BUG/MINOR: ssl: Destroy ckch instances before the store during deinit BUG/MINOR: ssl: Reenable ocsp auto-update after an "add ssl crt-list" REGTESTS: ssl: Add OCSP related tests REGTESTS: ssl: Fix empty line in cli command input Thayne McCombs (1): DOC: configuration: clarify http-request wait-for-body Tim Duesterhus (1): CI: Update to actions/cache@v4 William Lallemand (3): MINOR: ssl: add HAVE_SSL_0RTT constant MINOR: ssl: rename HA_OPENSSL_HAVE_0RTT_SUPPORT constant to HAVE_SSL_0RTT_QUIC MEDIUM: ssl/quic: always compile the ssl_conf.early_data test Willy Tarreau (31): BUG/MINOR: h1-htx: properly initialize the err_pos field BUG/MEDIUM: h1: always reject the NUL character in header values CLEANUP: h1: remove unused function h1_measure_trailers() MINOR: compiler: add a new DO_NOT_FOLD() macro to prevent code folding MINOR: debug: make sure calls to ha_crash_now() are never merged MINOR: debug: make ABORT_NOW() store the caller's line number when using abort BUG/MINOR: diag: always show the version before dumping a diag warning BUG/MINOR: diag: run the final diags before quitting when using -c MINOR: acl: add extra diagnostics about suspicious string patterns MINOR: debug: make BUG_ON() catch build errors even without DEBUG_STRICT MINOR: debug: support passing an optional message in ABORT_NOW() MINOR: debug: add an optional message argument to the BUG_ON() family DEBUG: make the "debug dev {debug|warn|check}" command print a message BUG/MINOR: mux-h2: count rejected DATA frames against the connection's flow control MINOR: mux-h2: count excess of CONTINUATION frames as a glitch MINOR: mux-h2: count late reduction of INITIAL_WINDOW_SIZE as a glitch DOC: internal: update missing data types in peers-v2.0.txt MEDIUM: stick-tables: add a new stored type for glitch_cnt and glitch_rate MINOR: session: add the necessary functions to update the per-session glitches MEDIUM: mux-h2: update session trackers with number of glitches BUG/MINOR: server/cli: add missing LF at the end of certain notice/error lines BUG/MINOR: vars/cli: fix missing LF after "get var" output BUG/MEDIUM: cli: fix once for all the problem of missing trailing LFs MINOR: cli: make sure to always print a pending message after release() MINOR: cli: always reset the applet task's timeout MINOR: cli: add a new "wait" command to wait for a certain delay MINOR: server: split the server deletion code in two parts MINOR: cli/wait: make the wait command support a more detailed help message MINOR: cli/wait: also support an unrecoverable failure status MINOR: cli/wait: also pass up to 4 arguments to the external conditions MINOR: cli/wait: add a condition to wait on a server to become unused