a74702c6 |
06-May-2022 |
George Wang <gwang@litespeedtech.com> |
Release 3.1.0 |
454939cd |
24-Apr-2022 |
Ryan A. Pavlik <ryan.pavlik@gmail.com> |
CMake improvements (#369) * Silence CMake warning by updating minimum versions. * Generate files to build directory, not source directory |
f07b3eae |
16-Dec-2021 |
Tyler Young <tyler.young@stirlinglabs.com> |
[WIP] use vcpkg for getopt; build windows shared lib enhancements (#350) * fix MSVC compiler shared library issues - mostly around 'extern const' * add vcpkg install getopt to appveyor-windows.yml show appveyor where to get getopt from vcpkg (non-static lib to avoid LGPL violation) * add missing else case in lsquic_shared_support.h for windows static lib path * have cmake spit out it's version have cmake copy dependent dlls to build dir for tests on windows (getopt.dll) * copy getopt.dll dep for tests added commented version that requires >= 3.21 but handles any dll deps * try caching boringssl dir to reduce CI build time since it's always same commit specified in config file define VCPKG_ROOT in env since I can't seem to find it by VCPKG_ROOT or VCPKG_INSTALLED_DIR in appveyor's cmake v3.16 + vcpkg * make windows cache dependent on yml and cmd * sync up with changes to ls-qpack |
103d1468 |
18-Oct-2021 |
anatasluo <41671456+anatasluo@users.noreply.github.com> |
fix: fix compile error caused by store_ctx (#338) When I compile lsquic with boringssl, I got following error: error: storage size of ‘store_ctx’ isn’t known Signed-off-by: anatasluo <luolongjuna@gmail.com> |
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. |
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. |
8ecb980d |
18-Feb-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.29.1 - 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. |
b54d1e63 |
11-Feb-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Make libevent optional; move binaries into bin/ |
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. |
5650ee6c |
27-Jan-2021 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.27.6 - [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. |
65c5d502 |
23-Jan-2021 |
wangweiwei <77607262+wangweiwei1188@users.noreply.github.com> |
fix bug in send_packets_one_by_one on windows platform when send multiple iovs |
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. |
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. |
b0dd78b8 |
30-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Keep ea_get_ssl_ctx() optional for the client |
821ffbba |
28-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Fix Windows build |
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. |
ce96fe8c |
21-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Remove strndup definition from http_client (not used) |
25332c12 |
21-Oct-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
http_server: use lsquic_strndup() on Windows |
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) |
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. |
c3c69ba3 |
09-Sep-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.19.10 -- Fix Windows and MacOS builds |
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. |
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. |
b329a00e |
23-Jul-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Release 2.18.2 - [BUGFIX] Send prediction: lone path challenges do not get squeezed out - Fix crash in http_client: now -K and -B can be used simultaneously |
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. |
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(). |
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. |
9a690580 |
17-May-2020 |
Dmitri Tikhonov <dtikhonov@litespeedtech.com> |
Rename test/unittests to tests/ and test/ to bin/ |