Benjamin Saunders
58ac32d055
Rename SERVER_BUSY to CONNECTION_REFUSED
2020-06-30 08:57:14 +02:00
Benjamin Saunders
68922c07ea
Draft 29 PTO logic
2020-06-30 08:57:14 +02:00
Benjamin Saunders
8ca2f04bf9
Track in-flight bytes per packet space
2020-06-30 08:57:14 +02:00
Benjamin Saunders
57160897fe
Update names to match current pseudocode
2020-06-30 08:57:14 +02:00
Benjamin Saunders
f2c4d35535
Clarify read_crypto logic
2020-06-30 08:57:14 +02:00
Benjamin Saunders
a1e8c56cb0
Update initial salt, retry integrity key/nonce, and versions
2020-06-30 08:57:14 +02:00
Benjamin Saunders
7e023e3cd8
Document state predicates
2020-06-29 09:16:49 +02:00
Benjamin Saunders
df7645047a
Test rejection of client connections missing a required certificate
2020-06-29 09:16:49 +02:00
Benjamin Saunders
bedcb42863
Detect spurious migrations
...
Defends against off-path forwarding attacks by sending PATH_CHALLENGE
on the previous path when migrating.
2020-06-29 09:14:58 +02:00
Benjamin Saunders
5d95eef10a
Split up poll_transmit
...
Pull common packet construction logic out into a separate pair of
functions for ease of reuse.
2020-06-29 09:14:58 +02:00
Charles Hall
66f3c04814
add a way to get a static id for a quic connection
...
Since remote IP addresses can change, it's useful to have an independent
ID for a connection that is always the same.
quinn_proto::ConnectionHandle provides a mechanism for this, but
quinn::Connection has an Arc internally whose internal pointer can be
used as a unique identifier since acquiring the ConnectionHandle would
require locking a mutex.
2020-06-25 22:35:28 +02:00
Charles Hall
73fb027357
expose StreamId information from Send/RecvStream
...
If nothing else, this should make it easier to track goings-on in
streams in client code since they'll be able to easily distinguish
between streams via StreamId::index().
2020-06-25 22:35:28 +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
dependabot-preview[bot]
541448f79b
Update ct-logs requirement from 0.6 to 0.7
...
Updates the requirements on [ct-logs](https://github.com/ctz/ct-logs ) to permit the latest version.
- [Release notes](https://github.com/ctz/ct-logs/releases )
- [Commits](https://github.com/ctz/ct-logs/compare/v/0.6.0...v/0.7.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com >
2020-06-21 21:47:49 -07: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
1be312a7cc
Replace space accessors with indexing
...
Improves ergonomics and simplifies borrowing.
2020-06-13 22:14:30 +02:00
Benjamin Saunders
73c779bac7
Update interop endpoints
2020-06-10 14:07:30 -07:00
Benjamin Saunders
c2c8e12ae6
Style tweak
2020-06-07 14:42:16 +02:00
Benjamin Saunders
dbce6b2a4b
Remove unnecessary reexport
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
Benjamin Saunders
bfa8782485
Encapsulate coupling of connection driver and Connecting future
2020-06-07 14:42:16 +02:00
Benjamin Saunders
7aa54a7dd3
Separate ECN counters per space
2020-06-06 12:42:08 -07: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
055ed17544
Allow clippy::eval_order_dependence lint
2020-06-04 22:36:09 +02:00
Dirkjan Ochtman
e391c5d05b
Remove redundant pattern matching
2020-06-04 22:36:09 +02:00
Dirkjan Ochtman
73dd1ee6c2
Implement BitOrAssign instead of AddAssign for Retransmits
2020-06-04 22:36:09 +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
Benjamin Saunders
9c8696b7f5
Ensure version negotiation grease is valid
2020-06-04 10:17:52 +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
Benjamin Saunders
605a5a5f19
Style tweak
2020-06-01 11:52:34 +02:00
Benjamin Saunders
8250afc34f
Simplify stream state disposal
...
We dispose of stream states when a receive stream is fully read or
reset or a send stream's finish or reset is acked. There are no subtle
qualifiers, so we can take immediate unconditional action.
2020-06-01 11:52:34 +02:00
Benjamin Saunders
df390ddf07
Remove transport-layer implicit reset on stop
...
Defers responsibility for closing send streams to the
application. This simplifies the stream lifecycle, because we no
longer need to track whether a stop was observed in a write error and
potentially free stream state after returning one. Fixes a stream
state leak for applications which don't necessarily observe write
errors.
2020-06-01 11:52:34 +02:00
Benjamin Saunders
cf7f492631
Clarify method name
2020-06-01 11:52:34 +02:00
Benjamin Saunders
64d357650c
Remove obsolete comment
2020-06-01 11:52:34 +02:00
Benjamin Saunders
888b617c16
Decouple incoming STOP_SENDING and outgoing RESET_STREAM handling
2020-06-01 11:52:34 +02:00
Benjamin Saunders
949068138f
Factor stop_reason out of SendState
2020-06-01 11:52:34 +02:00
Benjamin Saunders
333c3acb19
Reduce duplication
2020-05-29 16:04:52 +02:00
Benjamin Saunders
de44b35393
Additional RangeSet docs
2020-05-29 16:04:52 +02:00
Benjamin Saunders
fe10e89409
Return a read error on ordered-after-unordered reads
2020-05-29 16:04:52 +02:00
Benjamin Saunders
f5c01d4d8d
Insurance against panic on reading a closed stream
...
This was probably unreachable as we dispose of closed receive streams
immediately after they become such, but if that ever changes we still
don't want to panic.
2020-05-29 16:04:52 +02:00
Benjamin Saunders
39e370e785
Rename Assembler::limit to Assembler::end for clarity
2020-05-29 16:04:52 +02:00
Benjamin Saunders
de4323ed24
Proactively deduplicate stream data when using unordered reads
...
Ensures we don't yield the same data to the application repeatedly,
and only issue flow control credit in response to new data.
2020-05-29 16:04:52 +02:00
Benjamin Saunders
bdedc0ab2e
Remove unused fine-grained received range tracking
2020-05-29 16:04:52 +02:00