Dirkjan Ochtman
51685fb760
Upgrade to tokio 1, bytes 1 and rustls 0.19
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
0dd5537e25
quinn-h3: change 4-tuple to a struct
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
889d2b3e03
quinn-h3: improve trace output
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
6de0b470be
quinn-h3: fix typo in example function name
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
6bbea44fb5
quinn-h3: reduce rightward drift in RecvUni Future impl
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
661884f1ca
quinn-h3: enable client-side key logging in tests
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
48a3213f74
quinn-h3: copy tracing subscriber setup from quinn
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
ea81e654da
quinn-h3: clarify error message for closed control stream
2021-01-25 08:53:00 +01:00
Benjamin Saunders
1e5a538221
Limit concurrent streams rather than accept queue size
...
Previously, we limited the number of streams that could be opened by
the peer but not `accept`ed by the application. However, to guarantee
bounded resource use, applications will typically want to limit the
number of streams they process concurrently. While this could
be *approximately* implemented at the application layer by controlling
calls to accept, that approach has a significant drawback: If streams
are slow to process, the worst-case per-stream latency observed by a
peer who opens the maximum number of streams can be arbitrarily bad,
because streams may be opened above the limit the local application is
willing to process. Reducing the number of unaccepted streams
tolerated can reduce the proportion of streams affected, but reducing
it too low will increase the number of round trips required to open
any given number of streams, increasing average latency significantly.
As a side benefit, this reduces the effort needed for applications to
limit concurrency to a fixed quantity, which is expected to be the
overwhelmingly common case. Should a use case for dynamic concurrency
limits arise, we can expose a setter.
2021-01-22 11:39:00 -08:00
Dirkjan Ochtman
17fe82b598
Apply clippy fixes for 1.49
2021-01-01 11:16:05 -08:00
Dirkjan Ochtman
120c8157ae
Update futures-* to 0.3.8
...
Prevents security issues in futures older than 0.3.5.
Specifically RUSTSEC-2020-0059 and RUSTSEC-2020-0060.
2020-12-21 14:22:18 -08:00
Dirkjan Ochtman
3b8730d651
Upgrade to directories-next 2
2020-12-21 14:22:18 -08:00
Dirkjan Ochtman
4935f58b25
Update rand to 0.8
2020-12-21 14:22:18 -08:00
Dirkjan Ochtman
f14c915e1f
Apply clippy suggestions for Rust 1.48
2020-11-20 14:24:56 -08:00
Dirkjan Ochtman
d1e536665b
Add some more error conveniences
2020-10-29 10:45:50 -07:00
Dirkjan Ochtman
1bca0f7c2a
Switch from err-derive to thiserror
...
thiserror is easier to use, has fewer dependencies and is more popular.
2020-10-29 10:45:50 -07:00
Dirkjan Ochtman
d5b47f601d
Unwrap unused results from invalid config values
2020-10-12 12:13:50 -07:00
Dirkjan Ochtman
ff086b4a2c
Use combinator instead of matches!()
2020-10-11 10:43:10 -07:00
Dirkjan Ochtman
012263be28
Implement miscellaneous clippy (1.47) suggestions
2020-10-11 10:43:10 -07:00
Dirkjan Ochtman
5bb0a32cd4
Use matches!() macro where appropriate
2020-10-11 10:43:10 -07:00
kwantam
ee6f7d01f2
pin all crates with rustls as transitive dep
...
this is necessary for export_keying_material to work;
can be undone once rustls pushes a new version of the crates.
2020-09-29 09:35:14 +02:00
Jean-Christophe BEGUE
babb07b079
H3: Wake connection on request finish
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
9594ba7ee3
H3: Refactor shutdown condition in h3 proto
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
9a79718779
H3: Prevent client to start new requests on shutdown
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
b851934228
H3: Refactor GoAway mechanism to actually use the id
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
22200ae79e
H3: store side information in proto::connection
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
0cdf96e921
H3: GoAway from client
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
878970b833
H3: Clarify connection end return value
2020-07-26 22:39:28 +02:00
Jean-Christophe BEGUE
b940a3ae36
H3: tests log level from env
2020-07-26 22:39:28 +02:00
Dirkjan Ochtman
68570e518e
Clean up new clippy warnings
2020-07-17 08:17:37 +02:00
Dirkjan Ochtman
5a4d18f837
Upgrade to rustls-0.18
2020-07-05 23:05:33 +02:00
Alexander Jackson
5e62c3ffc2
Fix some broken documentation in quinn-h3
...
Fix some broken documentation links in quinn-h3 and clear up some ambiguity.
`SendRequest` does not yield a `SendData`, and only the `send_response()`
method on `server::Sender` will return one.
2020-06-30 20:19:27 +02:00
Benjamin Saunders
a1e8c56cb0
Update initial salt, retry integrity key/nonce, and versions
2020-06-30 08:57:14 +02:00
Dirkjan Ochtman
5484d37c76
Migrate to directories-next
...
directories is no longer being maintained and the final released version
causes a dependency conflict (cfg-if, versus tracing).
2020-06-22 14:46:13 +02:00
Jean-Christophe BEGUE
b5c8a218ad
H3: Name pin projections as required by 0.4.21
2020-06-14 22:17:53 +02:00
Jean-Christophe BEGUE
0c6a27c37a
H3: ignore any number of unknown settings
2020-06-14 22:17:53 +02:00
Benjamin Saunders
c2c8e12ae6
Style tweak
2020-06-07 14:42:16 +02:00
Benjamin Saunders
563069e18c
Signal ALPN/SNI availability during handshake
...
Allows processing of 0-RTT data sensitive to ALPN/SNI.
2020-06-07 14:42:16 +02:00
Benjamin Saunders
128c1b2a5e
Decouple ClientHello data from peer identity
...
These are determined at different times for incoming connections, so
bundling them together was fairly ugly.
2020-06-07 14:42:16 +02:00
Jean-Christophe BEGUE
4945573fda
H3: make the h3 client default port 443
2020-06-05 13:06:07 -07:00
Jean-Christophe BEGUE
448ba9a061
H3: Check request authority for client
2020-06-05 20:32:18 +02:00
Jean-Christophe BEGUE
2444a60220
H3: trace arriving requests
2020-06-05 20:32:18 +02:00
Jean-Christophe BEGUE
94d5de1709
H3: Check authority validity for server
...
As defined in https://github.com/quicwg/base-drafts/pull/3475/files
and an empty message aborts the commit.
2020-06-05 20:32:18 +02:00
Jean-Christophe BEGUE
cf0801c8fd
H3: reject request when headers are invalid
2020-06-05 20:32:18 +02:00
Dirkjan Ochtman
73fbb9bdee
tracing-subscriber 0.2.5 is required since 77aeb5544
2020-06-04 22:36:09 +02:00
Dirkjan Ochtman
11b678ca4a
Fix warnings about must-use value of mem::replace()
2020-06-04 22:36:09 +02:00
dependabot-preview[bot]
a141a16e0d
Update proptest requirement from 0.9.1 to 0.10.0
...
Updates the requirements on [proptest](https://github.com/altsysrq/proptest ) to permit the latest version.
- [Release notes](https://github.com/altsysrq/proptest/releases )
- [Changelog](https://github.com/AltSysrq/proptest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/altsysrq/proptest/compare/v0.9.1...0.10.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com >
2020-06-01 21:20:54 -07:00
Jean-Christophe BEGUE
cbbd76ec60
H3: poll for STOP_SENDING
2020-05-29 15:22:26 +02:00
Benjamin Saunders
ca689d33d6
Update version numbers for draft 28
2020-05-25 06:22:35 +02:00
Benjamin Saunders
d92a567034
Return UnknownStream from Connection::reset for closed/reset streams
...
Improves consistency with other stream interfaces. H3 logic was
updated to ignore errors to preserve existing behavior, but future
work might want to insert some unwraps there if static correctness
guarantees are available.
2020-05-23 19:08:46 +02:00