Changelog

version 3.4r1



2026/10/09 : 3.4r1 (1.0.0-381.448) - BUG/MAJOR: h1-htx: report an error on a too long chunk-size line - BUG/MAJOR: mux-h2: properly handle short reads on PING frames - REGTESTS: http-messaging: Fix http_fail_cnt_body to succeed with small timeouts - BUG/MEDIUM: mux-h1: only accept the H2 preface on the first request - BUG/MINOR: http-fetch: don't report pseudo-headers in TCP mode - BUG/MEDIUM: mux-h1: also release the embryonic stream when the error is empty - BUG/MEDIUM: mux-h2: fix a possible crash on rxbuf allocation failure - BUG/MEDIUM: mux-h2: report a dead rhttp connection in h2_wake() - BUG/MEDIUM: mux-h1: don't pass an upgraded connection to traces in h1s_destroy() - BUG/MEDIUM: mux-fcgi: don't return a freed tasklet from fcgi_deferred_shut() - BUG/MEDIUM: mux-h2: don't return a freed tasklet from h2_deferred_shut() - BUG/MINOR: hlua: assume proxy_find_by_id() may return NULL on previously existing server - BUG/MINOR: spoe: Fix the message list splice with an empty list - REGTESTS: log: check that a log-forward TCP session ends on client close - BUG/MEDIUM: log: do not ignore the peer's shutdown in the syslog applet - REGTESTS: cli: test a command line of exactly tune.bufsize bytes - BUG/MEDIUM: cli: fix the last command detection on a full command line - BUG/MINOR: cfgparse-listen: complete the list of options for the suggestions - BUG/MINOR: proxy: also look for the closest option among cfg_opts3 - BUG/MINOR: cfgparse-listen: properly reject extra args in a backend section - BUG/MINOR: cfgparse-listen: fix quoting of the condition conflict warning - BUG/MINOR: cfgparse-listen: fix the argument checked by "email-alert" - BUG/MINOR: cfgparse-listen: release the previous description of the proxy - BUG/MINOR: cfgparse-global: add missing calloc() check for the global description - BUG/MINOR: cfgparse-global: add missing gotos to error label in max-spread-checks - BUG/MAJOR: cfgparse: properly check userlist section when scanning keywords - MINOR: doc: elaborate on diagnostic mode behavior - BUG/MINOR: ssl: Fix potential NULL-deref in "dump ssl cert" with AWS-LC - BUG/MINOR: h3: reject RS/SS for QPACK uni streams - BUG/MINOR: h3: close connection on GOAWAY frame too long - BUG/MINOR: h3: reject frames with truncated header - BUG/MINOR: mux_quic: extend FINAL_SIZE_ERROR detection on stream - BUG/MINOR: ssl: use standard names for X25519 and X448 groups - BUG/MEDIUM: listener: Consider maxconn before waking listeners - BUG/MEDIUM: ssl: crt-list curves ignored with AWS-LC - BUG/MEDIUM: ssl: crt-list ciphers ignored with AWS-LC - BUG/MINOR: ssl: fix trace crash on BE conn release in io cb - BUG/MINOR: ssl: fix trace crash on FE conn release in io cb - BUG/MINOR: hq-interop: prevent double EOM on request with standalone FIN - BUG/MINOR: log: fix erroneous error message in log-steps parser - MINOR: http-ana: automatically enable http-no-delay for streaming events (SSE) - BUG/MINOR: cli: update wait help usage - BUG/MINOR: server: fix "del server" description - BUG/MINOR: proxy: add PR_CAP_LB for dynamically added backend - DOC: config: mention that url_ip and url_port fail when passed a name - DOC: config: fix doc for hex2i() converter on unparsable input - DOC: config: mention other responses not blocked by option checkcache - BUG/MINOR: sample: return the decoded JWT part when no path is given - BUG/MEDIUM: tcpcheck: do not run a regex on an unallocated buffer - BUG/MINOR: http-fetch: do not count Set-Cookie attributes as cookies - BUG/MINOR: payload: always report a boolean from req.ssl_ec_ext - BUG/MINOR: stick-table: do not count the lookup itself in table_trackers() - BUG/MINOR: http-ana: return a 502 when checkcache blocks a response - BUG/MINOR: sample: make quic_enabled() always succeed - BUG/MINOR: sample: zero-pad the fractional part emitted by http_date() - BUG/MINOR: sample: apply the ms_/us_ time offsets in the input unit - BUG/MINOR: http: do not consume the delimiter of a truncated q-factor - BUG/MINOR: jwe: Avoid buffer overflow in fake cek (RSA1.5) - BUG/MINOR: jwe: Buffer overflow when filling fake cek in case of RSA1.5 - BUG/MEDIUM: pattern: don't dereference static_pattern's data when not filling it - BUG/MEDIUM: stick-table: restrict key sizes to what fits in a buffer - MINOR: stick-table: calculate the on-wire size of each key - MINOR: stick-table: provide a function to estimate on-wire data size - BUILD: haring: fix compile issue due to nop warning. - MINOR: stconn: prefer to replace endpoints rather than detaching them - BUG/MINOR: flt-http-comp: Rely on htx_set_eom() to restore EOM flag - BUG/MEDIUM: flt-http-comp: Block HTX_FL_EOM flag till the end of compression - MINOR: quic: implement the AEAD integrity limit - MEDIUM: jwt: Reject "none" alg in jwt_verify by default - MINOR: stats: report the SSL library FIPS mode in "show info" - MINOR: ssl: report FIPS mode in -vv for OpenSSL >= 3.0 too - MEDIUM: ssl: add fips_mode() config condition predicate - MINOR: hapee: update to new URLs - BUILD: ssl: avoid mixed declarations in the AWS-LC curve fetch - MINOR: ssl: support curve fetches with AWS-LC API 30 - REGTESTS: log: check that a ring's internal server may target a UNIX socket - BUG/MEDIUM: server: skip log backend addr checks for internal proxies - BUG/MEDIUM: sink: reconnect attempt not working after session lasted more than ~25 days - BUG/MAJOR: mux_quic: fix potential crash on RESET_STREAM receive - MINOR: log: add the +utf8 encoding option to let valid UTF-8 pass - MINOR: log: pass the input end to the _lf_encode_bytes() byte encoders - BUG/MINOR: mux-h2: Reject trailers received on a tunneled stream - REGTESTS: log: check the escaping performed by the +json option - BUG/MEDIUM: log: encode the whole non-printable range in the +json output 2026/09/24 : 3.4r1 (1.0.0-381.364) - BUG/MEDIUM: mux_quic: activate timeout on FE init - BUG/MAJOR: mux_quic: fix leak on RESET_STREAM reception - BUG/MINOR: http-ana: restore the transaction status after early hints - BUG/MINOR: tcpcheck: refresh the start-line after updating the authority - BUG/MINOR: mux-h1: only mark C-L and T-E as sent once the header is emitted - BUG/MINOR: http-fetch: fix the space check of http_auth_bearer(<hdr>) - BUG/MINOR: http-fetch: http_auth_bearer() must not match a missing header - BUG/MINOR: http-ana: count response body failures only once in http_fail_cnt - BUG/MEDIUM: tcp-rules: ignore "capture len" rules evaluated from a backend - BUG/MEDIUM: http-act: ignore "capture len" rules evaluated from a backend - BUG/MEDIUM: http-htx: don't build the new authority in a rotating trash chunk - BUG/MEDIUM: log: reserve the trailing 0 in CBOR int and bool encoders - REG-TESTS: http-messaging: Add a script to test interim responses for H1/H2 - BUG/MINOR: mux-h2: Don't expect more HTX data on 1xx interim responses - BUG/MINOR: http-client: Convert server timeout ticks when setting it - BUG/MINOR: ssl: Fix possible null deref on the SSL context in ssl_sock_to_buf() - BUG/MINOR: hlua: release private Lua rule data on teardown - BUG/MAJOR: htx: Check the header/trailer length limits when one is updated - BUG/MINOR: tools: Don't try to anonymize a NULL string - BUG/MEDIUM: htx: Fix the position returned by htx_defrag() - BUG/MEDIUM: http-client/cli: Notify the http-client when the response is consumed - MINOR: http-client: Add a function to notify some data were consumed - BUG/MEDIUM: acme: Set HTTPCLIENT_O_RES_ACCUM option on the http-client - BUG/MEDIUM: ssl/ocsp: Set HTTPCLIENT_O_RES_ACCUM option on the http-client - MINOR: http-client: Add an option to not stop the reception of the response - BUG/MEDIUM: http-client: Don't use the httpclient context if it was released - BUG/MEDIUM: task: Do not destroy a task that is not ours in task_destroy 2026/09/19 : 3.4r1 (1.0.0-381.337) - OPTIM: tools: keep a cache of recent localtime() and gmtime() - MAJOR: filters: Revert the filter-sequence directive - BUG/MINOR: proxy: pass PR_FL_DEF_EXPLICIT_MODE through cascaded defaults - BUG/MEDIUM: tcp-rules: Don't restart tcp-request content evaluation on yield - CLEANUP: stream: Remove an excess newline in the stream dump - BUG/MEDIUM: htx: Reserve a block descriptor for zero-sized blocks - BUG/MEDIUM: ssl: don't set a 0 timeout on an expired TLS session - DOC: configuration: clarify the validity ranges of sample types - REGTESTS: http-rules: check "-m str" on a sample with an embedded \0 - BUG/MINOR: sample: reject a \0 byte in url_dec, json_query and jwt_*_query - BUG/MINOR: ssl: Fix leak of ca_list in cafile_entry - BUG/MINOR: cli: Reject payload with no command - BUG/MEDIUM: cli: Don't read a command or payload line into a full buffer - BUG/MEDIUM: cli: Don't parse next command if input buffer is empty - BUG/MEDIUM: http_act: fix normalize-uri normalizer selection with a condition - REGTESTS: map: check map_regm inside an ACL over an iterating fetch - BUG/MEDIUM: map: do not overwrite the fetch context in pat_match_regm() - BUG/MINOR: ssl: don't pass the address of a size_t as an int* to OpenSSL - BUG/MEDIUM: http-ana: apply tunnel timeout with data filters - BUG/MINOR: h3: only increment frame type counter on new header - BUG/MINOR: h3: handle unknown frame type on request stream as specified - BUG/MINOR: h3: handle empty HEADERS frame as specified - BUG/MEDIUM: h3: do not block FIN on empty DATA frame - BUG/MINOR: h3: reject truncated frames with mandatory payload - BUG/MINOR: stream/debug: harden the stream dump function regarding signals - BUG/MEDIUM: htx: Don't reset flags when source must be preserved during transfer - BUG/MINOR: hlua: Always return nil if there is no data to dup for HTTP messages - BUG/MINOR: mux-h1: Return an error on trailers if last chunk is unfinished - BUG/MEDIUM: hlua: Never release a cosocket applet from the GC - DOC: config: clarify tune tune.bufsize doc regarding various limits - BUG/MINOR: quic: leak of the NEW_TOKEN frame on token generation failure - BUG/MAJOR: h3: reject H3 truncated frames - BUG/MEDIUM: mux-h2: Make sure we remove H2_SF_NOTIFIED on subscribe - MEDIUM: mux-h1: Harden test for short data at end of stream - REGTESTS: log: check that the +cbor output passes the logged bytes through - DOC: config: mention that section 8.6 does not apply to the cbor encoding - REGTESTS: log: check which log-format tags escape control characters - REGTESTS: log: add a test for "show events -s" - MINOR: ring: add "-s" flag to "show events" to sanitize the output - BUG/MINOR: quic: delete the wrong CIDs when post-handshake frames fail - BUG/MINOR: qpack: accept a Required Insert Count which cannot be reached - BUG/MINOR: qpack: encoder and decoder stream data is never consumed - MINOR: quic: protect the ChaCha20 header protection context from being freed - CLEANUP: resolvers: stop clearing the DNS response buffer - BUG/MINOR: resolvers: classify empty truncated responses - BUN/MINOR: hlua: reset hlua_body variable after per-thread files loading - BUG/MEDIUM: filters: check the filter name before comparing it - BUG/MINOR: quic: late packets of the first key phase are dropped - BUG/MEDIUM: quic: crash on key update phase change after a failed one - BUG/MINOR: payload: bound ClientHello extension lists by the extension length - BUG/MINOR: payload: fix the cipher_len bound check in smp_client_hello_parse() - BUG/MEDIUM: mux-spop: Properly handle parsing of split HELLO/DISCONNECT frames - OPTIM: server: remember the lowest known unused server ID - BUG/MINOR: cache: Seed cache primary hash - BUG/MINOR: cache: Manage collisions on primary key 2026/09/16 : 3.4r1 (1.0.0-380.282) - BUG/MEDIUM: sink: do not create one implicit ring per logger copy - BUG/MEDIUM: sink: initialize the settings of the implicit log server - BUG/MINOR: flt-http-comp: Don't read next block to detect end of data - BUG/MINOR: fcgi-app: allow explicit filter declaration with non-cache/non-compression filters - BUG/MEDIUM: cache: ignore cache on redundant origin/referer - REGTESTS: converters: use connection: close in the has_ctl() test - MINOR: debug: check the match count in __BUG_ON_ONCE() and not in complain() - MINOR: sample: add new converter has_ctl() to detect control characters - DOC: haterm: add a missing 'haterm' build target on an example - BUG/MEDIUM: sink: do not hold the sft lock around ring_dispatch_messages() - BUG/MEDIUM: connection: fix an infinite loop in the fc_pp_tlv() fetch - MEDIUM: mux-h2: don't report EOM on a short content-length message - BUG/MEDIUM: mux-h1: close the connection on a short content-length - BUILD: ssl: avoid a potential null-dereference warning on OpenSSL 1.0.2 - BUG/MINOR: hbuf: treat unexpected escape sequences as literals - BUG/MINOR: ech: fix label at end of compound statement - BUG/MEDIUM: mux-fcgi: check the room left before appending the index - BUG/MEDIUM: sink: pre-initialize the implicit log forwarding server - BUG/MINOR: resolvers: accept fields at the response boundary - BUG/MINOR: ssl/cli: fix frontend-not-found detection in 'show ssl sni -f' - BUG/MINOR: haproxy: fix out-of-scope tmpdir usage in do_chroot() - BUG/MEDIUM: ssl: isolate TLS session resumption per authentication policy - BUG/MINOR: ssl: isolate TLS session resumption per crt-list filter - BUG/MEDIUM: ssl: isolate TLS session resumption per X509 server certificate - BUILD: ssl: disable the TLS1.3 session timeout clamp on wolfSSL - BUG/MINOR: ssl: apply tune.ssl.lifetime to TLS1.3 sessions on BoringSSL/AWS-LC - BUG/MEDIUM: ssl: enforce tune.ssl.lifetime across TLS1.3 session renewals - BUG/MEDIUM: ssl: Fix unprotected 'ssl_sock_choose_sni_ctx' calls - BUG/MINOR: ssl: release the previous client cert reference at depth > 0 - BUG/MINOR: ssl: Fix leak of X509_NAME in traces - BUG/MINOR: conn: Do not check 'sess_el' list on frontend connections in __trace_enabled - BUG/MINOR: mux-h2: harden h2_dump_h2s_info() against potentially null h2s->sd - BUG/MINOR: log: fix double-free error when error in parse_loger occurs - BUG/MINOR: qpack: missing shift count check in qpack_get_varint() (UB) - BUG/MINOR: spoe: check snprintf() return value in spoe_set_var/spoe_unset_var - BUG/MINOR: payload: fix handshake length off-by-4 in ssl_hello_sni/alpn - BUG/MEDIUM: bwlim: fix a stick-table entry leak in shared mode - DOC: security: clarify that only up-to-date versions may get securty reports - BUG/MEDIUM: http: fix authority parsing for absolute-form URI with empty path - BUG/MINOR: server: fix off-by-one error when parsing and copying source port range - BUG/MINOR: quic: avoid a division by zero in the BBR pacing interval - BUG/MINOR: ssl: reject an embedded NUL in the full-DN ssl_*_dn() fetches - BUG/MINOR: ssl: reject an embedded NUL in the ssl_*_dn(entry) fetches - BUG/MEDIUM: cache: do not release an entry under the cache read lock - BUG/MEDIUM: cache: retain the primary or secondary entry only when detaching its row - DOC: config: clarify req.ssl_sni - BUG/MEDIUM: hlua_fcn: ensure systematic bref cleanup for patref list iterator - BUG/MEDIUM: lua: resume Channel:send() from the unsent part of the string - BUG/MINOR: quic: drop multiple Retry on same connection - BUG/MEDIUM: quic: prevent out-of-bound read on wrapping CRYPTO content - BUG/MINOR: mux-h2: strip the userinfo when deriving :authority for a server - BUG/MINOR: debug: only dump the trace once in __BUG_ON_ONCE() - BUG/MINOR: lb-chash: bound the walk when the saved cursor changed tree - BUG/MEDIUM: session: don't release a reversed connection twice on error - BUG/MINOR: connection: reserve the whole CRC32C TLV before saving its pointer - BUG/MINOR: acme: restrict the permissions of the generated account key - BUG/MINOR: ssl: reject server certificate names containing a NUL byte - BUG/MEDIUM: acme: don't delete a NULL token from the map - BUG/MEDIUM: ssl: require a full-length AEAD tag when decrypting with AES-GCM - BUG/MINOR: jwt: don't take an extra reference on the certificate public key - BUG/MEDIUM: jwe: validate the secret length against the algorithm of the token - BUG/MEDIUM: log: always reserve room for trailing 0 when using CBOR encoding helpers - MINOR: log/tools: fix ambiguous comments for some log encoding helpers - BUG/MINOR: mux-fcgi: sanitize the STDERR records before logging them - BUG/MEDIUM: http-ana: check the cookie rewrite result before moving the offsets - BUG/MEDIUM: sock: bound the recvmsg() length when receiving old sockets - BUG/MEDIUM: stick-tables: use the same bucket for string keys with a NUL - BUG/MEDIUM: http-ana: don't crash on "keep-query" in a response redirect - BUG/MINOR: mux-fcgi: don't call fcgi_strm_destroy() on a NULL stream - BUG/MEDIUM: spoe: clear the applet pointer when the applet fails to start - DEV: haring: bound the ring geometry to the size of the file - BUG/MINOR: hlua: use a local buffer to format the socket addresses - BUG/MINOR: stats-file: reject tgid 0 when preloading shm objects - BUG/MEDIUM: hpack: encode long methods and schemes using the long form - REGTESTS: proxy: complete "del backend" test - BUG/MINOR: proxy: release watcher in various commands on CLI abort - DOC: explain better that named defaults are preserved - MINOR: proxy: implement unpublished backend keyword - BUG/MINOR: proxy: fix default-server leak on post-parsing cleanup - BUG/MINOR: server: check strdup return value on server ID - BUG/MEDIUM: filter: Disable auto-close on channel during TCP payload filtering - BUG/MEDIUM: counters: preserve shared.tg pointer on 'clear counters all' - BUG/MINOR: ech: reject an ECH store with no usable private key - BUG/MINOR: ech: propagate error from load_echkeys() - BUG/MINOR: cli: do not reject the "/<fd>" form of "show fd" - BUG/MINOR: cli: use the current argument to parse the FD spec in "show fd" - BUG/MEDIUM: proxy: fix crash on delete first backend - IMPORT: cebtree: private: fix the duplicate detection in the lookup shortcut - BUG/MINOR: server: fix check reuse-pool in srv_settings_cpy() - BUG/MINOR: server: duplicate server alt_proto in srv_settings_cpy() - BUG/MINOR: server: fix QUIC on server-template - MINOR: server: improve parsing error for server-template - BUG/MAJOR: ssl/ocsp: lock the OCSP response around reads in the stapling callback - BUG/MEDIUM: sample: reject the deprecated protobuf group wire types - BUG/MEDIUM: peers: check the available room before encoding dict values - BUILD: ssl: Do not use SSL3_MT_KEY_UPDATE, hardcode 24 instead - BUG/MEDIUM: ssl: Put CO_ER_SSL_KEYUPDATE at the right place - DOC: ssl: Document tune.ssl.keyupdate-rate-limit - MEDIUM: ssl: Add a way to rate-limit TLSv1.3 KeyUpdate - CLEANUP: slz: clarify that the size promise applies to the stream, not to a call - BUG/MINOR: slz: avoid undefined shifts when building the word byte by byte - BUG/MINOR: slz: fix the adler32 accumulators signedness on 32-bit - BUG/MINOR: slz: do not append a block to an already finished stream - BUG/MEDIUM: slz: bound the bits wasted by the 9-bit literals - BUG/MINOR: slz: use the exact switch cost for the last literals of a block - CLEANUP: slz: fix the documented worst case size of flush() and finish() - BUG/MINOR: slz: do not read past the end of the input around the match loop - BUG/MINOR: http-rules: fix release of a failed "set-cookie-fmt" redirect rule - BUG/MINOR: htx: Transfer HTX_FL_EOM flag on success in htx_append_msg() - BUG/MINOR: htx: Perform raw copy for messages of same size in htx_copy_msg() - BUG/MEDIUM: tools: make string encoding possible to fail instead of truncating - BUG/MINOR: http-htx: check the strdup() of the "lf-string" http reply argument - BUG/MINOR: http-act: reject a negative capture id in the capture actions - BUG/MINOR: http-act: work on a copy of the sample in del-headers-bin - BUG/MINOR: http-act: restore the response buffer state in the early-hint action - BUG/MINOR: http-act: fix a double free of the map reference on a parsing error - BUG/MINOR: http-act: fix a double free of the regex on a rule parsing error - BUG/MINOR: http-ana: fix a one-byte over-read in the client-side cookie parser - BUG/MINOR: h3: don't use a block pointer to roll back a partial HTX conversion - BUG/MINOR: h2: don't use a block pointer to roll back a partial HTX conversion - BUG/MINOR: h1: report the right error position on authority/host mismatch - BUG/MINOR: http-htx: check the trash allocation in http_scheme_based_normalize() - BUG/MINOR: http: fix an out-of-bounds read in http_get_host_port() on empty host - BUG/MINOR: http-fetch: fix a NULL channel dereference in smp_fetch_body() - BUG/MEDIUM: http-fetch: reject a negative capture id in capture.{req,res}.hdr - BUG/MEDIUM: http-fetch: don't parse a non-HTTP check buffer as an HTX message - BUG/MINOR: http-htx: fix the length moved when removing a header value - BUG/MEDIUM: mux-h1: Always adjust case for all outgoing headers as expected - REORG: h1-htx: Move h1 headers map in h1-htx - DEBUG: fd: catch access attempts to closed FDs - BUG/MEDIUM: ssl: Handle non-application data record while splicing - BUG/MEDIUM: ssl: Spell HAVE_VANILLA_OPENSSL correctly - BUG/MEDIUM: proxy: protect "show errors" against backend deletion - BUG/MINOR: resolvers: do not index resolvers names in the proxies - BUG/MEDIUM: server: Properly check for streams before deletion - CI: hapee: update list of modules - CI: hapee: run modules CI with hapee-maint-3.4r1 branch - BUG/MEDIUM: proxy: protect show backend against be deletion - BUG/MEDIUM: proxy: protect "show servers ..." against backend deletion - BUG/MEDIUM: proxy: protect "show servers ..." against server deletion - DOC: remove outdated experimental mention on dynamic backends - DOC: fix typo in "del ssl ech" command - BUG/MINOR: sample: Fix bytes() when length it greater than remaining data - BUG/MEDIUM: sample: Adjust sample size capacity after pointer shift for ltrim() - BUG/MEDIUM: sample: Adjust sample size capacity after pointer shift for bytes() - BUG/MEDIUM: net-helper: Adjust sample size capacity after pointer shift - BUG/MINOR: mux-h1: Don't delay send if message with c-l was fully sent - REGTESTS: protobuf: add regression test for nested vs flat paths - BUG/MINOR: ssl: fix proxy lookup for show ssl sni - BUG/MEDIUM: protobuf: fix nested path bypass in field lookup - BUG/MEDIUM: protobuf: adjust sample size capacity after pointer shift - BUG/MEDIUM: ssl-gencert: Don't forget to free memory when done - DOC: stats: Document that stats admin is vulnerable to a CSRF attack - BUG/MEDIUM: stats: Ensure that Origin is valid on POSTs - BUG/MEDIUM: cache: reattach the row when a secondary entry is incomplete - DOC: stats: document the per-proxy byte count fields in the CSV list - MINOR: shctx: clamp shctx_row_data_get() reads against the offset - BUG/MINOR: shctx: fix shctx_row_data_get() when offset exceeds a block - BUG/MEDIUM: stats: subject "stats admin" accesses to "stats scope" filtering - MINOR: stats: factor the proxy vs scope check into its own function - BUG/MEDIUM: applet: Reenable reads in applet context if requesting a connection - BUG/MINOR: hlua: Apply socket timeout on server side only - MINOR: haterm: add note about QUIC usage on SSL port - BUG/MINOR: http-conv: Make url-dec failed if no space for trailing null byte - BUG/MINOR: stream: Fix custom max-retries initialization when setting backend - REGTESTS: Improve script testing the set-timeout action - BUG/MINOR: stream: Fix custom timeouts initialization when setting backend - MEDIUM: htx: Be sure size of headers never exceed regular buffer on update - MINOR: htx: Add a field to save the headers data size - BUG/MEDIUM: chunk: Review chunks usage to not retrieve a large buffer by error - MINOR: chunks: Add function to get a large/regular chunk depending on a buffer - BUG/MINOR: sample: Fix a possible underflow on be2hex for large chunk size - BUG/MEDIUM: tcpcheck: Add proxy used for healthcheck sections in proxies list - BUG/MEDIUM: fd: Fix a deadlock when closing other tgroups fds - BUG/MINOR: quic: ignore STREAM after MUX closure on BE side - BUG/MEDIUM: mux_quic: complete stream shutdown for read channel - MINOR: mux_quic: use separate error code for STOP_SENDING - BUG/MEDIUM: mux_quic: do not free QCS if STOP_SENDING to sent - BUG/MINOR: trace/quic_frame: use buf, not trace_buf in chunk_frm_appendf() - MINOR: trace: always pretend to use args when disabled - MINOR: compiler: add a macro to ignore all arguments - CLEANUP: traces: get rid of a few rare empty args in TRACE calls - BUILD: quic: workaround a gcc bug saying "maybe used uninitialized" when USE_TRACE=0 - BUG/MINOR: mux_quic: prevent multiple STOP_SENDING emission per stream - BUG/MEDIUM: h3: fix parser desync on error with multiple frames - BUG/MINOR: http-htx: Don't by-pass HTX API when merging cookie values - BUG/MINOR: mux-quic: Fix handling EOM after in qcs_http_rcv_buf() - BUG/MAJOR: htx: Don't swap buffers for empty HTX message with an error - BUG/MINOR: tools: fix invalid character detection in strl2ic() - BUG/MINOR: init: fix default global settings being overwritten by -G - MINOR: hbuf: new lightweight hbuf API - BUG/MEDIUM: servers: Use a refcount for port_range and free it properly - BUG/MINOR: sample: set SMP_F_CONST on srv_name fetch - BUG/MEDIUM: server: initialise agent.health in srv_settings_init() - BUG/MINOR: hq-interop: support transcoding of absolute URI - BUG/MINOR: hq-interop: fix transcoding of wrapping response buffer - BUG/MEDIUM: mux_quic: fix memory leak of rx app_buf on stream free - BUG/MEDIUM: mux-quic: Drain the given amount of data in qcs_http_reset_buf() - BUG/MEDIUM: mux-spop: Truly drain outgoing data when the stream is closed - BUG/MEDIUM: mux-h2: Truly drain outgoing HTX data when the stream is closed - BUG/MEDIUM: mux-fcgi: Truly drain outgoing HTX data when the stream is closed - REGTESTS: quic: test H3 request without content-length - BUG/MEDIUM: h3: increment unknown request payload length - DOC: lua: remove incorrect init tags - BUG/MINOR: hq-interop: support response buffer wrapping - BUG/MINOR: hq-interop: support full demux buf on large response - BUG/MEDIUM: hlua: Properly report EOS when http applet exits - BUG/MINOR: hq-interop: prevent reset if missing content-length - BUG/MINOR: hq-interop: reject too big content - BUG/MEDIUM: mux-fcgi: fix uint16_t overflow in drl += drp - BUG/MEDIUM: http-act: Make a copy of the sample expr in (set/add)-headers-bin - BUG/MEDIUM: mux_quic: fix freeze transfer after QCS rxbuf realign - BUG/MINOR: hpack-tbl: add missing NULL check after hpack_dht_defrag() - BUG/MEDIUM: ssl: Don't free the early data buffer too early - BUG/MINOR: quic: fix rxbuf settings on backend side - BUG/MINOR: mux-h1: Properly resolve file path for 'h1-case-adjust-file' - BUG/MEDIUM: http-ana: Don't ignore L7 retry errors - BUG/MINOR: http-ana: Remove a debugging memset on redirect - BUG/MINOR: server: fix add server with consistent hash balancing - BUG/MEDIUM: h3: Properly handle PUSH_PROMISE on backend connections - BUG/MINOR: cpu-topo: use ha_diag_notice() to report thread creations - MINOR: errors: add ha_diag_notice() to report diag-level notifications - BUG/MEDIUM: ktls: defer enabling TLS ULP on a socket until connected - BUG/MEDIUM: acme: stuck ACME task when authz is already "valid" - BUG/MINOR: quic: fix Initial length value in sent packets - REGTESTS: Fix log matching in healthcheck-section.vtc - BUG/MEDIUM: checks: Dequeue checks on purge - BUG/MINOR: acl: report "ACL" not "map" in ACL ID lookup failures - CLEANUP: sessions: simplify the sess_priv_conns pool name - BUG/MEDIUM: xprt_qmux: implement ->get_ssl_sock_ctx() to get the SSL laye - BUG/MEDIUM: threads: Fiw build when using no thread - BUG/MEDIUM: regex: initialize the match array earlier during boot - REGTESTS: checks: Add script for external healthchecks - BUG/MINOR: tcpcheck: Override external check if healthcheck section is set - BUG/MINOR: mux_quic: do not interrupt recv on error/incomplete data - BUG/MEDIUM: mux_quic: prevent risk of infinite loop on recv - BUG/MEDIUM: server/checks: Support healtcheck keyword on default-server lines - MINOR: check: Don't dump buffers state in check traces for external checks - BUG/MEDIUM: check: Ignore small-buffer option when starting an external check - BUG/MEDIUM: check: Skip tcpcheck post-config for external checks - CLEANUP: hapee: remove 51d, deviceatlas and wurfl addons - MINOR: log: add app_log_raw() and send_log_raw() for binary-safe logging - CI: hapee: update list of modules - CI: hapee: compile lb with USE_PCRE2 - CI: hapee: add more modules in the CI - CI: hapee: add more modules in the CI - CI: hapee: name the vtest pipeline - CI: hapee: add the SAST to the gitlab-ci dispatcher - CI: hapee: Configure SAST in sast.yml - CI: hapee: .gitlab-ci.yml becomes a dispatcher - CI: hapee: trigger modules in the CI pipeline - CI: hapee: simple CI that compiles HAProxy - MINOR: hapee/modules: report the per-stream allocated size for each module - BUG/MEDIUM: hapee: prevent the module file name being overwritten - MEDIUM: hapee: HAPEE_MODULE_DECLARE() allows to declare an HAPEE module - BUG/MINOR: hapee: Makefile: bad substitution for MODVERSION variable - BUG/MINOR: hapee: relax __vers symbol check - BUG/MINOR: hapee/modules: can't load modules with USE_OBSOLETE_LINKER - BUG/MINOR: hapee: remove leading \n on __vers error - MEDIUM: hapee: warn on unsupported initcalls - BUG/MINOR: hapee: forbid to load a module twice - HAPEE: udp: update structs and functions required for the UDP module - HAPEE: makefile: automatically build objects in addons/hapee_* - HAPEE: makefile: update the cleanup rule to also remove *.i from addons - HAPEE: addons: quic CID in -vv - HAPEE: addons: adds quic CID generator to interop with packetshield - MEDIUM: hapee: does not pass OPTION_LDFLAGS to modules - MINOR: hapee/modules: check if we generate the API hash correctly - BUG/MINOR: hapee/modules: adjust include match() in gen-modules-config-h.awk - BUG/MINOR: hapee/modules: initialize the module head list - BUILD: hapee/modules: select either md5 or md5sum - MEDIUM: hapee/modules: load the STG_REGISTER initcalls - BUG/MINOR: hapee/modules: display detailed error message on mod_init() failure - MINOR: hapee/modules: add a new label MODULES_LOCK to the lock_label enum - MINOR: hapee/modules: add the ability to register variable and functions. - MEDIUM: hapee/modules: 'modules list' on the cli shows currently loaded modules - MINOR: hapee/modules: terminate properly loaded modules if possible - MEDIUM: hapee/modules: add memory reservation support for the modules - BUILD: hapee/modules: update HAPEE version macro to 3.4r1 - BUILD: hapee/modules: add macros to compute numerical value of a HAPEE version - BUILD: hapee/modules: add version of the module in the defines - MEDIUM: hapee/modules: add modules support


HAPEE-LB 3.4r1 – Changelog