diff --git a/CHANGELOG b/CHANGELOG index e12aae8b4..7757e1548 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,170 @@ ChangeLog : =========== +2026/04/15 : 3.4-dev9 + - DOC: config: fix ambiguous info in log-steps directive description + - MINOR: filters: add filter name to flt_conf struct + - MEDIUM: filters: add "filter-sequence" directive + - REGTESTS: add a test for "filter-sequence" directive + - Revert "CLEANUP: tcpcheck: Don't needlessly expose proxy_parse_tcpcheck()" + - MINOR: tcpcheck: reintroduce proxy_parse_tcpcheck() symbol + - BUG/MEDIUM: haterm: Move all init functions of haterm in haterm_init.c + - BUG/MEDIUM: mux-h1: Disable 0-copy forwarding when draining the request + - MINOR: servers: The right parameter for idle-pool.shared is "full" + - DOC: config: Fix two typos in the server param "healthcheck" description + - BUG/MINOR: http-act: fix a typo in the "pause" action error message + - MINOR: tcpcheck: Reject unknown keyword during parsing of healthcheck section + - BUG/MEDIUM: tcpcheck/server: Fix parsing of healthcheck param for dynamic servers + - BUG/MINOR: counters: fix unexpected 127 char GUID truncation for shm-stats-file objects + - BUG/MEDIUM: tcpcheck: Properly retrieve tcpcheck type to install the best mux + - BUG/MEDIUM: payload: validate SNI name_len in req.ssl_sni + - BUG/MEDIUM: jwe: fix NULL deref crash with empty CEK and non-dir alg + - BUG/MEDIUM: jwt: fix heap overflow in ECDSA signature DER conversion + - BUG/MEDIUM: jwe: fix memory leak in jwt_decrypt_secret with var argument + - BUG: hlua: fix stack overflow in httpclient headers conversion + - BUG/MINOR: hlua: fix stack overflow in httpclient headers conversion + - BUG/MINOR: hlua: fix format-string vulnerability in Patref error path + - BUG/MEDIUM: chunk: fix typo allocating small trash with bufsize_large + - BUG/MEDIUM: chunk: fix infinite loop in get_larger_trash_chunk() + - BUG/MINOR: peers: fix OOB heap write in dictionary cache update + - CI: VTest build with git clone + cache + - BUG/MEDIUM: connection: Wake the stconn on error when failing to create mux + - CI: github: update to cache@v5 + - Revert "BUG: hlua: fix stack overflow in httpclient headers conversion" + - CI: github: fix vtest path to allow correct caching + - CI: github: add the architecture to the cache key for vtest2 + - MEDIUM: connections: Really enforce mux protocol requirements + - MINOR: tools: Implement net_addr_type_is_quic() + - MEDIUM: check: Revamp the way the protocol and xprt are determined + - BUG/MAJOR: slz: always make sure to limit fixed output to less than worst case literals + - MINOR: lua: add tune.lua.openlibs to restrict loaded Lua standard libraries + - REGTESTS: lua: add tune.lua.openlibs to all Lua reg-tests + - BUG/MINOR: resolvers: fix memory leak on AAAA additional records + - BUG/MINOR: spoe: fix pointer arithmetic overflow in spoe_decode_buffer() + - BUG/MINOR: http-act: validate decoded lengths in *-headers-bin + - BUG/MINOR: haterm: Return the good start-line for 100-continue interim message + - BUG/MEDIUM: samples: Fix handling of SMP_T_METH samples + - BUG/MINOR: sample: fix info leak in regsub when exp_replace fails + - BUG/MEDIUM: mux-fcgi: prevent record-length truncation with large bufsize + - BUG/MINOR: hlua: fix use-after-free of HTTP reason string + - BUG/MINOR: mux-quic: fix potential NULL deref on qcc_release() + - BUG/MINOR: quic: increment pos pointer on QMux transport params parsing + - MINOR: xprt_qstrm: implement Rx buffering + - MINOR: xprt_qstrm/mux-quic: handle extra QMux frames after params + - MINOR: xprt_qstrm: implement Tx buffering + - MINOR: xprt_qstrm: handle connection errors + - MEDIUM: mux-quic: implement QMux record parsing + - MEDIUM: xprt_qstrm: implement QMux record parsing + - MEDIUM: mux-quic/xprt_qstrm: implement QMux record emission + - DOC: update draft link for QMux protocol + - BUG/MINOR: do not crash on QMux reception of BLOCKED frames + - Revert "BUG/MEDIUM: haterm: Move all init functions of haterm in haterm_init.c" + - BUG/MEDIUM: haterm: Properly initialize the splicing support for haterm + - BUG/MINOR: mux_quic: prevent QMux crash on qcc_io_send() error path + - BUG/MINOR: xprt_qstrm: do not parse record length on read again + - MEDIUM: otel: added OpenTelemetry filter skeleton + - MEDIUM: otel: added configuration and utility layer + - MEDIUM: otel: added configuration parser and event model + - MEDIUM: otel: added post-parse configuration check + - MEDIUM: otel: added memory pool and runtime scope layer + - MEDIUM: otel: implemented filter callbacks and event dispatcher + - MEDIUM: otel: wired OTel C wrapper library integration + - MEDIUM: otel: implemented scope execution and span management + - MEDIUM: otel: added context propagation via carrier interfaces + - MEDIUM: otel: added HTTP header operations for context propagation + - MEDIUM: otel: added HAProxy variable storage for context propagation + - MINOR: otel: added prefix-based variable scanning + - MEDIUM: otel: added CLI commands for runtime filter management + - MEDIUM: otel: added group action for rule-based scope execution + - MINOR: otel: added log-format support to the sample parser and runtime + - MINOR: otel: test: added test and benchmark suite for the OTel filter + - MINOR: otel: added span link support + - MINOR: otel: added metrics instrument support + - MINOR: otel: added log-record signal support + - MINOR: otel: test: added full-event test config + - DOC: otel: added documentation + - DOC: otel: test: added test README-* files + - DOC: otel: test: added speed test guide and benchmark results + - DOC: otel: added cross-cutting design patterns document + - MINOR: otel: added flt_otel_sample_eval and exposed flt_otel_sample_add_kv + - MINOR: otel: changed log-record attr to use sample expressions + - MINOR: otel: changed instrument attr to use sample expressions + - DOC: otel: added README.md overview document + - CLEANUP: ot: use the item API for the variables trees + - BUG/MINOR: ot: removed dead code in flt_ot_parse_cfg_str() + - BUG/MINOR: ot: fixed wrong NULL check in flt_ot_parse_cfg_group() + - BUILD: ot: removed explicit include path when building opentracing filter + - MINOR: ot: renamed the variable dbg_indent_level to flt_ot_dbg_indent_level + - CI: Drop obsolete `packages: write` permission from `quic-interop-*.yml` + - CI: Consistently add a top-level `permissions` definition to GHA workflows + - CI: Wrap all `if:` conditions in `${{ }}` + - CI: Fix regular expression escaping in matrix.py + - CI: Update to actions/checkout@v6 + - CI: Simplify version extraction with `haproxy -vq` + - CI: Merge `aws-lc.yml` and `aws-lc-fips.yml` into `aws-lc.yml` + - CI: Merge `aws-lc-template.yml` into `aws-lc.yml` + - CI: Consistently set up VTest with `./.github/actions/setup-vtest` + - MINOR: mux_quic: remove duplicate QMux local transport params + - CI: github: add bash to the musl job + - BUG/MINOR: quic: do not use hardcoded values in QMux TP frame builder + - BUG/MINOR: log: Fix error message when using unavailable fetch in logfmt + - CLEANUP: log: Return `size_t` from `sess_build_logline_orig()` + - CLEANUP: stream: Explain the two-step initialization in `stream_generate_unique_id()` + - CLEANUP: stream: Reduce duplication in `stream_generate_unique_id()` + - CLEANUP: http_fetch: Use local `unique_id` variable in `smp_fetch_uniqueid()` + - CI: build WolfSSL job with asan enabled + - MINOR: tools: memvprintf(): remove check that always true + - BUG/MEDIUM: cli: Properly handle too big payload on a command line + - REGTESTS: Never reuse server connection in reg-tests/jwt/jwt_decrypt.vtc + - MINOR: errors: remove excessive errmsg checks + - BUG/MINOR: haterm: preserve the pipe size margin for splicing + - MEDIUM: acme: implement dns-persist-01 challenge + - MINOR: acme: extend resolver-based DNS pre-check to dns-persist-01 + - DOC: configuration: document dns-persist-01 challenge type and options + - BUG/MINOR: acme: read the wildcard flag from the authorization response + - BUG/MINOR: acme: don't pass NULL into format string + - BUG/MINOR: haterm: don't apply the default pipe size margin twice + - CLEANUP: Make `lf_expr` parameter of `sess_build_logline_orig()` const + - MINOR: Add `generate_unique_id()` helper + - MINOR: Allow inlining of `stream_generate_unique_id()` + - CLEANUP: log: Stop touching `struct stream` internals for `%ID` + - MINOR: check: Support generating a `unique_id` for checks + - MINOR: http_fetch: Add support for checks to `unique-id` fetch + - MINOR: acme: display the type of challenge in ACME_INITIAL_DELAY + - MINOR: mjson: reintroduce mjson_next() + - CI: Remove obsolete steps from musl.yml + - CI: Use `sh` in `actions/setup-vtest/action.yml` + - CI: Sync musl.yml with vtest.yml + - CI: Integrate Musl build into vtest.yml + - CI: Use `case()` function + - CI: Generate vtest.yml matrix on `ubuntu-slim` + - CI: Run contrib.yml on `ubuntu-slim` + - CI: Use `matrix:` in contrib.yml + - CI: Build `dev/haring/` as part of contrib.yml + - MINOR: htx: Add helper function to get type and size from the block info field + - BUG/MEDIUM: htx: Properly handle block modification during defragmentation + - BUG/MEDIUM: htx: Don't count delta twice when block value is replaced + - MINOR: ssl: add TLS 1.2 values in HAPROXY_KEYLOG_XX_LOG_FMT + - EXAMPLES: ssl: keylog entries are greater than 1024 + - BUILD: Makefile: don't forget to also delete haterm on make clean + - MINOR: stats: report the number of thread groups in "show info" + - CLEANUP: sample: fix the comment regarding the range of the thread sample fetch + - MINOR: sample: return the number of the current thread group + - MINOR: sample: add new sample fetch functions reporting current CPU usage + - BUG/MEDIUM: peers: trash of expired entries delayed after fullresync + - DOC: remove the alpine/musl status job image + - MINOR: mux-quic: improve documentation for qcs_attach_sc() + - MINOR: mux-quic: reorganize code for app init/shutdown + - MINOR: mux-quic: perform app init in case of early shutdown + - MEDIUM: quic: implement fe.stream.max-total + - MINOR: mux-quic: close connection when reaching max-total streams + - REGTESTS: add QUIC test for max-total streams setting + - MEDIUM: threads: start threads by groups + - MINOR: acme: opportunistic DNS check for dns-persist-01 to skip challenge-ready steps + - BUG/MINOR: acme: fix fallback state after failed initial DNS check + - CLEANUP: acme: no need to reset ctx state and http_state before nextreq + - BUG/MINOR: threads: properly set the number of tgroups when non using policy + 2026/04/03 : 3.4-dev8 - MINOR: log: split do_log() in do_log() + do_log_ctx() - MINOR: log: provide a way to override logger->profile from process_send_log_ctx diff --git a/VERDATE b/VERDATE index 656bc3b57..0b68d8b4f 100644 --- a/VERDATE +++ b/VERDATE @@ -1,2 +1,2 @@ $Format:%ci$ -2026/04/03 +2026/04/15 diff --git a/VERSION b/VERSION index 961245cde..c97a90b2e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.4-dev8 +3.4-dev9 diff --git a/doc/configuration.txt b/doc/configuration.txt index 16d40710c..71c317d69 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -3,7 +3,7 @@ Configuration Manual ---------------------- version 3.4 - 2026/04/03 + 2026/04/15 This document covers the configuration language as implemented in the version