lsquic

LiteSpeed QUIC and HTTP/3 Library

MIT License

Stars
1.5K

Bot releases are hidden (Show)

lsquic - Fixes to PLPMTUD, handshake and Windows build

Published by litespeedtech almost 3 years ago

  • Fix overly strict assert()
  • Do not reset path MTU due to three lost_mtu_probe
  • Fix handshake failure due to too many realy data
  • Better build support for Windows platform
  • Update ls-qpack to 2.2.3
lsquic - Fixes to DATAGRAM, BBR, handshake and memory leak

Published by litespeedtech about 3 years ago

  • Generate ACK for DATAGRAM frame while avoid RETX (issue #312 #325).
  • Fix BBR end of startup phase detection (issue #328).
  • Fix HTTP/3 v1 retry handling (issue #332)
  • Fix memory leak when reset dcid (issue #333)
  • Fix double decrement for ifc_active_cids_count (#334)
  • Fix uninitialized value in frame_reader/frame_writer (#316)
  • Remove a few overly strict asserts.
lsquic - Fix Connection timeout and assert() false positive

Published by litespeedtech over 3 years ago

  • Do not timeout connection if peer sends PING frames.
  • Do not assert for MTU probe packet when cancel a path.
lsquic - Fine tune CONNECT_CLOSE; fix packet parser

Published by litespeedtech over 3 years ago

  • Only force TICK_CLOSE flag after received CONNECTION_CLOSE frame. (issue #292 #281)
  • Avoid mismatch in packet parsing. (issue #262)
  • Remove unnecessary shi_delete call.
lsquic - Turn on HTTP/3 version 1; fix server PING and connection close

Published by litespeedtech over 3 years ago

  • Enable HTTP/3 v1 by default, drop draft 34.
  • Prevent connection timeout when client does not send PING frame.
  • Close connection ASAP after recieve CONNECTION_CLOSE (issue #284)
  • Do not assert() when decode a trailer.
  • Properly handle GOAWAY frame, do not close the last acknowledged stream.
lsquic - Fixed HPACK decoder dynamic table size limit

Published by litespeedtech over 3 years ago

  • Update ls-hpack to 2.3.0 to properly enforce decoder dynamic table size limit (issue #260).
lsquic - Fix uninitialized member, high CPU usage and h3spec

Published by litespeedtech over 3 years ago

  • Fixed an unintialized data member for handling pushed headers.
  • Added a new status code for version negotiation failure.
  • Fixed a few compliance issues found by h3spec.
  • Addressed high CPU usage when transport cannot send pending packets.
lsquic - Fix high CPU usage, SIGFPE; multiple headers support

Published by litespeedtech over 3 years ago

  • Added support for sending/receiving multiple headers to address the case related to "100 continue" header handling.
  • Addressed high CPU usage for a GOAWAY connection before sending CONNECTION_CLOSE.
  • Addressed SIGFPE due to zero pacing rate. (ISSUE #254).
  • Fixed a minor issue related to multi-paths.
lsquic - Internals docs; h3spec and other fixes

Published by litespeedtech over 3 years ago

  • Documentation: describe lsquic internals ("guts").
  • Two more fixes to compliance issues found by h3spec.
  • Truncate, don't abort, SCIDs larger than 16 bytes (PR #244).
  • Several small internal improvements and space optimizations.
lsquic - Better HTTP/3 standard compliance

Published by litespeedtech over 3 years ago

  • Fix a few issues detected by h3spec for better compliance with HTTP/3 standard.
lsquic - Bug fixes: push promises, misput HQ frames

Published by litespeedtech over 3 years ago

  • [BUGFIX] Infinite loop in stream: returned HQ frame can be at any point on the list.
  • [BUGFIX] Fail push promise immediately if STREAM_NOPUSH is set.
lsquic - Bug fixes: push promises, misput HQ frames

Published by litespeedtech over 3 years ago

  • [BUGFIX] Infinite loop in stream: returned HQ frame can be at any point on the list.
  • [BUGFIX] Fail push promise immediately if STREAM_NOPUSH is set.
lsquic - Bug fixes, minor improvements

Published by litespeedtech over 3 years ago

  • [BUGFIX] Do not send RESET_STREAM if writing to stream is already finished.
  • perf_client: wait for all ACKs before exiting.
  • Improve how generated RESET_STREAM is logged.
  • Fix compilation in different combos of adv_tick/conn_stats flags.
  • Move qpack warning disablement into src/liblsquic/CMakeLists.txt.
lsquic - Fix gQUIC server handshake regression

Published by litespeedtech over 3 years ago

  • Fix regression in gQUIC server: bug #234.
lsquic - perf utils; build improvements

Published by litespeedtech over 3 years ago

  • Make it possible to build the library and unit tests without libevent.
  • Build all command-line utilities in bin/
  • Add perf_client and perf_server command-line utilities to test performance according to the "perf" protocol.
lsquic - IETF QUIC v1 and ID-34 support; bug fixes

Published by litespeedtech over 3 years ago

  • [FEATURE] QUIC and HTTP/3 Internet Draft 34 support and v1 support. The latter is turned off by default.
  • Drop support for ID-28 and ID-32.
  • [BUGFIX] IETF QUIC mini conn receive history (trechist): allow unlimited inserts by dropping smallest elements.
  • [BUGFIX] gQUIC: set STTL to correct value, issue #226.
  • [BUGFIX] Account for poison packet gap when MTU probe was too large.
lsquic - New API calls and bug fixes

Published by litespeedtech over 3 years ago

  • [API] lsquic_ssl_sess_to_resume_info() is the new way to get session info.
  • [API] Add user pointer to ea_generate_scid callback.
  • [API] Add lsquic_dcid_from_packet() -- a fast function to parse out DCID.
  • [API] Add es_max_batch_size to control outgoing packet batch size.
  • [BUGFIX] Disallow sending of header while promise is being written.
  • [BUGFIX] Flush stream when buffered bytes exhaust stream cap.
  • [BUGFIX] Deactivate HQ frame if writing push promise fails.
  • Perform sanity check on peer transport parameters and fail the handshake if some flow control limits are too low. This can be turned off, see es_check_tp_sanity.
  • http_server: fix how requests are read in "hq" mode.
lsquic - Bug fixes, QUIC Interop Runner support

Published by litespeedtech over 3 years ago

  • [BUGFIX] Replace dispatch read/write events assertion with a check.
  • [BUGFIX] gQUIC connection close: there is no HEADERS stream without HTTP flag, see issue #220.
  • http_client, http_server: add hq protocol support and other flags for use with QUIC Interop Runner.
  • Fix: use IP_PMTUDISC_PROBE (not IP_PMTUDISC_DO) on Linux to set Don't-Fragment flag on outgoing packets.
  • Fix send_packets_one_by_one on Windows platform when sending multiple iovs, see issue #218.
  • Exit echo_client on Windows immediately, see issue #219.
lsquic - Bug fixes: receive history, out-of-order assert, et al

Published by litespeedtech over 3 years ago

  • [BUGFIX] Assertion in send controller when path validation fails.
  • [BUGFIX] Assertion in BBR when sending out-of-order packets is detected.
  • [BUGFIX] Drop overflow receive history ranges when cloning.
  • Log correct size of the incoming packet.
  • Fix internal stream function.
lsquic - Add lsquic_conn_get_sni()

Published by litespeedtech almost 4 years ago

  • [API] Add lsquic_conn_get_sni(), fixes issue #203.