Commit Graph

2620 Commits

Author SHA1 Message Date
Benjamin Saunders f50dd9f54a Restore NewConnection struct for parts of a connection
This enables forwards-compatibility with future extensions such as
a datagram stream.
2019-08-25 14:50:01 -07:00
Dirkjan Ochtman b70e939893 Upgrade to criterion 0.3 2019-08-25 13:29:44 -07:00
Benjamin Saunders d8d5a2829a Improve configuration advice
A user reported uncertainty about proceeding without fully
understanding the available options. Quinn tries to be extremely
configurable, so it's important to communicate that most options don't
need to be changed for most applications.
2019-08-19 09:24:42 +02:00
stammw 06d060c0e9 H3: use AsyncRead into the example 2019-08-12 21:21:30 +02:00
stammw db7a8d3dd3 H3: AsyncRead implementation for recieving body from client 2019-08-12 21:21:30 +02:00
stammw ded85aa004 H3: reset expected frame size once one have been successfully decoded 2019-08-12 21:21:30 +02:00
Dirkjan Ochtman 01b9d212be Upgrade to url 2 2019-07-24 21:29:48 +02:00
Benjamin Saunders fde34da924 Fix panics when a server doesn't issue a stateless reset token
Stateless reset tokens are no longer mandatory.
2019-07-23 08:06:03 +02:00
Dirkjan Ochtman cb4662736b Check benchmark code in CI 2019-07-22 18:39:45 -07:00
Dirkjan Ochtman 0f9d497b83 Tweak CI config with latest template changes
- Run ignored tests, used for slow tests (we used to have this on Travis)
- Run coverage on nightly for now due to (see #336)
2019-07-22 23:26:49 +02:00
Dirkjan Ochtman 00714f08a8 Add note about platforms CI to README 2019-07-22 07:36:43 -07:00
Dirkjan Ochtman d2ddc4aede Use different project for Azure Pipelines
In the initial setup, I skimmed too fast over the paragraph that stated that
Azure DevOps projects must be aligned to GitHub organizations/users. Since
I want to use Azure Pipelines for other projects, too, I've reorganized the
setup a bit, which means the badge links need to be updated.
2019-07-22 07:36:43 -07:00
Benjamin Saunders b9f6c037b5 Quash unused import warning when testing without default features 2019-07-22 08:44:56 +02:00
Benjamin Saunders 4dc90ffbc9 Simplify annotations for test accessors 2019-07-22 08:44:56 +02:00
Benjamin Saunders 475cb60eb3 Don't export VERSION constant
It's not clear why downstream code would need this.
2019-07-22 08:44:56 +02:00
Benjamin Saunders 0b3364fe55 Don't panic if a misbehaving peer reuses a reset token 2019-07-22 08:41:04 +02:00
Benjamin Saunders 26abc4bb6e Replace uses of mem::uninitialized with mem::MaybeUninit 2019-07-22 08:39:47 +02:00
Dirkjan Ochtman 2a29b77c35 Remove Travis configuration 2019-07-21 12:00:53 +02:00
Dirkjan Ochtman 014489ca7d Change badges from Travis to Azure 2019-07-21 12:00:53 +02:00
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