lsquic

LiteSpeed QUIC and HTTP/3 Library

MIT License

Stars
1.5K

Bot releases are hidden (Show)

lsquic - Fix function that checks validity of handshake packets

Published by litespeedtech about 4 years ago

lsquic - Extensible HTTP Priorities and more; bug fixes

Published by litespeedtech about 4 years ago

  • [FEATURE] Extensible HTTP Priorities (HTTP/3 only).
  • [FEATURE] Add conn context to packet-out memory interface (PR #175).
  • [BUGFIX] gQUIC proof generation: allocate buffer big enough for signature (issue #173).
  • [BUGFIX] Make library thread-safe: drop use of global variables (issue #133, issue #167).
  • [BUGFIX] Deactivate only recent HQ frame, not any HQ frame.
  • [BUGFIX] gQUIC server: associate compressed cert with SSL_CTX, instead of keeping them in a separate hash, potentially leading to mismatches.
  • [BUGFIX] Stream data discard infinite loop: break on FIN.
  • cmake: add install target via -DCMAKE_INSTALL_PREFIX (PR #171).
  • Support randomized packet number to begin a connection.
  • Mini and full IETF connection size optimization.
  • http_client: specify HTTP priorities based on stream conditions.
lsquic - Fix HQ frame deactivation

Published by litespeedtech about 4 years ago

lsquic - Features: ID-31, connection ID steering, shared library

Published by litespeedtech about 4 years ago

  • [FEATURE] QUIC and HTTP/3 Internet Draft 31 support.
  • [API] Let user generate Souce Connection IDs.
  • [FEATURE] Allow building lsquic as shared library.
  • [OPTIMIZATION] Receive history: use a single contiguous memory block for everything.
  • Deprecate QUIC versions ID-27 and ID-30.
lsquic - Fix memory leaks

Published by litespeedtech about 4 years ago

  • [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
  • [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
lsquic - Fix memory leaks

Published by litespeedtech about 4 years ago

  • [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
  • [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
lsquic - Minor bug fix; some refactoring

Published by litespeedtech about 4 years ago

  • [BUGFIX] Typo in new "validate peer addr by DCID" code. It is a benign bug (works either way), but better to fix it.
  • Simplify Stream Priority Iterator (SPI).
  • Minor documentation updates.
lsquic - Features: ID-30, datagrams, adaptive CC support; bug fixes

Published by litespeedtech about 4 years ago

  • [FEATURE] QUIC and HTTP/3 Internet Draft 30 support.
  • [FEATURE] Unreliable Datagram Extension support.
  • [FEATURE] Adaptive congestion controller.
  • [BUGFIX] Do not send MAX_STREAM_DATA frames on crypto streams.
  • [BUGFIX] Fail with CRYPTO_BUFFER_EXCEEDED when too much CRYPTO data comes in.
  • [BUFFIX] Spin bit is now strictly per path; value is reset on DCID change.
  • [BUGFIX] Check that max value of max_streams_uni and max_streams_bidi TPs is 2^60.
  • [BUGFIX] Close IETF mini conn immediately if crypto session cannot be initialized.
  • Deprecate ID-28 (no browser uses it): it's no longer in the default versions list.
  • New programs duck_server and duck_client that implement the experimental siduck-00 protocol. They quack!
  • IETF crypto streams: don't limit ourselves from sending.
  • Command-line programs: turn off QL loss bits if -G is used, as Wireshark cannot decrypt QUIC packets when this extension is used.
  • Turn all h3 framing unit tests back on.
  • Fix malo initialization when compiled in no-pool mode.
lsquic - Bug fix: when stream is reset, it is writeable

Published by litespeedtech about 4 years ago

lsquic - Feature: pwritev; bug fixes

Published by litespeedtech about 4 years ago

  • [FEATURE] Add lsquic_stream_pwritev(). This function allows one to reduce the number of system calls required to read a file from disk by using lsquic_stream_pwritev() together with preadv(2).
  • [BUGFIX] When stream is reset, it is writeable -- let user collect the error.
  • [BUGFIX] Calculate correct conn flow control if reading ends early.
  • [BUGFIX] Remove stream from read and write queues on internal shutdown. This is a regression introduced in 2.19.7.
  • [BUGFIX] Swapped arguments in IETF RESET_FRAME generation.
  • Turn off mini conn history when compiling with Visual Studio; this allows the project to compile on Windows again.
  • http_client: Add -3 flag to stop reading from streams early; code cleanup.
  • Don't use -Werror.
lsquic - ECN blackholes, new timestamps, and bug fixes

Published by litespeedtech about 4 years ago

  • [FEATURE] Update the timestamp extension to latest version.
  • [FEATURE] Cope with appearance of ECN blackholes.
  • [OPTIMIZATION] return packno offset and size when header is generated.
  • [BUGFIX] ignore old ACK frames in mini conns.
  • [BUGFIX] Mark initial server path as initialized.
  • [BUGFIX] Do not merge ACK if ECN counts do not match.
  • Turn incoming packet number history in mini conn back on.
  • Record mini conn event history again when compiled in debug mode.
  • IETF mini conn: log when ACK is queued.
  • Clean up and refactor code in several places.
lsquic - Fixes and tying up of loose ends

Published by litespeedtech about 4 years ago

  • Handle ECT-CE event: issue a loss event.
  • Log the fact that we ignore SETTINGS_MAX_HEADER_LIST_SIZE.
  • Use Max Push ID in GOAWAY frame to cancel promises.
  • Add support for HTTP/3 CANCEL_PUSH frame.
  • lsquic_stream_is_pushed: streams without headers are never pushed.
  • [BUGFIX] Regression in lsquic_stream_shutdown_internal: now it shuts down.
  • Improve logic whether to generate CONNECTION_CLOSE.
lsquic - Minor ECN improvements

Published by litespeedtech about 4 years ago

  • Don't process incoming ECN marks if ECN is not enabled.
  • Schedule ACK when incoming packet is marked with CE.
lsquic - Bugfix release: DPLPMTUD stealing ACK across buffered packets

Published by litespeedtech about 4 years ago

  • [BUGFIX] Generate frame record when moving an ACK from one buffered packet to another.
lsquic - Bugfix release: DPLPMTUD

Published by litespeedtech about 4 years ago

  • [BUGFIX] Do not return an oversize MTU probe to connection twice.
  • [FEATURE] Delayed Acks updated to latest draft. Still experimental.
  • Minor code cleanup in IETF full connection.
lsquic - Bugfix release: Q050 regression

Published by litespeedtech about 4 years ago

  • [BUGFIX] Regression in 2.19.1 that breaks Q050
lsquic - Bugfix release: PLPMTU sizes, Windows build

Published by litespeedtech about 4 years ago

  • [BUGFIX] Do not reduce PLPMTU size by network overhead.
  • [BUGFIX] Windows build.
lsquic - Feature: DPLPMTUD

Published by litespeedtech about 4 years ago

  • [FEATURE] DPLPMTUD support. IETF connections now search for the maximum packet size, improving throughput.
  • [DEBUG] Record event in stream history when on_close() is called in dtor.
lsquic - Minor bugfix release

Published by litespeedtech about 4 years ago

  • [BUGFIX] Send prediction: lone path challenges do not get squeezed out
  • Fix crash in http_client: now -K and -B can be used simultaneously
lsquic - QUIC grease bit support; bug fixes

Published by litespeedtech over 4 years ago

  • [FEATURE] Implement the "QUIC bit grease" extension.
  • [BUGFIX] Selecting CID used for logging on client.
  • [BUGFIX] Header protection assertion.
  • [BUGFIX] Server: enable SSL key logging when cert lookup callback is not set.
  • Remove some dead code.