#
a74702c6 |
|
06-May-2022 |
George Wang <gwang@litespeedtech.com> |
Release 3.1.0 |
#
e237d779 |
|
28-Apr-2022 |
George Wang <gwang@litespeedtech.com> |
Release 3.0.5 |
#
dbc62fc9 |
|
24-Apr-2022 |
Sam Hurst <sam.hurst@bbc.co.uk> |
Tick connection on want_datagram_write (#314) * Tick connection on datagram write * Check that a connection can send before marking connection tickable |
#
df672783 |
|
08-Nov-2021 |
Sijie Yang <iyangsj@gmail.com> |
Use same style of boolean checking in conn_ok_to_close() (#347) |
#
082507cd |
|
30-Sep-2021 |
George Wang <gwang@litespeedtech.com> |
Release 3.0.3 |
#
fb96e961 |
|
25-Sep-2021 |
wangweiwei <weiweiwang2021@126.com> |
[BUGFIX]add datasize to po_regen_sz which will not be retransmitted. (#327) |
#
7fc12548 |
|
30-Jun-2021 |
George Wang <gwang@litespeedtech.com> |
Release 3.0.2 |
#
6464d337 |
|
22-Jun-2021 |
Matt Durgavich <matt.durgavich@unity3d.com> |
Use C99 format specifiers to properly print uint64_t (#297) Co-authored-by: Matt Durgavich <mdurgavich@vivox.com> |
#
47440e4e |
|
12-Jun-2021 |
George Wang <gwang@litespeedtech.com> |
Only force TICK_CLOSE flag when CONNECTION_CLOSE frame received. |
#
084338b1 |
|
02-Jun-2021 |
George Wang <gwang@litespeedtech.com> |
Release 3.0.0 |
#
3d35ba15 |
|
31-May-2021 |
wangfuyu <wangfuyu1989@foxmail.com> |
Fix: connection may not be closed timely when CONNECTION_CLOSE frame in (#284) * Fix: connection may not be closed timely when CONNECTION_CLOSE frame in * Simplify TICK_CLOSE logic Co-authored-by: wangfuyu <ivanfywang@gmail.com> |
#
55d69529 |
|
17-Apr-2021 |
George Wang <gwang@litespeedtech.com> |
Release 2.30.1 |
#
293df8d6 |
|
12-Apr-2021 |
George Wang <gwang@litespeedtech.com> |
Release 2.30.0 - [FEATURE] Added support for sending/receiving multiple headers to address the case related to "100 continue" header handling. - [BUGFIX] Addressed high CPU usage for a GOAWAY connection before sending CONNECTION_CLOSE. - [BUGFIX] Addressed SIGFPE due to zero pacing rate. (ISSUE #254). - [BUGFIX] Fixed a minor issue related to multi-paths. |
#
eea99896 |
|
31-Mar-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.29.6 - 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. |
#
10e0dad8 |
|
17-Mar-2021 |
George Wang <gwang@litespeedtech.com> |
Release 2.29.5 - Fix a few issues detected by h3spec for better compliance with HTTP/3 standard. |
#
99a1ad0f |
|
03-Mar-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.29.3 - [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. |
#
26e8f082 |
|
10-Feb-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.29.0 - [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. |
#
c2faf032 |
|
04-Feb-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.28.0 - [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. |
#
bbee242a |
|
19-Jan-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.27.5 - [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. |
#
e2c49070 |
|
09-Jan-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.27.3 - [BUGFIX] gQUIC: do not destroy critical streams when connection is closed. See issue #201. - [BUGFIX] Drop #if LSQUIC_CONN_STATS from lsquic.h. See issue #211. - [BUGFIX] Challenge cancellation when path validation fails. - [BUGFIX] Do not send FIN if RST is scheduled to be sent on a stream. - [BUGFIX] gQUIC's is_tickable() when connection is closing. - [BUGFIX] Q050 processing of GOAWAY frames. |
#
1a0003e3 |
|
07-Jan-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.27.2 - [BUGFIX] Memory corruption in receive history copy-ranges function. |
#
06b2a236 |
|
06-Jan-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.27.1 - [API] New knob to set outgoing packet batch size. - Aborted connection now become tickable immediately. - Abort connection when HTTP/3 frame cannot be opened (can only happen when malloc fails). |
#
123f1164 |
|
19-Dec-2020 |
Paul Sheer <Paul.Sheer@spirent.com> |
Support new lsquic_stream_if callback on_conncloseframe_received() to notify application of CONNECTION_CLOSE frame |
#
71eb4000 |
|
18-Dec-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.26.1 - [BUGFIX] Migration corner cases: drop or pad over path challenge and response frames when necessary. - Fix stream unit test. |
#
7f96c7c7 |
|
05-Dec-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.25.0 - [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. |
#
57fe5a13 |
|
24-Nov-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Fix Windows build |
#
f38b395a |
|
24-Nov-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.24.5 - [FEATURE] Improve Delayed ACKs extension and turn it on by default. - Limit receive history to a finite amount of memory. |
#
4580fab7 |
|
18-Nov-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.24.4 - [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. |
#
2ed07212 |
|
11-Nov-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.24.3 - [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. |
#
ee4d3930 |
|
06-Nov-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.24.2 - [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 |
#
e85d2854 |
|
04-Nov-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.24.1 - [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. |
#
21bcad87 |
|
29-Oct-2020 |
sumasrao <suma.subbarao@spirent.com> |
Support get_ssl_ctx callback for client |
#
4429f8ea |
|
28-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.24.0 - [FEATURE] QUIC and HTTP/3 Internet Draft 31 support. Drop ID-30 and ID-31 support. - [BUGFIX] Divide-by-zero in newly enabled conn stats code when no packets were sent. - [BUGFIX] Memory leak in gQUIC client when server hello cannot be parsed. - [BUGFIX] Server Initial packet size calculation. - Log user-agent and CONN_CLOSE reason when peer reports error. - Example programs: Specify ALPN for echo and md5 clients and servers (issue #184). - Example programs: Don't add "QUIC_" prefix to lines in keylog file (issue #185). - http_server: Fix fd leak in preadv mode; fix preadv() usage when reading from disk. |
#
758aff32 |
|
21-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.23.2 - Add QPACK stats collection and experimentation mode, see the new es_qpack_experiment setting. - Log busy connection stats every second using the new "conn-stats" log module. - Log about skipping only once. - Update HTTP/3 greased frame type formula. - Use ls-qpack v2.2.1. |
#
f198a02d |
|
13-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.23.1 - [BUGFIX] Regression introduced in 2.22.0: use correct number of PNSs for IETF mini conn during promotion. |
#
04f8f447 |
|
13-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.23.0 - [FEATURE] IETF Client 0-RTT support. - [BUGFIX] Do not schedule MTU probe on first tick. - [BUGFIX] Parsing DATAGRAM frame. - [BUGFIX] If push promise fails, do not invoke hset destructor. - [BUGFIX] Client: When connections are IDed by port number, check DCID. Fixes issue #176. - Revert the 2.22.1 lsquic_is_valid_hs_packet change. All that was necessary is a change to the way we call it in lsquic_engine. No change to the function itself is required. |
#
fbc6cc04 |
|
07-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.22.0 - [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. |
#
fecdd104 |
|
03-Oct-2020 |
Victor Stewart <v@nametag.social> |
GSO-Friendly Packet Memory (#175) |
#
b62ec17f |
|
29-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.21.0 - [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. |
#
ece7c94d |
|
27-Sep-2020 |
Victor Stewart <vdog5@mac.com> |
Connection ID Steering (#165) |
#
fcd21c67 |
|
25-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.20.2 - [BUGFIX] Memory leak: free pushed promise when refcnt is zero. - [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets. |
#
cd35ff02 |
|
23-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.20.1 - [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. |
#
b1a7c3f9 |
|
16-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.20.0 - [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. |
#
2f2f4363 |
|
08-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.9 - [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. |
#
49f1f4f6 |
|
02-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.8 - [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. |
#
03fef29b |
|
26-Aug-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.7 - 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. |
#
93e1e886 |
|
21-Aug-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.6 - Don't process incoming ECN marks if ECN is not enabled. - Schedule ACK when incoming packet is marked with CE. |
#
3a537672 |
|
06-Aug-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.4 - [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. |
#
244e8c6f |
|
31-Jul-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.2 - [BUGFIX] Do not reduce PLPMTU size by network overhead. - [BUGFIX] Windows build. |
#
ef80a65f |
|
29-Jul-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.1 -- fix crash in IETF client (DPLPMTUD regression) |
#
b8fa6195 |
|
29-Jul-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.0 - [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. |
#
692a9102 |
|
14-Jul-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.18.1 - [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. |
#
7483dee0 |
|
07-Jul-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.18.0 - [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. |
#
da99665b |
|
24-Jun-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.17.2 - [BUGFIX] Infinite loop in stream: advance read offset when discarding data. - [OPTIMIZATION] Header protection: only initialize cipher once. - [OPTIMIZATION] Batch header protection application. |
#
4051ae3a |
|
18-Jun-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.17.0 - [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(). |
#
f913a297 |
|
12-Jun-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.16.2 - [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. |
#
8ae5ecb4 |
|
09-Jun-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.16.1 - [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. |
#
fb3e20e0 |
|
03-Jun-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Fix Windows support |
#
fb73393f |
|
27-May-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.15.0 - [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. |
#
b55a5117 |
|
06-May-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.14.6 - [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). |
#
1c105cf2 |
|
24-Apr-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.14.4 - [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 |
#
7ae4a10d |
|
08-Apr-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.14.2 - [BUGFIX] Use ls-qpack 2.0.4 - [BUGFIX] Honor max packet size on the client and when path changes. - http_server: fix prepare_decode() function. |
#
77a28812 |
|
07-Apr-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.14.1 - [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. |
#
55613f44 |
|
31-Mar-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.14.0 - [API] Use lsxpack_header structure to send HTTP headers. - [OPTIMIZATION] nocopy's readable_bytes() function. - http_server: fix typo in error message - Use ls-hpack 2.1.0. - Use ls-qpack 2.0.0. |
#
992bbcdb |
|
13-Mar-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.13.2 - [BUGFIX] Use of new lsxpack_header API's hsi_prepare_decode(). |
#
ea822d0d |
|
12-Mar-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.13.1 - fix a few minor issues flagged by Coverity |
#
a5fa05f9 |
|
12-Mar-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.13.0 - [API] Use lsxpack_header structure to process incoming headers. - [BUGFIX] Fix assertion when zero-padding Initial packet. - [BUGFIX] Use idle timeout before we learn of peer's value. - Use ls-hpack 2.0.0 -- has lsxpack_header changes. - Use ls-qpack 0.14.0 -- new, common with ls-hpack, XXH seed (not used yet). - Code cleanup: prefix exported functions with "lsquic_". |
#
afe3d363 |
|
02-Mar-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.12.0 - [FEATURE] QUIC timestamps extension. - [API] New: ea_alpn that is used when not in HTTP mode. - [BUGFIX] SNI is mandatory only for HTTP/3 and gQUIC. - [BUGFIX] Benign double-free -- issue #110. - [BUGFIX] Printing of transport parameters. |
#
bc520ef7 |
|
24-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.11.0 - [FEATURE] QUIC and HTTP/3 Internet Draft 27 support. - [FEATURE] Add experimental delayed ACKs extension. - Drop support for Internet Draft 24. - Code cleanup. |
#
feca77f5 |
|
22-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Add experimental support for delayed ACKs extension |
#
0bd32030 |
|
21-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Switch to readthedocs.org for hosting documentation Add API reference. |
#
b86524a4 |
|
21-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Code cleanup. Improve comments in lsquic.h |
#
1bdb91d1 |
|
13-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.10.5 - [BUGFIX] BBR: call cci_sent() with correct arguments and at correct time. - Refactor transport parameters module. - Minor code cleanup. |
#
e68b0452 |
|
11-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.10.4 - [BUGFIX] Send HANDSHAKE_DONE only after Finished is received. - [BUGFIX] Don't treat garbage UDP padding as library error; ignore it instead. - [BUGFIX] Fix compilation on FreeBSD (missing header). |
#
f2a7fa84 |
|
31-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.10.3 - [BUGFIX] Cancel path responses and challenges on old path when switching to new path. - Logging network path information. |
#
8c1565cb |
|
31-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.10.2 - [BUGFIX] Do not delay ACKs for Initial and Handshake packets. - [BUGFIX] Send PATH_CHALLENGE if path changed before mini conn promotion. - Logging improvements. - http_client: discard data faster. |
#
4ab453a1 |
|
29-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.10.1 - [BUGFIX] Coalesced packets could get longer than normal packet size. - Add spin bit configuration option es_spin (-o spin=[01]). - Disable spin bit in 1/16 of connections. - Improve logging a bit. |
#
9fc12041 |
|
28-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.10.0 - [FEATURE] QUIC and HTTP/3 Internet Draft 25 support. - [API] Drop support for ID-23. - [BUGFIX] Set key phase bit on outgoing packets correctly. - Code cleanup. |
#
fb96f4dd |
|
20-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.9.0 - [API] Drop support for Q039. - Improve ACK-queuing logic. Send an ACK once in a while if peer keeps on sending non-ack-eliciting packets. - Improve Alt-Svc string: Q050 and later are not included in the old-style "quic" string. - Send stateless resets if connection could not be promoted. - Schedule MAX_DATA if needed when DATA_BLOCKED is received. - Use ls-qpack 0.11.2 -- needed for server push optimization. - Code cleanup: handle some error cases, improve logging. |
#
10c41073 |
|
16-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.8.9 - [BUGFIX] Use ls-qpack 0.11.1 - [OPTIMIZATION] Generate random bytes in batches. - Change loss_bits transport parameter ID to 0x1057 following latest draft. - Randomize period with which PINGs are sent to elicit ACKs. - Some refactoring and code cleanup. |
#
a4f5dac3 |
|
15-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.8.8 - [BUGFIX] Invalid read when parsing IETF transport parameters (this was benign). - [OPTIMIZATION] Frame bundling when using buffered packets in IETF QUIC: a) flush QPACK decoder stream and b) include ACKs in opportunistic fashion. - Fix HTTP/3 framing unit test. - Code cleanup. |
#
7d09751d |
|
10-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.8.7 - [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. |
#
747be414 |
|
06-Jan-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.8.4 - [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. - Code cleanup and minor fixes. |
#
de46bf2f |
|
31-Dec-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.8.1 - [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. |
#
a137764b |
|
11-Dec-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.7.2 - [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. |
#
936463fe |
|
05-Dec-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.7.1 - [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. |
#
7ee41525 |
|
28-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.7.0 - [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. |
#
02b6086d |
|
22-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.6.7 - [FEATURE] Implement the QL extension (offered by default). - [BUGFIX] Abort when encountering unexpected HTTP/3 frames. - [BUGFIX] Acknowledge (QPACK) HTTP/3 trailers correctly. - [DEBUG] Turn on debug message for next advisory tick. |
#
c09fcff4 |
|
15-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.6.4 - [BUGFIX] High priority buffered packet queue length. - [BUGFIX] Rain time calculation: max_ack_delay is in milliseconds. |
#
2f7aa658 |
|
13-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.6.3 - [BUGFIX] Close DATA frames with empty payload correctly. |
#
767cf611 |
|
12-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.6.2 - [BUGFIX] SCID!=ODCID rule applies to Retry packets, not regular packets. - [BUGFIX] Zero-RTT: BoringSSL no longer flips read/write secrets. - [BUGFIX] Truncate ACK frame rather instead of aborting IETF connection. - [BUGFIX] Client: don't send duplicate reset tokens. - [BUGFIX] Remove invalid assertion in H3 framing code. - Silence a warning in send ctl by restructuring switch() statement. |
#
84dbbb75 |
|
09-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.6.1 - [BUGFIX] set retry token on all resubmitted packets. - Event log: log sent packet flags. In particular, this allows one to see whether token was sent. - Don't migrate client if es_allow_migration is false. |
#
03e6b668 |
|
08-Nov-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.6.0 - [FEATURE] QUIC and HTTP/3 Internet Draft 24 support |
#
a0e1aeee |
|
31-Oct-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.5.0 - [API] lsquic_engine_connect() can now be passed QUIC version to use. - [OPTIMIZATION] Queue opportunistic ACKs if there is data to be sent. - [BUGFIX] Don't evict streams from priority iterator if there is only one queue. - [OPTIMIZATION, BUGFIX] Several other optimizations and bug fixes. - Use ls-qpack v0.10.7. |
#
df992bce |
|
24-Oct-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.9 - [BUGFIX] IETF QUIC server: fix uninitialized variable use. - [BUGFIX] make sure TLSv1.3 is not disabled in SSL object. - [BUGFIX] Use issuer name and serial number to cache certs (SKID values are not unique). - [BUGFIX] Always set the idle alarm in IETF connection so that it can time out. |
#
0adf085a |
|
16-Oct-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.7 - Add echo client and server to the distibution. - Add MD5 client and server to the distibution. - Fix http_client: check command-line arguments better, prevent crash. - Fix IETF conn: can_write_ack() should only care about APP PNS. - Client: delay stream creation until handshake succeds. - Reset HTTP stream whose write end is closed prematurely. - Fix tickable(): mirror behavior of tick() wrt buffered packets. - Log reason why engine is tickable. |
#
ad08470c |
|
11-Oct-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.6 - Minor code cleanup and logging improvements. - Server and client programs: include library version (e.g. 2.4.6) into `server' and `user-agent' headers. |
#
4947ba95 |
|
09-Oct-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.5 - [OPTIMIZATION]: flush encoder stream only when necessary. - [BUGFIX] Use ls-qpack v0.10.2 for new API -- and for a bug fix. - [BUGFIX] Typo in IETF conn SETTINGS writer. - Use latest BoringSSL. |
#
662de5e1 |
|
08-Oct-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.4 - [API] Add lsquic_alpn2ver() to aid parsing Alt-Svc header. - [BUGFIX] NULL dereference when H3 frame header would be split. - [BUGFIX] Do not close fixed-size H3 frame prematurely. - [BUGFIX] Allow PING frames in IETF mini conn. - [BUGFIX] Mini conns: don't send any packets after receiving CONNECTION_CLOSE. - [BUGFIX] Client migration: reserve slot for DCID from transport params. - [BUGFIX] Allow max_early_data_size=0 -- early_data might not be there. - [BUGFIX] Use an invalid stream number to reset BPT cache (zero is now a valid stream number). - [SPEC] Use FINAL_SIZE_ERROR when FIN mismatch is detected. - [OPTIMIZATION] Closed connection only gets one chance to send packets. - [OPTIMIZATION] Flush headers stream before packetizing stream data. - [OPTIMIZATION] process QPACK encoder STREAM frames immediately. - Update ls-qpack to v0.10.1. |
#
1245d2e0 |
|
30-Sep-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.3 - Add GQUIC versions to the list of h3 ALPNs for Alt-Svc header. For example, h3-Q043. Chrome will switch to using this format at some point in the future. - [BUGFIX] Send correct value in max_streams_uni transport param - [SPEC] Abort IETF QUIC connection if max_early_data_size is not set to 0xFFFFFFFF |
#
65728dc5 |
|
23-Sep-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.2 - [BUGFIX] H3 framing: fix zero-byte write when space is available - [BUGFIX] Don't send STREAM frame when incoming unidirectgional stream is closed - [BUGFIX] Cancel all pending writes by stream reset by a GOAWAY - [BUGFIX] Fix use-after-free in IETF full conn - [OPTIMIZATION] Wait for session tickets for two seconds and then drop SSL object and crypto streams. |
#
92f6e17b |
|
18-Sep-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.4.0 [FEATURE] QUIC and HTTP/3 Internet Draft 23 support |
#
cca25415 |
|
13-Sep-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.3.0 - [FEATURE] BBR congestion control is on by default - [BUGFIX] BBR app-limited logic - [BUGFIX] Fix uninitialized warnings in IETF - [BUGFIX] Update ls-qpack to v0.9.14 - [CLEANUP] Code cleanup |
#
5392f7a3 |
|
11-Sep-2019 |
LiteSpeed Tech <info@litespeedtech.com> |
Release 2.2.0: server included, ID-22 supported (#76) |