- Jul 06, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Jun 24, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Infinite loop in stream: advance read offset when discarding data. - [OPTIMIZATION] Header protection: only initialize cipher once. - [OPTIMIZATION] Batch header protection application.
-
- Jun 18, 2020
-
-
Dmitri Tikhonov authored
-
Dmitri Tikhonov authored
- [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().
-
- Jun 15, 2020
-
-
Dmitri Tikhonov authored
- [OPTIMIZATION] Stash up to two reordered packets in IETF mini conn instead of dropping them. - [BUGFIX] Crash: check decrypt context before using it. This regression was introduced in 2.16.2.
-
- Jun 12, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] ID-28: do not use TLS middlebox compatibility mode in ClientHello. This change requires using a newer version of BoringSSL. - [BUGFIX] Free connections in Advisory Tick Time Queue in engine dtor. - [BUGFIX] IETF QUIC client: narrow migration check to a single path. - [BUGFIX] NULL dereference: set function pointers for alarm for path challenges 2 and 3. - [BUGFIX] HTTP/3 headers may be followed immediately by trailers. - [BUGFIX] Log messages when SCID changes.
-
- Jun 09, 2020
-
-
Dmitri Tikhonov authored
- [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 ver...
-
- Jun 03, 2020
-
-
Dmitri Tikhonov authored
-
- May 27, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- May 19, 2020
-
-
Dmitri Tikhonov authored
-
- May 12, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] ALPN-to-version mapping: do not skip h3-Q050. - [BUGFIX] Frame reader: skip headers if target stream is closed.
-
- May 06, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Fix amplification mitigation in 0-RTT case. - [BUGFIX] IETF mini connection should not tickable if cannot send a packet due to amplification. - [BUGFIX] Fail if active_connection_id_limit TP is smaller than 2. - [BUGFIX] Qlog server certificates for IETF QUIC connections. - [BUGFIX] Uninitialized struct padding usage in tokgen (benign). - [BUGFIX] Incorrect argument to shi_lookup() (benign).
-
- Apr 29, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] In coalesced datagram, ignore packets whose CID does not match. - [BUGFIX] Frame reader: skip headers if target stream is not found. - [BUGFIX] Log message in QPACK decoder handler.
-
- Apr 24, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Heed es_rw_once for pushed HTTP/3 streams. - [BUGFIX] IETF client: set correct flags on bidirectional streams. - [BUGFIX] Generate Cancel Stream QPACK instructions for abandoned streams. - [BUGFIX] Do not call header callbacks after stream is closed. - Use ls-qpack 2.1.1
-
- Apr 15, 2020
-
-
Dmitri Tikhonov authored
- [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
-
- Apr 08, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Apr 07, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Mar 30, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Mar 23, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] ACK ping-pong: TIMESTAMP frame is not to be acked.
-
- Mar 13, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Use of new lsxpack_header API's hsi_prepare_decode().
-
- Mar 12, 2020
-
-
Dmitri Tikhonov authored
-
Dmitri Tikhonov authored
- [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_".
-
- Mar 02, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Feb 24, 2020
-
-
Dmitri Tikhonov authored
-
Dmitri Tikhonov authored
- [FEATURE] QUIC and HTTP/3 Internet Draft 27 support. - [FEATURE] Add experimental delayed ACKs extension. - Drop support for Internet Draft 24. - Code cleanup.
-
- Feb 14, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] HTTP/3 framing: don't misinterpret rare occurence as error. - [BUGFIX] Send gap warning due to missing poisoned packet.
-
- Feb 13, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] BBR: call cci_sent() with correct arguments and at correct time. - Refactor transport parameters module. - Minor code cleanup.
-
- Feb 11, 2020
-
-
Dmitri Tikhonov authored
- [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).
-
- Jan 31, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Cancel path responses and challenges on old path when switching to new path. - Logging network path information.
-
- Jan 30, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Do not delay ACKs for Initial and Handshake packets. - [BUGFIX] Send PATH_CHALLENGE if path changed before mini conn promotion. - Logging improvements. - http_client: discard data faster.
-
- Jan 29, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Coalesced packets could get longer than normal packet size. - Add spin bit configuration option es_spin (-o spin=[01]). - Disable spin bit in 1/16 of connections. - Improve logging a bit.
-
- Jan 28, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Jan 20, 2020
-
-
Dmitri Tikhonov authored
- [API] Drop support for Q039. - Improve ACK-queuing logic. Send an ACK once in a while if peer keeps on sending non-ack-eliciting packets. - Improve Alt-Svc string: Q050 and later are not included in the old-style "quic" string. - Send stateless resets if connection could not be promoted. - Schedule MAX_DATA if needed when DATA_BLOCKED is received. - Use ls-qpack 0.11.2 -- needed for server push optimization. - Code cleanup: handle some error cases, improve logging.
-
- Jan 16, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Use ls-qpack 0.11.1 - [OPTIMIZATION] Generate random bytes in batches. - Change loss_bits transport parameter ID to 0x1057 following latest draft. - Randomize period with which PINGs are sent to elicit ACKs. - Some refactoring and code cleanup.
-
- Jan 14, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Invalid read when parsing IETF transport parameters (this was benign). - [OPTIMIZATION] Frame bundling when using buffered packets in IETF QUIC: a) flush QPACK decoder stream and b) include ACKs in opportunistic fashion. - Fix HTTP/3 framing unit test. - Code cleanup.
-
- Jan 09, 2020
-
-
Dmitri Tikhonov authored
- [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.
-
- Jan 06, 2020
-
-
Dmitri Tikhonov authored
- [BUGFIX] Fix unintended sign extension when removing header protection.
-
Dmitri Tikhonov authored
- [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.
-
- Dec 30, 2019
-
-
Dmitri Tikhonov authored
- [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.
-
- Dec 23, 2019
-
-
Dmitri Tikhonov authored
- [FEATURE] Add support for Q050. - [OPTIMIZATION] Reduce mallocs in gQUIC handshake. - [BUGFIX] Disable redo of failed STREAM frame insertion with debug logging.
-