lsquic

LiteSpeed QUIC and HTTP/3 Library

MIT License

Stars
1.5K

Bot releases are hidden (Show)

lsquic - API and doc cleanup; minor bug fixes

Published by litespeedtech over 4 years ago

  • [API] Rename "0-RTT" to "session resumption." In IETF QUIC, "0-RTT" always refers to early data, meaning a request that the server can reply to in the very first return flight. A more appropriate name for what we support on the client site is "session resumption," which is standard TLS terminology. Later, when we add support for 0-RTT (early data), we can use the 0-RTT terminology again, this time in proper context.
  • [BUGFIX] Do not set certificate callback if ea_lookup_cert is NULL.
  • [BUGFIX] Make connection tickable when it's marked as closed.
  • [BUGFIX] Fail certificate lookup if SNI is not present in HTTP mode.
  • Several documentation fixes and improvements.
  • Minor code cleanup.
lsquic - Bug fix and optimizations

Published by litespeedtech over 4 years ago

  • [BUGFIX] Infinite loop in stream: advance read offset when discarding data.
  • [OPTIMIZATION] Header protection: only initialize cipher once.
  • [OPTIMIZATION] Batch header protection application.
lsquic - Support Internet Draft 29; bug fixes

Published by litespeedtech over 4 years ago

  • [FEATURE] QUIC and HTTP/3 Internet Draft 29 support.
  • [BUGFIX] Check that scheduled packets are also sendable when calculating a connection's "tickable" property.
  • [BUGFIX] Don't count scheduled packets as in-flight when pacer is checked on tick.
  • gQUIC: delay calling on_new for pushed stream until headers are available.
  • Allow nested calls to lsquic_engine_connect().
lsquic - Bugfix release: early data regression

Published by litespeedtech over 4 years ago

  • [BUGFIX] Early data: call new BoringSSL function to set context.
lsquic - Bugfix release

Published by litespeedtech over 4 years ago

  • [BUGFIX] Crash: check decrypt context before using it. This regression was introduced in 2.12.5.
lsquic - Bugfix release; stash reordered packets

Published by litespeedtech over 4 years ago

  • [OPTIMIZATION] Stash up to two reordered packets in IETF mini conn instead of dropping them.
  • [BUGFIX] Crash: check decrypt context before using it. This regression was introduced in 2.16.2.
lsquic - Bug fixes; updated BoringSSL

Published by litespeedtech over 4 years ago

  • [BUGFIX] ID-28: do not use TLS middlebox compatibility mode in ClientHello. This change requires using a newer version of BoringSSL.
  • [BUGFIX] Free connections in Advisory Tick Time Queue in engine dtor.
  • [BUGFIX] HTTP/3 headers may be followed immediately by trailers.
  • [BUGFIX] Log messages when SCID changes.
lsquic - Bug fixes; newer BoringSSL

Published by litespeedtech over 4 years ago

  • [BUGFIX] ID-28: do not use TLS middlebox compatibility mode in ClientHello. This change requires using a newer version of BoringSSL.
  • [BUGFIX] Free connections in Advisory Tick Time Queue in engine dtor.
  • [BUGFIX] IETF QUIC client: narrow migration check to a single path.
  • [BUGFIX] NULL dereference: set function pointers for alarm for path challenges 2 and 3.
  • [BUGFIX] HTTP/3 headers may be followed immediately by trailers.
  • [BUGFIX] Log messages when SCID changes.
lsquic - No-progress timeout; several bug fixes

Published by litespeedtech over 4 years ago

  • [FEATURE] Use "no-progress timeout" after which connection is closed.
  • [BUGFIX] Select new SCID when current SCID is retired.
  • [BUGFIX] Don't warn about dropped Initial packet sequence gaps during mini/full handoff.
  • [BUGFIX] Send correct conn error when HTTP/3 frame is truncated.
  • [BUGFIX] Mini conn: consider amplification when deciding to return TICK_SEND.
  • [BUGFIX] Don't double-count tag length in amplification logic.
  • [BUGFIX] Don't squeeze out lone path challenges.
  • [BUGFIX] Log messages dealing with scheduled packet queue squeezing.
  • [BUGFIX] don't wipe current path if no path challenge responses come back.
  • [BUGFIX] When path is reset, don't lose path_id which is used for logging.
  • Downgrade flow control violations to info log level from warnings.
  • Fix connection cap extra check, avoid checks in nested calls.
  • Fix some unit tests when extra checks are enabled.
  • Use ls-hpack 2.2.1.
  • Turn off unconditional extra checks for IETF clients.
  • Extra checks: don't verify sent size of hello packets. Client changes DCID length and this check will fail.
lsquic - Minor amplification bug fixes

Published by litespeedtech over 4 years ago

  • [BUGFIX] Don't double-count tag length in amplification logic.
  • [BUGFIX] Consider amplification when deciding to return TICK_SEND.
lsquic - Support Windows; use lsxpack_header v206

Published by litespeedtech over 4 years ago

  • [API] Use lsxpack_header v206.
  • [FEATURE] Windows supported.
  • [BUGFIX] Fix uninitialized variable use in client (regression in 2.15.0).
  • Use ls-hpack 2.2.0.
  • Use ls-qpack 2.2.0.
  • Sample programs: fix the way maximum number of packets is calculated.
  • Remove some dead code.
lsquic - Support Internet Draft 28

Published by litespeedtech over 4 years ago

  • [FEATURE] QUIC and HTTP/3 Internet Draft 28 support.
  • [BUGFIX] Ignore Retry packets after other packets are decrypted successfully.
  • [BUGFIX] Transport parameter decoding: CID no longer has 4-byte length minimum.
  • http_client: fix and optimize lsxpack_header allocator.
  • Drop support for Internet Draft 25.
lsquic - Android support

Published by litespeedtech over 4 years ago

lsquic - Bugfix release: ALPN maps, frame reader skips

Published by litespeedtech over 4 years ago

  • [BUGFIX] ALPN-to-version mapping: do not skip h3-Q050.
  • [BUGFIX] Frame reader: skip headers if target stream is closed.
lsquic - Bugfix release: amplification mitigation fixes

Published by litespeedtech over 4 years ago

  • [BUGFIX] Fix amplification mitigation in 0-RTT case.
  • [BUGFIX] IETF mini connection should not tickable if cannot send a packet due to amplification.
lsquic - Bugfix release: amplification, TP validations, and others

Published by litespeedtech over 4 years ago

  • [BUGFIX] Fix amplification mitigation in 0-RTT case.
  • [BUGFIX] IETF mini connection should not tickable if cannot send a packet due to amplification.
  • [BUGFIX] Fail if active_connection_id_limit TP is smaller than 2.
  • [BUGFIX] Qlog server certificates for IETF QUIC connections.
  • [BUGFIX] Uninitialized struct padding usage in tokgen (benign).
  • [BUGFIX] Incorrect argument to shi_lookup() (benign).
lsquic - Bugfix release: coalesced packets, skip headers

Published by litespeedtech over 4 years ago

  • [BUGFIX] In coalesced datagram, ignore packets whose CID does not match.
  • [BUGFIX] Frame reader: skip headers if target stream is not found.
  • [BUGFIX] Log message in QPACK decoder handler.
lsquic - Bugfix release: flags, settings, callbacks

Published by litespeedtech over 4 years ago

  • [BUGFIX] Heed es_rw_once for pushed HTTP/3 streams.
  • [BUGFIX] IETF client: set correct flags on bidirectional streams.
  • [BUGFIX] Generate Cancel Stream QPACK instructions for abandoned streams.
  • [BUGFIX] Do not call header callbacks after stream is closed.
  • Use ls-qpack 2.1.1
lsquic - Bugfix release

Published by litespeedtech over 4 years ago

  • [BUGFIX] Place connections on tickable queue when sending is reenabled.
  • [BUGFIX] A connection is tickable if it has unsent packets.
  • [BUGFIX] Heed peer's max_packet_size transport parameter.
  • [BUGFIX] Honor max packet size on the client and when path changes.
lsquic - Bugfix release

Published by litespeedtech over 4 years ago

  • [BUGFIX] gQUIC: pass correct stream to hsi_create_header_set() callback.
  • [BUGFIX] Use ls-hpack 2.1.1
  • Improve stream code readability.
  • Use ls-qpack 2.0.5