#
a74702c6 |
|
06-May-2022 |
George Wang <gwang@litespeedtech.com> |
Release 3.1.0 |
#
d190ae8e |
|
12-Jan-2022 |
wangfuyu <wangfuyu1989@foxmail.com> |
m) fix: handshake may failed if client send too many early data (#352) Co-authored-by: wangfuyu <ivanfywang@gmail.com> |
#
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. |
#
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). |
#
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. |
#
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. |
#
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. |
#
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. |
#
fb3e20e0 |
|
03-Jun-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Fix Windows support |
#
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. |
#
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_". |
#
feca77f5 |
|
22-Feb-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Add experimental support for delayed ACKs extension |
#
f4841319 |
|
11-Feb-2020 |
Bas van den Berg <b.van.den.berg.nl@gmail.com> |
Fix duplicate header includes |
#
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. |
#
7a8b2ece |
|
24-Dec-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.8.0 - [FEATURE] Add support for Q050. - [OPTIMIZATION] Reduce mallocs in gQUIC handshake. - [BUGFIX] Disable redo of failed STREAM frame insertion with debug logging. |
#
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. |
#
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. |
#
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. |
#
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) |