What's Changed
- fix: guard qpack increment_acked against u64 overflow by @uwezkhan in #3684
- feat: replace Packets
BTreeMapwithVecDequeby @larseggert in #3686 - feat: skip streams with no data in SendStreams::write_frames by @larseggert in #3687
- Add WebTransport ExportKeyingMaterial backend by @jesup in #3464
- feat: store
sent::Packettokens inline, removingRcby @larseggert in #3696 - Add support for GOAWAY draining events to support WebTransport by @jesup in #3465
- Get the negotiated protocol to support WebTransport by @jesup in #3466
- feat: Use
FxHashermore by @larseggert in #3709 - Fix off-by-one in max_push_id computation by @martinthomson in #3707
- clamp webtransport datagram size to avoid prefix underflow by @uwezkhan in #3711
- fix: reject CR and LF in HTTP/3 field names by @uwezkhan in #3719
- fix: reject invalid NEW_CONNECTION_ID retire_prior and cid length by @uwezkhan in #3720
- fix: Allow >1 MSS of
cwndgrowth by @larseggert in #3648 - fix: make coalesce_acked_from_zero scale with count by @larseggert in #3724
- Add a client-side check for CONNECT_UDP by @martinthomson in #3729
- stats/cc: add new slow_start_exit stats by @omansfeld in #3716
- fix: reject max_ack_delay transport parameter of 2^14 or greater by @uwezkhan in #3730
- fix: reject STREAMS_BLOCKED limit above 2^60 by @uwezkhan in #3727
- Reject trailing data in HTTP/3 frames by @martinthomson in #3734
- fix: reject RETIRE_CONNECTION_ID for an unissued sequence number by @uwezkhan in #3731
- feat: fast path in RxStreamOrderer::inbound_frame by @larseggert in #3690
- fix: reject duplicate transport parameters by @uwezkhan in #3732
- fix: reject stream frames for the wrong unidirectional stream half by @uwezkhan in #3743
- Simplify use of datagram modifiers in test fixtures by @martinthomson in #3744
- chore: replace usize↔u64 casts with named helpers by @larseggert in #3738
- WebTransport sendGroup support (and improve sendOrder) by @jesup in #3467
- fix: reject DATAGRAM frame when max_datagram_frame_size is 0 by @uwezkhan in #3745
- reject CR, LF, and NUL in HTTP/3 field values by @uwezkhan in #3752
- fix: enforce qpack blocked stream limit in decode_header_block by @uwezkhan in #3755
- Suppress default-valued integer transport parameters by @martinthomson in #3746
- Revert "fix: do not suppress cwnd growth when pacing limits sends (#3640)" by @omansfeld in #3760
- Hex debugging improvements by @martinthomson in #3763
- fix: reject zero Insert Count Increment on QPACK decoder stream by @uwezkhan in #3762
- fix: reject reserved bits set in QUIC packet headers by @uwezkhan in #3749
- fix(transport/quic-datagram): remove inbound queue limit by @mxinden in #3761
- fix: reject qpack required insert count that reconstructs to zero by @uwezkhan in #3765
New Contributors
@uwezkhan made their first contribution in #3684. Thank you for all your work @uwezkhan. You have a long list of contributions in this release.
Full Changelog: v0.29.1...v0.30.0