Skip to content

Commit 1cdb6bf

Browse files
committed
[RELEASE] Released version 3.4-dev9
Released version 3.4-dev9 with the following main changes : - 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 <out> 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
1 parent d7c747b commit 1cdb6bf

4 files changed

Lines changed: 167 additions & 3 deletions

File tree

CHANGELOG

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,170 @@
11
ChangeLog :
22
===========
33

4+
2026/04/15 : 3.4-dev9
5+
- DOC: config: fix ambiguous info in log-steps directive description
6+
- MINOR: filters: add filter name to flt_conf struct
7+
- MEDIUM: filters: add "filter-sequence" directive
8+
- REGTESTS: add a test for "filter-sequence" directive
9+
- Revert "CLEANUP: tcpcheck: Don't needlessly expose proxy_parse_tcpcheck()"
10+
- MINOR: tcpcheck: reintroduce proxy_parse_tcpcheck() symbol
11+
- BUG/MEDIUM: haterm: Move all init functions of haterm in haterm_init.c
12+
- BUG/MEDIUM: mux-h1: Disable 0-copy forwarding when draining the request
13+
- MINOR: servers: The right parameter for idle-pool.shared is "full"
14+
- DOC: config: Fix two typos in the server param "healthcheck" description
15+
- BUG/MINOR: http-act: fix a typo in the "pause" action error message
16+
- MINOR: tcpcheck: Reject unknown keyword during parsing of healthcheck section
17+
- BUG/MEDIUM: tcpcheck/server: Fix parsing of healthcheck param for dynamic servers
18+
- BUG/MINOR: counters: fix unexpected 127 char GUID truncation for shm-stats-file objects
19+
- BUG/MEDIUM: tcpcheck: Properly retrieve tcpcheck type to install the best mux
20+
- BUG/MEDIUM: payload: validate SNI name_len in req.ssl_sni
21+
- BUG/MEDIUM: jwe: fix NULL deref crash with empty CEK and non-dir alg
22+
- BUG/MEDIUM: jwt: fix heap overflow in ECDSA signature DER conversion
23+
- BUG/MEDIUM: jwe: fix memory leak in jwt_decrypt_secret with var argument
24+
- BUG: hlua: fix stack overflow in httpclient headers conversion
25+
- BUG/MINOR: hlua: fix stack overflow in httpclient headers conversion
26+
- BUG/MINOR: hlua: fix format-string vulnerability in Patref error path
27+
- BUG/MEDIUM: chunk: fix typo allocating small trash with bufsize_large
28+
- BUG/MEDIUM: chunk: fix infinite loop in get_larger_trash_chunk()
29+
- BUG/MINOR: peers: fix OOB heap write in dictionary cache update
30+
- CI: VTest build with git clone + cache
31+
- BUG/MEDIUM: connection: Wake the stconn on error when failing to create mux
32+
- CI: github: update to cache@v5
33+
- Revert "BUG: hlua: fix stack overflow in httpclient headers conversion"
34+
- CI: github: fix vtest path to allow correct caching
35+
- CI: github: add the architecture to the cache key for vtest2
36+
- MEDIUM: connections: Really enforce mux protocol requirements
37+
- MINOR: tools: Implement net_addr_type_is_quic()
38+
- MEDIUM: check: Revamp the way the protocol and xprt are determined
39+
- BUG/MAJOR: slz: always make sure to limit fixed output to less than worst case literals
40+
- MINOR: lua: add tune.lua.openlibs to restrict loaded Lua standard libraries
41+
- REGTESTS: lua: add tune.lua.openlibs to all Lua reg-tests
42+
- BUG/MINOR: resolvers: fix memory leak on AAAA additional records
43+
- BUG/MINOR: spoe: fix pointer arithmetic overflow in spoe_decode_buffer()
44+
- BUG/MINOR: http-act: validate decoded lengths in *-headers-bin
45+
- BUG/MINOR: haterm: Return the good start-line for 100-continue interim message
46+
- BUG/MEDIUM: samples: Fix handling of SMP_T_METH samples
47+
- BUG/MINOR: sample: fix info leak in regsub when exp_replace fails
48+
- BUG/MEDIUM: mux-fcgi: prevent record-length truncation with large bufsize
49+
- BUG/MINOR: hlua: fix use-after-free of HTTP reason string
50+
- BUG/MINOR: mux-quic: fix potential NULL deref on qcc_release()
51+
- BUG/MINOR: quic: increment pos pointer on QMux transport params parsing
52+
- MINOR: xprt_qstrm: implement Rx buffering
53+
- MINOR: xprt_qstrm/mux-quic: handle extra QMux frames after params
54+
- MINOR: xprt_qstrm: implement Tx buffering
55+
- MINOR: xprt_qstrm: handle connection errors
56+
- MEDIUM: mux-quic: implement QMux record parsing
57+
- MEDIUM: xprt_qstrm: implement QMux record parsing
58+
- MEDIUM: mux-quic/xprt_qstrm: implement QMux record emission
59+
- DOC: update draft link for QMux protocol
60+
- BUG/MINOR: do not crash on QMux reception of BLOCKED frames
61+
- Revert "BUG/MEDIUM: haterm: Move all init functions of haterm in haterm_init.c"
62+
- BUG/MEDIUM: haterm: Properly initialize the splicing support for haterm
63+
- BUG/MINOR: mux_quic: prevent QMux crash on qcc_io_send() error path
64+
- BUG/MINOR: xprt_qstrm: do not parse record length on read again
65+
- MEDIUM: otel: added OpenTelemetry filter skeleton
66+
- MEDIUM: otel: added configuration and utility layer
67+
- MEDIUM: otel: added configuration parser and event model
68+
- MEDIUM: otel: added post-parse configuration check
69+
- MEDIUM: otel: added memory pool and runtime scope layer
70+
- MEDIUM: otel: implemented filter callbacks and event dispatcher
71+
- MEDIUM: otel: wired OTel C wrapper library integration
72+
- MEDIUM: otel: implemented scope execution and span management
73+
- MEDIUM: otel: added context propagation via carrier interfaces
74+
- MEDIUM: otel: added HTTP header operations for context propagation
75+
- MEDIUM: otel: added HAProxy variable storage for context propagation
76+
- MINOR: otel: added prefix-based variable scanning
77+
- MEDIUM: otel: added CLI commands for runtime filter management
78+
- MEDIUM: otel: added group action for rule-based scope execution
79+
- MINOR: otel: added log-format support to the sample parser and runtime
80+
- MINOR: otel: test: added test and benchmark suite for the OTel filter
81+
- MINOR: otel: added span link support
82+
- MINOR: otel: added metrics instrument support
83+
- MINOR: otel: added log-record signal support
84+
- MINOR: otel: test: added full-event test config
85+
- DOC: otel: added documentation
86+
- DOC: otel: test: added test README-* files
87+
- DOC: otel: test: added speed test guide and benchmark results
88+
- DOC: otel: added cross-cutting design patterns document
89+
- MINOR: otel: added flt_otel_sample_eval and exposed flt_otel_sample_add_kv
90+
- MINOR: otel: changed log-record attr to use sample expressions
91+
- MINOR: otel: changed instrument attr to use sample expressions
92+
- DOC: otel: added README.md overview document
93+
- CLEANUP: ot: use the item API for the variables trees
94+
- BUG/MINOR: ot: removed dead code in flt_ot_parse_cfg_str()
95+
- BUG/MINOR: ot: fixed wrong NULL check in flt_ot_parse_cfg_group()
96+
- BUILD: ot: removed explicit include path when building opentracing filter
97+
- MINOR: ot: renamed the variable dbg_indent_level to flt_ot_dbg_indent_level
98+
- CI: Drop obsolete `packages: write` permission from `quic-interop-*.yml`
99+
- CI: Consistently add a top-level `permissions` definition to GHA workflows
100+
- CI: Wrap all `if:` conditions in `${{ }}`
101+
- CI: Fix regular expression escaping in matrix.py
102+
- CI: Update to actions/checkout@v6
103+
- CI: Simplify version extraction with `haproxy -vq`
104+
- CI: Merge `aws-lc.yml` and `aws-lc-fips.yml` into `aws-lc.yml`
105+
- CI: Merge `aws-lc-template.yml` into `aws-lc.yml`
106+
- CI: Consistently set up VTest with `./.github/actions/setup-vtest`
107+
- MINOR: mux_quic: remove duplicate QMux local transport params
108+
- CI: github: add bash to the musl job
109+
- BUG/MINOR: quic: do not use hardcoded values in QMux TP frame builder
110+
- BUG/MINOR: log: Fix error message when using unavailable fetch in logfmt
111+
- CLEANUP: log: Return `size_t` from `sess_build_logline_orig()`
112+
- CLEANUP: stream: Explain the two-step initialization in `stream_generate_unique_id()`
113+
- CLEANUP: stream: Reduce duplication in `stream_generate_unique_id()`
114+
- CLEANUP: http_fetch: Use local `unique_id` variable in `smp_fetch_uniqueid()`
115+
- CI: build WolfSSL job with asan enabled
116+
- MINOR: tools: memvprintf(): remove <out> check that always true
117+
- BUG/MEDIUM: cli: Properly handle too big payload on a command line
118+
- REGTESTS: Never reuse server connection in reg-tests/jwt/jwt_decrypt.vtc
119+
- MINOR: errors: remove excessive errmsg checks
120+
- BUG/MINOR: haterm: preserve the pipe size margin for splicing
121+
- MEDIUM: acme: implement dns-persist-01 challenge
122+
- MINOR: acme: extend resolver-based DNS pre-check to dns-persist-01
123+
- DOC: configuration: document dns-persist-01 challenge type and options
124+
- BUG/MINOR: acme: read the wildcard flag from the authorization response
125+
- BUG/MINOR: acme: don't pass NULL into format string
126+
- BUG/MINOR: haterm: don't apply the default pipe size margin twice
127+
- CLEANUP: Make `lf_expr` parameter of `sess_build_logline_orig()` const
128+
- MINOR: Add `generate_unique_id()` helper
129+
- MINOR: Allow inlining of `stream_generate_unique_id()`
130+
- CLEANUP: log: Stop touching `struct stream` internals for `%ID`
131+
- MINOR: check: Support generating a `unique_id` for checks
132+
- MINOR: http_fetch: Add support for checks to `unique-id` fetch
133+
- MINOR: acme: display the type of challenge in ACME_INITIAL_DELAY
134+
- MINOR: mjson: reintroduce mjson_next()
135+
- CI: Remove obsolete steps from musl.yml
136+
- CI: Use `sh` in `actions/setup-vtest/action.yml`
137+
- CI: Sync musl.yml with vtest.yml
138+
- CI: Integrate Musl build into vtest.yml
139+
- CI: Use `case()` function
140+
- CI: Generate vtest.yml matrix on `ubuntu-slim`
141+
- CI: Run contrib.yml on `ubuntu-slim`
142+
- CI: Use `matrix:` in contrib.yml
143+
- CI: Build `dev/haring/` as part of contrib.yml
144+
- MINOR: htx: Add helper function to get type and size from the block info field
145+
- BUG/MEDIUM: htx: Properly handle block modification during defragmentation
146+
- BUG/MEDIUM: htx: Don't count delta twice when block value is replaced
147+
- MINOR: ssl: add TLS 1.2 values in HAPROXY_KEYLOG_XX_LOG_FMT
148+
- EXAMPLES: ssl: keylog entries are greater than 1024
149+
- BUILD: Makefile: don't forget to also delete haterm on make clean
150+
- MINOR: stats: report the number of thread groups in "show info"
151+
- CLEANUP: sample: fix the comment regarding the range of the thread sample fetch
152+
- MINOR: sample: return the number of the current thread group
153+
- MINOR: sample: add new sample fetch functions reporting current CPU usage
154+
- BUG/MEDIUM: peers: trash of expired entries delayed after fullresync
155+
- DOC: remove the alpine/musl status job image
156+
- MINOR: mux-quic: improve documentation for qcs_attach_sc()
157+
- MINOR: mux-quic: reorganize code for app init/shutdown
158+
- MINOR: mux-quic: perform app init in case of early shutdown
159+
- MEDIUM: quic: implement fe.stream.max-total
160+
- MINOR: mux-quic: close connection when reaching max-total streams
161+
- REGTESTS: add QUIC test for max-total streams setting
162+
- MEDIUM: threads: start threads by groups
163+
- MINOR: acme: opportunistic DNS check for dns-persist-01 to skip challenge-ready steps
164+
- BUG/MINOR: acme: fix fallback state after failed initial DNS check
165+
- CLEANUP: acme: no need to reset ctx state and http_state before nextreq
166+
- BUG/MINOR: threads: properly set the number of tgroups when non using policy
167+
4168
2026/04/03 : 3.4-dev8
5169
- MINOR: log: split do_log() in do_log() + do_log_ctx()
6170
- MINOR: log: provide a way to override logger->profile from process_send_log_ctx

VERDATE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
$Format:%ci$
2-
2026/04/03
2+
2026/04/15

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.4-dev8
1+
3.4-dev9

doc/configuration.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Configuration Manual
44
----------------------
55
version 3.4
6-
2026/04/03
6+
2026/04/15
77

88

99
This document covers the configuration language as implemented in the version

0 commit comments

Comments
 (0)