Releases: litespeedtech/lsquic
Releases · litespeedtech/lsquic
Several stop-sending bug fixes; new optional callback
- [BUGFIX] Do not drop incoming data when STOP_SENDING is received.
- [BUGFIX] Receipt of STOP_SENDING should not cause read-reset.
- [BUGFIX] Allow stream writes after receiving RESET.
- [BUGFIX] Typo in stream: ANDing enum with wrong flag.
- [BUGFIX] Reset elision: do not use zero as special stream ID value, for zero is a valid stream ID in IETF QUIC.
- [API] Add optional on_conncloseframe_received() callback.
- Use zero error code in RESET stream sent in response to STOP_SENDING.
Fix migration corner cases and stream unit test
- [BUGFIX] Migration corner cases: drop or pad over path challenge and response frames when necessary.
- Fix stream unit test.
Handle packet reordering; add parameter to get_ssl_ctx() callback
- [OPTIMIZATION] Adjust packet reordering threshold when spurious losses are detected.
- [API] Pass pointer to local sockaddr to ea_get_ssl_ctx() callback.
Option to delay on_close; new on_reset callback
- [API, FEATURE] Add es_delay_onclose option to delay on_close until all data is ACKed. Use new function lsquic_stream_has_unacked_data() to learn whether peer acknowledged all data written to stream.
- [API] Add optional on_reset() stream callback to get notifications when RESET or STOP_SENDING frames are received.
- [BUGFIX] On STOP_SENDING, make conn tickable is writeable, not readable.
Delayed ACKs; limit receive history
- [FEATURE] Improve Delayed ACKs extension and turn it on by default.
- Limit receive history to a finite amount of memory.
Bug fixes: CC, CIDs, memory leak
- [BUGFIX] Check whether ECN counts are set in ACK struct before using them.
- [BUGFIX] Calculate TLP timer correctly when only one packet is in flight.
- [BUGFIX] Min RTO delay is 200 milliseconds, not 1 second.
- [BUGFIX] Memory leak in QPACK decoder handler: discard hset when necessary.
- Allow retired and drained CIDs to be reused after a timeout.
Bug fixes
- [BUGFIX] min RTO delay is 200 ms , not 1 second.
- [BUGFIX] calculate TLP timer correctly when only one packet is in flight.
- [BUGFIX] discard CRYPTO frames from lower levels after connection promotion.
- [BUGFIX] cancel path response if path could not be initialized.
- [BUGFIX] if push promise fails, do not invoke hset destructor.
Bug fixes: client BBR, memory leak
- [BUGFIX] Get rough RTT estimate on receipt of Handshake packet. This prevents BBR on the client from miscalculating pacing rate, slowing down sending of ACK packets.
- [BUGFIX] Packets sent during handshake are app-limited.
- [BUGFIX] Bandwidth sampler starts in app-limited mode.
- [BUGFIX] Memory leak: free QPACK handler context in stream dtor.
- Logging improvements.
Migration and coalescing bug fixes
- [BUGFIX] Allow peer to migrate when its SCID is zero-length.
- [BUGFIX] PADDING size calculation: only one Short packet can be coalesced. (This should have been part of the fix in 2.24.1).
- Abort connect if received NEW_CONNECTION_ID but current DCID is zero-length.
- Improve log messages
SSL_CTX for client; bug fixes
- [API] Allow use of ea_get_ssl_ctx() on the client (optional). PR #186.
- [BUGFIX] Expand datagram with ack-eliciting Initial to 1200 bytes after connection promotion.
- [BUGFIX] Discard CRYPTO frames from lower encryption levels after connection promotion.
- [BUGFIX] Cancel path response if path could not be initialized.