History log of /lsquic/src/liblsquic/lsquic_enc_sess.h
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# a74702c6 06-May-2022 George Wang <gwang@litespeedtech.com>

Release 3.1.0

# 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

# 084338b1 02-Jun-2021 George Wang <gwang@litespeedtech.com>

Release 3.0.0

# 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.

# 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).

# 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.

# 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.

# 2f4629f2 01-Oct-2020 Dmitri Tikhonov <dtikhonov@litespeedtech.com>

Fix several thread safety issues

Fixes bug #128 and bug #167.

# 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.

# 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.

# 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().

# 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.

# 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.

# 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).

# 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.

# 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.

# 2f7aa658 13-Nov-2019 Dmitri Tikhonov <dtikhonov@litespeedtech.com>

Release 2.6.3

- [BUGFIX] Close DATA frames with empty payload correctly.

# 03e6b668 08-Nov-2019 Dmitri Tikhonov <dtikhonov@litespeedtech.com>

Release 2.6.0

- [FEATURE] QUIC and HTTP/3 Internet Draft 24 support

# 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

# 5392f7a3 11-Sep-2019 LiteSpeed Tech <info@litespeedtech.com>

Release 2.2.0: server included, ID-22 supported (#76)