Skip to content

Releases: litespeedtech/lsquic

Bugfix; loss bits update; code cleanup

09 Jan 16:59
Compare
Choose a tag to compare
  • [BUGFIX] Initial packet size check for IETF mini conn applies to UDP payload, not QUIC packet.
  • Support old and new school loss_bits transport parameter.
  • Use Q run length of 64 as suggested in the loss bits Draft.
  • Undo square wave count when packet is delayed.
  • Code cleanup; minor fixes.

HTTP/3 improvements; bug fixes

06 Jan 17:03
Compare
Choose a tag to compare
  • [HTTP3] Verify number of bytes in incoming DATA frames against content-length.
  • [HTTP3] Stop issuing streams credits if peer stops opening QPACK decoder window. This addresses a potential attack whereby client can cause the server to keep allocating memory. See Security Considerations in the QPACK draft.
  • [BUGFIX] Mini conn: don't shorten max packet size for Q050 and later.
  • [BUGFIX] Init IETF connection flow controller using correct setting.
  • [BUGFIX] Fix unintended sign extension when removing header protection.
  • Code cleanup and minor fixes.

Fix another OLS build issue

02 Jan 15:10
3f2ab35
Compare
Choose a tag to compare
v2.8.3

Add lsquic_parse_Q050.c

Fix OLS build issue

02 Jan 14:39
e0b1dd9
Compare
Choose a tag to compare
v2.8.2

Remove lsquic_buf.c

Several improvements and a bug fix

30 Dec 16:39
Compare
Choose a tag to compare
  • [FEATURE] Use occasional packet number gaps to detect optimistic ACK attacks.
  • [BUGFIX] Q050 client: all packet numbers are in the App PNS.
  • [OPTIMIZATION] Merge multi-range ACK frames, not just single-range ACK frames.
  • IETF QUIC: use RTT estimate in ack timeout calculation.
  • IETF handshake: abort conn when unexpected errors occur.
  • Use PING rather than MAX_DATA frames to elicit ACKs from peer.
  • Server: enforce 1200 byte Initial minimum packet size.
  • [CLEANUP] Remove code to disable gQUIC crypto.
  • [CLEANUP] Remove n_timestamps from ACK info struct.
  • Optimize driver: reuse previous ancillary message when possible.

Add Q050 support

23 Dec 21:32
Compare
Choose a tag to compare
  • [FEATURE] Add support for Q050.
  • [OPTIMIZATION] Reduce mallocs in gQUIC handshake.
  • [BUGFIX] Disable redo of failed STREAM frame insertion with debug logging.

Maintenance release

18 Dec 13:26
Compare
Choose a tag to compare
  • [DEBUG] Further dedup next advisory tick messages when reason is the same.
  • [BUGFIX] Update size of a array in TP struct. Fixes (benign) bug #94.
  • Use Cubic by default again instead of BBR, as it delivers more consistent performance.

Bugfix release

11 Dec 14:49
Compare
Choose a tag to compare
  • [BUGFIX] Send controller: update scheduled bytes when DCID length changes (IETF client).
  • [BUGFIX] Drop alarm check from sanity test. It no longer works now that we use loss chains.
  • [PORTABILITY] Fix build on Alpine Linux.
  • [PORTABILITY] Fix build using XCode.
  • Client initial DCID length: use RAND_bytes() instead of rand(3).
  • Add unit tests for connection min heap.
  • [DEBUG] Log CID in gQUIC handshake module
  • [DEBUG] Turn on extra checks for IETF client send controller.
  • [DEBUG] Dedup next advisory tick messages when reason is IDLE timer.
  • [DEBUG] QPACK decoder handler: log header error code.

Bugfix release

05 Dec 13:53
Compare
Choose a tag to compare
  • [BUGFIX] client: don't call ignore_init() in middle of batch send. ignore_init() makes an assumption that the send controller has access to all outgoing packets. This change wraps a few IETF full connection methods to delay calling ignore_init() until the engine returns all outgoing packets that were batched.
  • [BUGFIX] set errno to EAGAIN if sendmmsg() can't send all of them. This needs to be done because the value of errno may be lost on some platforms.
  • [BUGFIX] Typo that set all bits in sm_qflags lead to crashes.
  • [BUGFIX] Do not cancel header block processing after failure, as QPACK releases the reference in that case.
  • [CLEANUP] IETF encrypt: replace assert(0) with a warning.
  • Several small improvements to the test server.

Drop connections that cause sending failures

27 Nov 20:42
Compare
Choose a tag to compare
  • [API, FEATURE] Close connection immediately when ea_packets_out() fails with errno != EAGAIN. The API change is that errno is now examined. Make sure to set it if using something other than sendmsg() to send packets.
  • [CLEANUP] Immediate close logic in IETF full conn.
  • [CLEANUP] Fix bogus warning about uninitialized `pair' variable.