v3.3-dev13
📦 haproxyView on GitHub →
✨ 17 features🐛 21 fixes🔧 23 symbols
Summary
This release introduces significant improvements to QUIC support, including 0-RTT capabilities and enhanced token handling. It also addresses various bugs across different modules like ACME, stats, and connection management.
Migration Steps
- Ensure your ACME configuration does not rely on the previous behavior of mt_list.
- If you were overriding the default ACME resolver, you may need to adjust your configuration.
✨ New Features
- Enable the use of 0-RTT for QUIC connections.
- Parse, store, and reuse tokens provided by NEW_TOKEN frame in QUIC.
- Helper functions to save/restore transport parameters (0-RTT) for QUIC.
- Helper quic_reuse_srv_params() function to reuse server parameters (0-RTT) for QUIC.
- Save backend 0-RTT parameters for QUIC.
- Modify ssl_sock_srv_try_reuse_sess() to reuse backend sessions (0-RTT) for QUIC.
- Allow preparation of 0-RTT packets for QUIC.
- Send post handshake frames from a list of frames (0-RTT) for QUIC.
- Adapt qc_send_mux() for 0-RTT in QUIC.
- Discard 0-RTT keys in QUIC.
- Validate 0-RTT transport parameters in QUIC.
- Do not create the mux after handshake completion for 0-RTT in QUIC.
- Avoid a useless I/O callback wakeup for 0-RTT sessions in QUIC.
- Expose ssl_*c_curve for AWS-LC.
- Add 'awslc_api_atleast' and 'awslc_api_before' to cfgcond.
- Extend DEBUG_STRESS to ease testing and turn on extra checks.
- Add BUG_ON_STRESS(): a BUG_ON() implemented only when DEBUG_STRESS > 0.
🐛 Bug Fixes
- For word expansion, empty or non-existing configurations are now treated the same.
- Close QUIC connection on CID allocation failure.
- Handle collision on QUIC CID generation.
- Fix shm-stats-file preload not working anymore.
- Do not account backend connections into maxconn.
- 'devnullfd' not properly closed for master.
- More explicit error when BIO_new_file() fails in ACME.
- Do not launch the connection migration process for QUIC backend.
- Move from mt_list to a rwlock + ebmbtree in ACME.
- Fix ACME resolver override issue.
- Delay MUX init when SSL ALPN is used.
- Only try connection reuse for http-check rulesets.
- Fix reuse-pool if MUX inherited from server.
- Always return the good stksess from stktable_set_entry.
- Fix return value for __stksess_kill().
- Prevent a crash on HTTP/2 upgrade.
- Fix QUIC check test when QUIC is disabled.
- Missing version negotiation in QUIC backend.
- Backend SSL session reuse fix (OpenSSL 3.5).
- Reverted: permit to permanently remove an idle conn.
- Do not reinsert a purgeable conn in idle list.