Commit graph

56 commits

Author SHA1 Message Date
wangfuyu
646652a67c
update boringssl version info to support h3 (#346)
* update boringssl version info to support h3

RFC9001: QUIC transport parameters are carried in a TLS extension.
Different versions of QUIC might define a different method for negotiating transport configuration.

h3: quic_transport_parameters(0x39)

* Fix comments about support draft verions
2021-11-07 07:57:39 -05:00
wangweiwei
70e6fdd86a
Update README.md (#309)
lsquic can built&run on iOS platform.
2021-08-17 09:09:00 -04:00
LiteSpeed Tech
95648693ab
Update README.md 2021-06-05 19:18:13 -04:00
LiteSpeed Tech
df5cc4b6a4
Update README.md 2021-06-05 19:12:57 -04:00
LiteSpeed Tech
4ffff819e8
README: add "docs passing" badge 2021-02-15 08:35:25 -05:00
Dmitri Tikhonov
eb023232f1 Update badges -- add MacOS 2021-02-12 09:41:35 -05:00
Dmitri Tikhonov
8d534ef0fd Update badging in the README 2021-02-11 17:19:11 -05:00
Dmitri Tikhonov
26e8f082c9 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.
2021-02-10 08:51:11 -05:00
Dmitri Tikhonov
1a0003e3b9 Release 2.27.2
- [BUGFIX] Memory corruption in receive history copy-ranges function.
2021-01-06 17:53:07 -05:00
LiteSpeed Tech
96214405b1
Update badge image to use travis-ci.com 2020-12-17 09:29:39 -05:00
Dmitri Tikhonov
4429f8ea1e 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.
2020-10-28 08:10:17 -04:00
Dmitri Tikhonov
758aff32b9 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.
2020-10-21 09:05:26 -04:00
Dmitri Tikhonov
e55a45021d Fix BoringSSL version in README.md 2020-10-07 09:45:03 -04:00
Dmitri Tikhonov
fbc6cc0413 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.
2020-10-07 09:41:26 -04:00
Dmitri Tikhonov
cb1e8c1022 Update BoringSSL version to b117a3a0b7bd11fe6ebd503ec6b45d6b910b41a1 2020-10-05 10:41:36 -04:00
Dmitri Tikhonov
b62ec17fd2 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.
2020-09-29 08:56:43 -04:00
Dmitri Tikhonov
2e1429b465 Look for .so BoringSSL libs if LSQUIC_SHARED_LIB option is on 2020-09-28 11:58:02 -04:00
Aaron France
038a944155
allow for making a shared library (Ref: #137) (#152) 2020-09-28 11:56:05 -04:00
Dmitri Tikhonov
b1a7c3f944 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.
2020-09-15 16:42:13 -04:00
Dmitri Tikhonov
7483dee074 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.
2020-07-06 17:35:21 -04:00
Dmitri Tikhonov
f913a2972b Release 2.16.2
- [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.
2020-06-12 08:04:42 -04:00
Dmitri Tikhonov
f50b91483b Update AppVeyor badge (now lsquic, not lsquic-client) 2020-06-03 08:15:16 -04:00
Dmitri Tikhonov
fb3e20e0bc Fix Windows support 2020-06-03 00:20:46 -04:00
Dmitri Tikhonov
08927b281c Update list of supported versions in README.md 2020-05-27 10:35:58 -04:00
Dmitri Tikhonov
9a690580c9 Rename test/unittests to tests/ and test/ to bin/ 2020-05-17 12:42:32 -04:00
Dmitri Tikhonov
7b08963c02 Use later version of BoringSSL 2020-04-01 14:41:35 -04:00
Dmitri Tikhonov
a5fa05f958 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_".
2020-03-12 09:02:56 -04:00
Joshua Reynolds
740e26dce6
Link to external docs & update year 2020-03-02 19:51:40 -06: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
9fc120419d 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.
2020-01-28 09:35:09 -05:00
Dmitri Tikhonov
fb96f4dd43 Release 2.9.0
- [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.
2020-01-20 09:41:37 -05:00
Dmitri Tikhonov
7a8b2ece3a 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.
2019-12-23 16:14:20 -05:00
Dmitri Tikhonov
767cf6112c Release 2.6.2
- [BUGFIX] SCID!=ODCID rule applies to Retry packets, not regular
  packets.
- [BUGFIX] Zero-RTT: BoringSSL no longer flips read/write secrets.
- [BUGFIX] Truncate ACK frame rather instead of aborting IETF
  connection.
- [BUGFIX] Client: don't send duplicate reset tokens.
- [BUGFIX] Remove invalid assertion in H3 framing code.
- Silence a warning in send ctl by restructuring switch() statement.
2019-11-11 14:05:54 -05:00
Dmitri Tikhonov
4947ba950d Release 2.4.5
- [OPTIMIZATION]: flush encoder stream only when necessary.
- [BUGFIX] Use ls-qpack v0.10.2 for new API -- and for a bug fix.
- [BUGFIX] Typo in IETF conn SETTINGS writer.
- Use latest BoringSSL.
2019-10-08 15:54:01 -04:00
Dmitri Tikhonov
f87fb49cbd Update README.md: Internet Draft 23 is supported 2019-09-18 11:39:34 -04:00
LiteSpeed Tech
2718741832
Fix Docker build (#79) 2019-09-16 10:17:30 -04:00
Dmitri Tikhonov
c38e7df733 Fix build steps in README.md 2019-09-16 09:09:08 -04:00
LiteSpeed Tech
5392f7a3b0
Release 2.2.0: server included, ID-22 supported (#76) 2019-09-11 11:27:58 -04:00
LiteSpeed Tech
199c01ab93
Update build instructions in the README 2019-02-01 02:24:29 -05:00
LiteSpeed Tech
93b02ebee8
Add AppVeyor badge to README 2019-01-30 22:29:55 -05:00
LiteSpeed Tech
6259599e6e
Add Cirrus CI badge to README 2019-01-28 23:37:37 -05:00
LiteSpeed Tech
1b3a179789
README: IETF QUIC support is on a branch; add link 2019-01-23 10:01:00 -05:00
Dmitri Tikhonov
9626cfc25b 1.11.0: [FEATURE] Add support for Q044 2018-08-15 15:06:58 -04:00
Dmitri Tikhonov
97028223ac Drop support for Q041 2018-05-09 14:43:22 -04:00
Dmitri Tikhonov
052a1c28ad Drop support for versions Q037, Q038, and Q042 2018-05-09 14:01:46 -04:00
Dmitri Tikhonov
d5eb659e46 Update README: version Q043 is now supported 2018-05-09 09:34:48 -04:00
Dmitri Tikhonov
aff2a1d865 Update README and CONTRIBUTORS 2018-05-04 16:24:56 -04:00
Dmitri Tikhonov
9918a066f1 Point Travis-CI image to correct URI 2018-04-23 15:12:41 -04:00
Dmitri Tikhonov
1fc8f998cd Add Travis status 2018-04-23 14:54:57 -04:00
Dmitri Tikhonov
5296a94ba2 Fix bug in lsquic_engine_connect() exposed by recent changes. 2018-04-20 15:19:44 -04:00