#
a74702c6 |
|
06-May-2022 |
George Wang <gwang@litespeedtech.com> |
Release 3.1.0 |
#
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. |
#
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). |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
5392f7a3 |
|
11-Sep-2019 |
LiteSpeed Tech <info@litespeedtech.com> |
Release 2.2.0: server included, ID-22 supported (#76) |
#
229fce07 |
|
04-Jan-2019 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 1.17.11 Fix strict aliasing warning in when compiling with optimizations |
#
e8bd737d |
|
09-Apr-2018 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
[API Change, OPTIMIZATION] Only process conns that need to be processed The API is simplified: do not expose the user code to several queues. A "connection queue" is now an internal concept. The user processes connections using the single function lsquic_engine_process_conns(). When this function is called, only those connections are processed that need to be processed. A connection needs to be processed when: 1. New incoming packets have been fed to the connection. 2. User wants to read from a stream that is readable. 3. User wants to write to a stream that is writeable. 4. There are buffered packets that can be sent out. (This means that the user wrote to a stream outside of the lsquic library callback.) 5. A control frame (such as BLOCKED) needs to be sent out. 6. A stream needs to be serviced or delayed stream needs to be created. 7. An alarm rings. 8. Pacer timer expires. To achieve this, the library places the connections into two priority queues (min heaps): 1. Tickable Queue; and 2. Advisory Tick Time queue (ATTQ). Each time lsquic_engine_process_conns() is called, the Tickable Queue is emptied. After the connections have been ticked, they are queried again: if a connection is not being closed, it is placed either in the Tickable Queue if it is ready to be ticked again or it is placed in the Advisory Tick Time Queue. It is assumed that a connection always has at least one timer set (the idle alarm). The connections in the Tickable Queue are arranged in the least recently ticked order. This lets connections that have been quiet longer to get their packets scheduled first. This change means that the library no longer needs to be ticked periodically. The user code can query the library when is the next tick event and schedule it exactly. When connections are processed, only the tickable connections are processed, not *all* the connections. When there are no tick events, it means that no timer event is necessary -- only the file descriptor READ event is active. The following are improvements and simplifications that have been triggered: - Queue of connections with incoming packets is gone. - "Pending Read/Write Events" Queue is gone (along with its history and progress checks). This queue has become the Tickable Queue. - The connection hash no longer needs to track the connection insertion order. |
#
10c492f0 |
|
03-Apr-2018 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Update copyright year; add CONTRIBUTORS.txt |
#
50aadb33 |
|
23-Sep-2017 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
LSQUIC Client: Initial release |