Changes since version 2.4-dev2 : Christopher Faulet (43): BUG/MINOR: mux-h1: Handle keep-alive timeout for idle frontend connections MINOR: session: Add the idle duration field into the session MINOR: mux-h1: Update session idle duration when data are received MINOR: mux-h1: Reset session dates and durations info when the CS is detached MINOR: logs: Use session idle duration when no stream is provided MINOR: stream: Always get idle duration from the session MINOR: stream: Don't retrieve anymore timing info from the mux csinfo MINOR: mux-h1: Don't provide anymore timing info using cs_info structure MINOR: muxes: Remove get_cs_info callback function now useless MINOR: stream: Pass an optional input buffer when a stream is created MINOR: mux-h1: Add a flag to disable reads to wait opposite side MEDIUM: mux-h1: Use a h1c flag to block reads when splicing is in-progress MINOR: mux-h1: Introduce H1C_F_IS_BACK flag on the H1 connection MINOR: mux-h1: Separate parsing and formatting errors at H1 stream level MINOR: mux-h1: Split front/back h1 stream creation in 2 functions MINOR: mux-h1: Add a rxbuf into the H1 stream MINOR: mux-h1: Don't set CS flags in internal parsing functions MINOR: mux-h1: Add embryonic and attached states on the H1 connection MINOR: mux-h1: rework the h1_timeout_task() function MINOR: mux-h1: Reset more H1C flags when a H1 stream is destroyed MINOR: mux-h1: Disable reads if an error was reported on the H1 stream MINOR: mux-h1: Rework how shutdowns are handled MINOR: mux-h1: Rework h1_refresh_timeout to be easier to read MINOR: mux-h1: Process next request for IDLE connection only MINOR: mux-h1: Add a idle expiration date on the H1 connection MINOR: stick-tables: Add functions to update some values of a tracked counter MINOR: session: Add functions to increase http values of tracked counters MINOR: mux: Add a ctl parameter to get the exit status of the multiplexers MINOR: logs: Get the multiplexer exist status when no stream is provided MINOR: mux-h1: Add functions to send HTTP errors from the mux MAJOR: mux-h1: Create the client stream as later as possible DOC: config: Add notes about errors emitted by H1 mux CLEANUP: mux-h1: Rename H1C_F_CS_* flags and reorder H1C flags MINOR: http-ana: Remove useless update of t_idle duration of the stream CLEANUP: htx: Remove HTX_FL_UPGRADE unsued flag MEDIUM: http-ana: Don't process partial or empty request anymore CLEANUP: http-ana: Remove TX_WAIT_NEXT_RQ unsued flag CLEANUP: connection: Remove CS_FL_READ_PARTIAL flag REGTESTS: Fix proxy_protocol_tlv_validation MINOR: http-ana: Properly set message flags from the start-line flags MINOR: h1-htx/http-ana: Set BODYLESS flag on message in TUNNEL state BUG/MEDIUM: stream: Xfer the input buffer to a fully created stream BUG/MINOR: stream: Don't use input buffer after the ownership xfer David Carlier (1): BUILD/MINOR: haproxy DragonFlyBSD affinity build update. Emeric Brun (1): BUG/MAJOR: ring: tcp forward on ring can break the reader counter. Frédéric Lécaille (1): BUG/MINOR: trace: Wrong displayed trace level Maciej Zdeb (1): MINOR: log: Logging HTTP path only with %HPO Phil Scherer (1): DOC/MINOR: Fix formatting in Management Guide Remi Tricot-Le Breton (6): MINOR: cache: Improve accept_encoding_normalizer MINOR: cache: Add entry to the tree as soon as possible MINOR: cache: Do not store stale entry MINOR: cache: Add extra "cache-control" value checks MEDIUM: cache: Remove cache entry in case of POST on the same resource MINOR: cache: Consider invalid Age values as stale Thierry Fournier (28): BUG/MINOR: lua: missing "\n" in error message BUG/MINOR: lua: lua-load doesn't check its parameters BUG/MINOR: lua: Post init register function are not executed beyond the first one BUG/MINOR: lua: Some lua init operation are processed unsafe MINOR: actions: Export actions lookup functions MINOR: actions: add a function returning a service pointer from its name MINOR: cli: add a function to look up a CLI service description BUG/MINOR: lua: warn when registering action, conv, sf, cli or applet multiple times MINOR: lua-thread: remove struct hlua from function hlua_prepend_path() MEDIUM: lua-thread: make hlua_post_init() no longer use the runtime execution function MINOR: lua-thread: hlua_ctx_renew() is never called with main gL lua state MINOR: lua-thread: Use NULL context for main lua state MINOR: lua-thread: Stop usage of struct hlua for the global lua state MINOR: lua-thread: Replace embedded struct hlua_function by a pointer MINOR: lua-thread: Split hlua_init() function in two parts MINOR: lua-thread: make hlua_ctx_init() get L from its caller MINOR: lua-thread: Split hlua_load function in two parts MINOR: lua-thread: Split hlua_post_init() function in two parts MINOR: lua-thread: Add the "thread" core variable MEDIUM: lua-thread: No longer use locked context in initialization parts MEDIUM: lua-thread: Apply lock only if the parent state is the main thread MINOR: lua-thread: Replace global gL var with an array of states MINOR: lua-thread: Replace "struct hlua_function" allocation by dedicated function MINOR: lua-thread: Replace state_from by state_id MINOR: lua-thread: Store each function reference and init reference in array MEDIUM: lua-thread: Add the lua-load-per-thread directive MINOR: lua-thread: Add verbosity in errors BUG/MEDIUM: lua-thread: some parts must be initialized once William Lallemand (1): MEDIUM: ssl: fatal error with bundle + openssl < 1.1.1 Willy Tarreau (12): BUG/MINOR: mux-h2/stats: make stream/connection proto errors more accurate MINOR: traces: add a new level "error" below the "user" level MINOR: mux-h2/trace: add traces at level ERROR for protocol errors BUG/MINOR: mux-h2/stats: not all GOAWAY frames are errors MINOR: lua: simplify hlua_alloc() to only rely on realloc() MEDIUM: lua-thread: use atomics for memory accounting REGTESTS: add a test for the threaded Lua code BUG/MINOR: lua-thread: close all states on deinit BUG/MINOR: listener: use sockaddr_in6 for IPv6 MINOR: protocol: add a ->set_port() helper to address families MINOR: listener: automatically set the port when creating listeners MINOR: listener: now use a generic add_listener() function