Commit Graph

1601 Commits

Author SHA1 Message Date
Dirkjan Ochtman 1a60157ea6 Set up CI with Azure Pipelines 2019-07-20 15:40:42 -07:00
Dirkjan Ochtman 73b5dad6a2 Fix obsolete import in non-Unix fallback code 2019-07-20 15:40:42 -07:00
stammw e2ee96de60 H3: Code reformatting from fmt update 2019-07-20 15:40:42 -07:00
Benjamin Saunders f173375cbc Remove redundant arguments from Connection::new
We only need the server config on incoming connections.
2019-07-11 20:52:19 +02:00
Benjamin Saunders 022c191d40 Clarify IncomingStreams semantics 2019-07-11 20:52:19 +02:00
Benjamin Saunders fe33e3b956 s/OsRng/StdRng/
This is a saner default, removing the need for a syscall for every
bit of randomness generated.
2019-07-11 20:52:19 +02:00
Benjamin Saunders e7929713cd Handle unclear interop ALPN 2019-07-11 20:52:19 +02:00
Benjamin Saunders c2e9cc6c2a Acknowledge close
This allows peers to enter the draining state immediately, which could
reduce resource use.
2019-07-11 20:52:19 +02:00
Benjamin Saunders 7001cac075 Refactor close frame representation
APPLICATION_CLOSE and CONNECTION_CLOSE are handled similarly, so
separate cases was gratuitously verbose.
2019-07-11 20:52:19 +02:00
Benjamin Saunders 983579e2b7 Don't report loss of an already-closed connection
The Closed state is entered
- at the local application's request;
- at the peer's request;
- or when an error is detected.

In the first case, the application is already aware of the closure. In
the latter cases, connection loss is reported immediately. Hence,
reporting connection loss when a close frame is received in the Closed
state is always redundant.
2019-07-11 20:52:19 +02:00
Benjamin Saunders 3921be6fd9 Don't test key update until after 1-RTT data has been exchanged 2019-07-11 20:52:19 +02:00
Benjamin Saunders 3a47f95f83 Remove involvement of anti-amplification in path validation
This wasn't working, and is not required by the spec.
2019-07-11 20:52:19 +02:00
Benjamin Saunders bab18dad0c Path validation no longer requires special routing 2019-07-11 20:52:19 +02:00
Benjamin Saunders df21b2d6a2 Correct max_ack_delay transport parameter value 2019-07-11 20:52:19 +02:00
Benjamin Saunders 66fea29f14 Detect ack of unsent packets 2019-07-11 20:52:19 +02:00
Benjamin Saunders 6feb0fd4fe Draft 21 NEW_CONNECTION_ID 2019-07-11 20:52:19 +02:00
Benjamin Saunders 5d02342dff Draft 22 packet headers 2019-07-11 20:52:19 +02:00
Benjamin Saunders 466da6c0ce Reuse initial cryptographic handshake message on retry 2019-07-11 20:52:19 +02:00
Benjamin Saunders e873c64ba0 Forbid Retry from clients 2019-07-11 20:52:19 +02:00
Benjamin Saunders e03751de66 Clarifying assertion 2019-07-11 20:52:19 +02:00
Benjamin Saunders de415ebeea Implement active_connection_id_limit transport parameter 2019-07-11 20:52:19 +02:00
Benjamin Saunders 3f7e254a47 Update version numbers and initial salt 2019-07-11 20:52:19 +02:00
Benjamin Saunders 5fbe96f46a Public VarInt type
Ensures correctness of application error codes without panics or
adding new internal failure paths.
2019-07-11 20:52:19 +02:00
Benjamin Saunders 4b0530ba45 Simplify some encoding 2019-07-11 20:52:19 +02:00
Benjamin Saunders 1e40be2b03 Varint application error codes 2019-07-11 20:52:19 +02:00
Benjamin Saunders 22f4edc436 Varint transport error codes 2019-07-11 20:52:19 +02:00
stammw 07eca3d348 H3: Stream response from client 2019-07-09 21:23:08 +02:00
stammw 030f0eb251 Factorize header block decoding into one Future 2019-07-09 21:23:08 +02:00
Benjamin Saunders 3a41544ef5 Spin bit privacy measures 2019-07-09 20:35:04 +02:00
Benjamin Saunders 17f380c720 Don't reset packet numbering on retry 2019-07-09 20:35:04 +02:00
Benjamin Saunders 400dd8503f Draft 21 recovery logic 2019-07-09 20:35:04 +02:00
Benjamin Saunders b8fd5ffc4e Respect lower bound for time loss detection threshold 2019-07-09 20:35:04 +02:00
Benjamin Saunders f1682fd0a7 Ignore ack delays from Initial/Handshake packets 2019-07-09 20:35:04 +02:00
Benjamin Saunders 4df4e695eb Remove unnecessary export 2019-07-09 20:35:04 +02:00
Benjamin Saunders 4a79e9ea8c Draft 21 missing transport parameters error 2019-07-09 20:35:04 +02:00
Benjamin Saunders 7b74cf1552 Draft 21 key discard logic 2019-07-09 20:35:04 +02:00
Benjamin Saunders a70eeeadd8 Fix ReadToEnd size limit 2019-07-06 11:17:20 -07:00
Benjamin Saunders 3e863e6903 Remove outdated documentation 2019-07-06 07:16:19 +02:00
Benjamin Saunders 63d6925852 Clarifying comment 2019-07-05 08:35:26 +02:00
Benjamin Saunders b502306ab3 Refactor ReadToEnd helper to work after reads 2019-07-05 08:35:26 +02:00
Benjamin Saunders f1aa79d098 Fix deprecated rand API use 2019-07-05 06:56:01 +02:00
Benjamin Saunders cd460b1029 Reduce global macro imports 2019-07-02 07:47:52 +02:00
Benjamin Saunders 345aac0414 Update comments 2019-07-02 07:47:52 +02:00
dependabot-preview[bot] 7d54ee148d Update rand requirement from 0.6 to 0.7
Updates the requirements on [rand](https://github.com/rust-random/rand) to permit the latest version.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-02 07:47:04 +02:00
Benjamin Saunders 62e92f7759 Remove unreachable error case 2019-06-26 07:10:37 +02:00
Benjamin Saunders 2ce6e09440 Clarify comment 2019-06-26 07:10:37 +02:00
Benjamin Saunders 109b938872 Disable slow and broken coverage in CI 2019-06-26 07:10:37 +02:00
Benjamin Saunders 1885904782 Fix warnings in tests 2019-06-26 07:10:37 +02:00
Benjamin Saunders 67a92b637d More Debug derives 2019-06-26 07:10:37 +02:00
Benjamin Saunders c6c27bfb50 Hide EndpointEvent internals 2019-06-26 07:10:37 +02:00