Commit Graph

283 Commits

Author SHA1 Message Date
Dmitri Tikhonov e02bc3157d Release 2.12.14
- [BUGFIX] min RTO delay is 200 ms , not 1 second.
- [BUGFIX] calculate TLP timer correctly when only one packet is in
  flight.
- [BUGFIX] discard CRYPTO frames from lower levels after connection
  promotion.
- [BUGFIX] cancel path response if path could not be initialized.
- [BUGFIX] if push promise fails, do not invoke hset destructor.
2020-11-17 13:57:13 -05:00
Dmitri Tikhonov c338955a09 Fix: min RTO delay is 200 ms , not 1 second 2020-11-17 11:11:46 -05:00
Dmitri Tikhonov 6f2daf28d8 Fix: calculate TLP timer correctly when only one packet is in flight 2020-11-17 11:11:19 -05:00
Dmitri Tikhonov 4c9d8eb069 Fix: discard CRYPTO frames from lower levels after connection promotion 2020-11-17 11:08:19 -05:00
Dmitri Tikhonov 36d0fee2c1 Fix: cancel path response if path could not be initialized 2020-11-17 11:07:07 -05:00
Dmitri Tikhonov 0098937630 Fix: if push promise fails, do not invoke hset destructor 2020-11-17 11:04:32 -05:00
Dmitri Tikhonov df40e9cdd0 Release 2.12.12
Undo change in 2.12.11
2020-10-26 15:00:40 -04:00
Dmitri Tikhonov 177a63db21 Release 2.12.11
- [BUGFIX] Function that checks validity of handshake packets
2020-10-08 09:02:17 -04:00
Dmitri Tikhonov e0a487cf6e Fix function that checks validity of handshake packets
When Initial and 0-RTT packets are coalesced, they can be 1200
*together*.  lsquic_is_valid_hs_packet() should use the datagram
2020-10-08 08:50:20 -04:00
Dmitri Tikhonov 6eec0a76f7 Release 2.12.10
- [BUGFIX] Deactivate only *recent* HQ frame, not any HQ frame.
2020-10-06 16:54:03 -04:00
Dmitri Tikhonov a1630d9c4f Fix: deactivate only *recent* HQ frame, not any HQ frame 2020-10-06 16:53:03 -04:00
Dmitri Tikhonov 75f54c8c52 Release 2.12.9
- [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
- [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
2020-09-25 10:03:43 -04:00
Dmitri Tikhonov 2d7c7f881c Update version to 2.12.8 2020-09-08 15:45:19 -04:00
Dmitri Tikhonov 77cf229599 Fix: when stream is reset, it is writeable -- let user collect the error 2020-09-08 15:42:57 -04:00
Dmitri Tikhonov d91deca498 Update version to 2.12.7 2020-06-17 14:49:23 -04:00
Dmitri Tikhonov 9dd862ff6c Fix early data: call new BoringSSL function to set context
Need to call SSL_set_quic_early_data_context() to enable early data
in session tickets issued to the client.  This change was introduced
in when we switched to newer BoringSSL.
2020-06-17 14:47:49 -04:00
Dmitri Tikhonov 649eb4521c Update version to 2.12.6 2020-06-15 16:46:39 -04:00
Dmitri Tikhonov bade9e4226 Fix crash: check decrypt context before using it
This is a regression introduced when switched to the new BoringSSL API
in.  In the new APIs, read and write secrets are installed separately
and at different times.  The previous logic that checked context
initialization can no longer be used.  The new guard differentiates
between read and write secrets.
2020-06-15 16:35:51 -04:00
Dmitri Tikhonov 39bf17a6f1 Update version to 2.12.5 2020-06-12 10:14:05 -04:00
Dmitri Tikhonov 2c252f915b Update BoringSSL to later version, need this for ID-28
In ID-28, using TLS middlebox compatibility mode is forbidden and
we need a later version of BoringSSL for it to do the right thing.
This also means we had to update our code, because BoringSSL's QUIC
API has changed.
2020-06-12 10:00:17 -04:00
Dmitri Tikhonov 6dd81c92df Fix leak: free conns in Advisory Tick Time Queue in engine dtor 2020-06-12 10:00:14 -04:00
Dmitri Tikhonov 4c27a90c3c Fix: HTTP/3 headers may be followed immediately by trailers 2020-06-12 09:53:06 -04:00
Dmitri Tikhonov 432ffd65ae Fix: select new SCID when current SCID is retired 2020-06-12 09:50:53 -04:00
Dmitri Tikhonov 583766be5f Update version to 2.12.4 2020-06-04 10:41:54 -04:00
Dmitri Tikhonov c3c2342f79 mini conn: consider amplification when deciding to return TICK_SEND 2020-06-04 10:27:30 -04:00
Dmitri Tikhonov ad48a114a2 Fix: don't double-count tag length in amplification logic 2020-06-04 10:27:05 -04:00
Dmitri Tikhonov 1fbdbcee1d Update version to 2.12.3 2020-05-06 10:13:53 -04:00
Dmitri Tikhonov 780fa2c574 Fix: IETF mini conn not tickable if can't send due to amplification 2020-05-06 10:04:32 -04:00
Dmitri Tikhonov 10f94146d0 Fix amplification mitigation in 0-RTT case.
From the spec:

   Prior to validating the client address, servers MUST NOT send more
   than three times as many bytes as the number of bytes they have
   received.  This limits the magnitude of any amplification attack that
   can be mounted using spoofed source addresses.  In determining this
   limit, servers only count the size of successfully processed packets.
2020-05-06 10:03:36 -04:00
Dmitri Tikhonov 652129e69b Update version to 2.12.2 2020-04-17 12:25:14 -04:00
Dmitri Tikhonov fcac25b623 Honor max packet size on the client and when path changes 2020-04-17 12:11:57 -04:00
Dmitri Tikhonov 35fc553f01 Fix: heed peer's max_packet_size transport parameter 2020-04-17 12:11:28 -04:00
Dmitri Tikhonov 76e2cfc99a Fix: a connection is tickable if it has unsent packets 2020-04-17 12:07:22 -04:00
Dmitri Tikhonov 898664ea29 Fix: place connections on tickable queue when sending is reenabled
Because connections' tickability depends on the ability of the engine
to send packets (ENPUB_CAN_SEND is checked), this property should be
recalculated when sending is reenabled in the engine via
lsquic_engine_send_unsent_packets()
2020-04-17 12:06:48 -04:00
Dmitri Tikhonov f4bfba069b Release 2.12.1
[BUGFIX] ACK ping-pong: TIMESTAMP frame is not to be acked.
2020-03-23 17:24:14 -04:00
Dmitri Tikhonov aedecb458e Add tutorial.rst -- forgotten in the previous commit 2020-03-02 08:57:22 -05:00
Dmitri Tikhonov afe3d36359 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.
2020-03-02 08:53:41 -05:00
Dmitri Tikhonov fa4561dcea API: add ea_alpn that is used when not in HTTP mode 2020-02-28 14:03:57 -05:00
Dmitri Tikhonov abc972dafe Release 2.11.1: fix clang compilation 2020-02-24 12:15:23 -05:00
Dmitri Tikhonov bc520ef752 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.
2020-02-24 12:02:57 -05:00
Dmitri Tikhonov feca77f50d Add experimental support for delayed ACKs extension 2020-02-21 14:26:25 -05:00
Dmitri Tikhonov df25d34a5e Fail engine ctor if stream callbackes are not specified 2020-02-20 17:01:15 -05:00
Dmitri Tikhonov 83506617f9 Set lshpack include directory in the library's Makefile 2020-02-20 17:00:23 -05:00
Dmitri Tikhonov 0bd320303d Switch to readthedocs.org for hosting documentation
Add API reference.
2020-02-20 16:56:57 -05:00
Dmitri Tikhonov b86524a470 Code cleanup. Improve comments in lsquic.h 2020-02-20 16:56:06 -05:00
Dmitri Tikhonov aa82021170 Release 2.10.6
- [BUGFIX] HTTP/3 framing: don't misinterpret rare occurence as error.
- [BUGFIX] Send gap warning due to missing poisoned packet.
2020-02-14 09:11:22 -05:00
Dmitri Tikhonov 35ac25bb73 Add stream unit test disproving issue #106 2020-02-14 08:44:19 -05:00
Dmitri Tikhonov 1bdb91d191 Release 2.10.5
- [BUGFIX] BBR: call cci_sent() with correct arguments and at correct time.
- Refactor transport parameters module.
- Minor code cleanup.
2020-02-13 09:36:04 -05:00
Dmitri Tikhonov e68b045258 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).
2020-02-11 08:53:24 -05:00
LiteSpeed Tech 45aae370f6
Merge pull request #105 from bvdberg/bb_duplicate_includes
Fix duplicate header includes
2020-02-11 08:39:26 -05:00