Change8

v3.4-dev3

📦 haproxyView on GitHub →
14 features🐛 28 fixes🔧 27 symbols

Summary

This release introduces several new features including dynamic allocation for shard info, increased tgid size, and new converters for AES and JWT decryption. It also addresses numerous bugs related to parsing, build issues, and various components like SSL, QUIC, and proxy configurations.

Migration Steps

  1. The `ssl: strchr` definition has changed in C23. If you are building with C23, you may need to adjust your build process.
  2. The `tools: memchr` definition has changed in C23. If you are building with C23, you may need to adjust your build process.

✨ New Features

  • Refactor "userlist" parser to print it in -dKall operation.
  • Dynamically allocate the "members" field of shard_info.
  • Increase the tgid from 8bits to 16bits.
  • Dynamically allocate per-thread group counters.
  • Implement publish/unpublish backend CLI.
  • Report BE unpublished status.
  • Add new aes_cbc_enc/_dec converters.
  • Add new jwt_decrypt_secret converter.
  • Add new jwt_decrypt_cert converter.
  • Implement directory loading for systemd.
  • Add chunk_escape_string() helper function.
  • Store variable names for runtime access.
  • Implement dump_all_vars() sample fetch.
  • Implement persistent named defaults.

🐛 Bug Fixes

  • Fix wrong section name upon error in cfgparse.
  • Fix build issue on macOS related to variable-length arrays in sockpair.
  • Argument to "show table" is optional in cli/stick-tables.
  • Fix reg-tests curve check in ssl.
  • Enable ech configuration also for quic listeners.
  • Remove duplicate "force-persist" in common kw list in cfgparse.
  • Also support retrieving fc.timer.handshake without a stream in sample.
  • Permit retrieving tcp_info from the connection/session stage in tcp-sample.
  • Use a 16bits variable when loading tgid in stats-file.
  • Fix broken yield for Patref:add_bulk() in hlua_fcn.
  • Ensure Patref:add_bulk() is given a table object before using it in hlua_fcn.
  • Fix IPv6 header length processing in net_helper.
  • Fix binding thread on bind.
  • Fix ACK ECN frame parsing in quic.
  • Fix deinit performed on uninitialized lf_expr in release_http_map() in http_act.
  • Fix arithmetic when feeling non_empty_tgids in queues.
  • Free persist_rules in proxy.
  • Do not select a backend if disabled in proxy.
  • Force traffic on unpublished/disabled backends in proxy.
  • Fix "default" prefix parsing in cfgparse.
  • Ensure server is detached from proxy list before being freed in server.
  • Server iteration may rely on stale server in promex.
  • Parsing log-forward options may result in segfault in log.
  • Fix error path on generate-certificates in ssl.
  • Fix generate-certificates option when SNI greater than 64bytes in ssl.
  • Prevent BUG_ON() on aborted uni stream close in mux-quic.
  • Fix generate-certificates w/ LibreSSL in ssl.
  • Fix deinit crash on defaults with duplicate name in proxy.

Affected Symbols