v3.3-dev11
📦 haproxyView on GitHub →
✨ 35 features🐛 35 fixes🔧 28 symbols
Summary
This release introduces new features for QUIC, SSL/ECH, and stick-tables, alongside numerous bug fixes across various modules. Key changes include improved QUIC option handling, enhanced SSL certificate management, and more robust stick-table operations.
Migration Steps
- Rename "no-quic" to "tune.quic.listen"
✨ New Features
- Add a new initcall stage, STG_INIT_2
- Use a per-shard expiration task for stick-tables
- Extract common types for ncbuf
- Define new ncbmbuf type
- Implement add for ncbmbuf
- Implement iterator bitmap utilities functions for ncbmbuf
- Implement ncbmbuf_data()
- Implement advance operation for ncbmbuf
- Add tests for ncbmbuf in standalone mode
- Remove received CRYPTO temporary tree storage for QUIC
- Add FIXED_SIZE(size, type, name) macro for compiler
- Use explicit-size types for freq-ctr struct
- Add the dns-01-record field to the ACME sink
- Display the complete challenge_ready command in ACME logs
- Remove unused conn-tx-buffers limit keyword for QUIC
- Prepare support for options on FE/BE side for QUIC
- Rename "no-quic" to "tune.quic.listen"
- Duplicate glitches FE option on BE side for QUIC
- Split congestion controler options for FE/BE usage for QUIC
- Split Tx options for FE/BE usage for QUIC
- Rename max Tx mem setting for QUIC
- Rename retry-threshold setting for QUIC
- Rename frontend sock-per-conn setting for QUIC
- Add certificate password callback that calls external command for SSL
- Add local passphrase cache for SSL
- Do not dump decrypted privkeys in 'dump ssl cert'
- Add ssl_fc_early_rcvd() to detect use of early data in ssl-sample
- Make devnullfd global and create it earlier in init
- Use devnullfd in stdio_quiet calls instead of recreating a fd everytime
- Add ECH configuration and key loading for SSL/ECH
- Add logging and sample fetches for ECH status and outer SNI for SSL/ECH
- Implement bind_conf_find_by_name() for listener
- Key management via stats socket for SSL/ECH
- Do not needlessly refrain from sending data early for mux-h2
- Extract the code to send preface+settings into its own function for mux-h2
🐛 Bug Fixes
- Make sure not to unlock the element twice in mt_list
- Handle unchecked connections during handshakes in quic-be
- Free the trash chunk on the error path in cli
- Don't set HTX_FL_EOM flag on 1xx informational messages in h1-htx
- Properly encode response after interim one in same buf in h3
- Fix default pool alignment in pools
- Use ncbmbuf for CRYPTO handling in QUIC
- Fix typo in shm-stats-file object struct size detection
- Ensure shm_stats_file_object struct mapping consistency in stats-file (2nd attempt)
- Limit excessive and counter-productive gcc-15 vectorization in build
- Don't loop if there's nothing left in stick-tables
- Avoid el->prev = el->next = el in mt_lists
- Improve again spinning loops detection with the new API in applet
- Properly index string-type keys in stick-tables
- Use atomic operations to prevent compiler optims in mt_list
- Fix build with openssl-compat for QUIC
- Do not put SE_FL_WANT_ROOM on rcv_buf() if the channel is empty in applet
- Create cli_raw_rcv_buf() from the generic applet_raw_rcv_buf() in cli
- Do not return ACKs one char at a time in cli
- Crash because of dangling ckch_store reference in a ckch instance in ssl
- Remove unreachable code in CLI function in ssl
- Warn if "_sub" derivative used with an explicit match in acl
- Fix 405, 431, 501 default errorfile in http
- Do not close previously created fd in stdio_quiet in init
- Apply dns-accept-family setting on additional records in resolvers
- Returns when SSL_CTX_new failed during init in ssl
- Non destructive parsing in cli_find_ech_specific_ctx() in ech
- Split max-idle-timeout option for FE/BE usage in quic
- Split option for congestion max window size in quic
- Rename and duplicate stream settings in quic
- Fix build failure with OPENSSL=0 and KTLS=1 in openssl-compat
- Ensure shm_stats_file_object struct mapping consistency in stats-file (reverted and re-applied)
- Use explicit-size types for freq-ctr struct (reverted and re-applied)
- Add FIXED_SIZE(size, type, name) macro (reverted and re-applied)
- Send the preface along with the first request if needed in mux-h2