Change8

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

  1. Ensure your ACME configuration does not rely on the previous behavior of mt_list.
  2. 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.

Affected Symbols