#
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. |
#
61e670e1 |
|
19-Jan-2021 |
Pi Iyer <54725951+prchander@users.noreply.github.com> |
Fix typo in API docs |
#
38e83598 |
|
12-Jan-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
API: add lsquic_conn_get_sni(), fixes issue #203 |
#
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). |
#
65113787 |
|
31-Dec-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.27.0 - [API] Remove keylog callbacks. See issue #188. - Add a bit more ALPN logging. |
#
292abba1 |
|
23-Dec-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.26.2 - [BUGFIX] Do not drop incoming data when STOP_SENDING is received. - [BUGFIX] Receipt of STOP_SENDING should not cause read-reset. - [BUGFIX] Allow stream writes after receiving RESET. - [BUGFIX] Typo in stream: ANDing enum with wrong flag. - [BUGFIX] Reset elision: do not use zero as special stream ID value, for zero is a valid stream ID in IETF QUIC. - [API] Add optional on_conncloseframe_received() callback. - Use zero error code in RESET stream sent in response to STOP_SENDING. |
#
fcbdf653 |
|
09-Dec-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.26.0 - [OPTIMIZATION] Adjust packet reordering threshold when spurious losses are detected. - [API] Pass pointer to local sockaddr to ea_get_ssl_ctx() callback. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
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. |
#
08c45823 |
|
15-Apr-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.14.3 - [BUGFIX] gQUIC: pass correct stream to hsi_create_header_set() callback. - [BUGFIX] Use ls-hpack 2.1.1 - Improve stream code readability. - Use ls-qpack 2.0.5 |
#
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. |
#
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(). |
#
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. |