Benjamin Saunders
06f0a3e292
Fix stream ID flow control deadlock
2019-10-22 10:10:55 +02:00
Benjamin Saunders
458613e7bb
Allow PING at every encryption level
...
See https://github.com/quicwg/base-drafts/pull/3035
2019-10-16 07:00:34 +02:00
dependabot-preview[bot]
89cd5d06e5
Update webpki-roots requirement from 0.17 to 0.18
...
Updates the requirements on [webpki-roots](https://github.com/ctz/webpki-roots ) to permit the latest version.
- [Release notes](https://github.com/ctz/webpki-roots/releases )
- [Commits](https://github.com/ctz/webpki-roots/compare/v/0.17.0...v/0.18.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com >
2019-10-14 07:39:19 +02:00
jean-airoldie
1d59323eb6
Added debug impl to various structs
2019-10-13 11:29:40 +02:00
Benjamin Saunders
a0d4b36a17
Fix stream ID leak when stream opening futures are dropped
...
By deferring allocation of the stream ID until the futures
synchronously completes, we guarantee that either no ID is allocated
or ownership is successfully taken by the Send/RecvStream struct(s).
2019-10-12 08:14:35 -07:00
jean-airoldie
6d069ca8eb
Impl Debug for various types
...
Impl fmt::Debug for
* {Send,Recv}Stream
* ConnectionRef
* ConnectionDriver
2019-10-10 10:12:34 +02:00
Dirkjan Ochtman
afc18262af
Upgrade to err-derive 0.2
2019-10-09 09:09:54 +02:00
Benjamin Saunders
2aeaa798a3
Remove stray dbg
2019-10-04 18:48:46 -07:00
stammw
2bb13fa6c5
H3: Filter control frame types for client or server
2019-10-04 15:28:42 +02:00
stammw
ad4f516f0f
H3: Control stream sending mechanism
2019-10-04 15:28:42 +02:00
stammw
90f6ce10d1
H3: Control stream implementation (Settings only)
2019-10-04 15:28:42 +02:00
stammw
ca0251640a
H3: Make Settings and SettingsFrame the same type
2019-10-04 15:28:42 +02:00
stammw
a4e656302b
H3: do not poll incoming bi streams in client
2019-10-04 15:28:42 +02:00
stammw
18a95328b9
H3: Poll incoming uni streams from connection
2019-10-04 15:28:42 +02:00
stammw
248ec17f03
H3: incoming UniStream header parsing and polling
2019-10-04 15:28:42 +02:00
Benjamin Saunders
e5a7e90f64
Expose 0-RTT handshake completion and success to applications
2019-10-04 09:22:52 +02:00
Benjamin Saunders
34e6e1ca34
Style cleanup
2019-10-04 09:22:52 +02:00
jean-airoldie
a3bb2fefa8
Fixed Session::is_handshaking doc
2019-10-04 09:22:07 +02:00
Benjamin Saunders
06556e45fd
Fix web trust roots not being enabled by default
2019-10-04 06:15:59 +02:00
Benjamin Saunders
0837b5b51e
Implement the unreliable datagram extension
2019-10-03 20:36:49 +02:00
Benjamin Saunders
148bcdff5f
Represent stream type range as a RangeInclusive
...
Improves clarity of edge cases.
2019-10-03 20:36:49 +02:00
Victor Roest
4560e63bab
Removed 'Initializer' import and use as it seems to not exist anymore
...
This was causing compilation issues which are now fixed for me
2019-10-03 12:54:10 +02:00
Benjamin Saunders
2dcb084347
Decouple incoming streams of differing directionalities
2019-09-29 07:38:30 +02:00
Benjamin Saunders
8e1c6b605e
Remove ToSocketAddrs from EndpointBuilder::bind
...
Improves consistency with Endpoint::connect and removes the
possibility of silent blocking should the user pass in a domain
name. The generic API was originally motivated by the convenience of
passing in numeric addresses as strings, but `.parse().unwrap()` is
pretty easy too.
2019-09-29 07:21:06 +02:00
Benjamin Saunders
da0c398a0a
Remove unnecessary EndpointError cases
2019-09-29 07:20:00 +02:00
Benjamin Saunders
9c4b21d1e8
Refactor interop tool
2019-09-28 10:23:26 +02:00
Benjamin Saunders
eef7900280
Run CI on nightly
2019-09-28 10:23:26 +02:00
stammw
f5e014dae1
h3: std futures
2019-09-28 10:23:26 +02:00
Benjamin Saunders
82b9455caf
Use multithreaded tokio runtime for server example
...
Illustrates our support for more typical tokio patterns
2019-09-28 10:23:26 +02:00
Benjamin Saunders
d07dc907ad
Update for async/await
2019-09-28 10:23:26 +02:00
Benjamin Saunders
399aa2f95a
Respect congestion control while handshaking
...
Not sure why we weren't doing this, but as far as I can tell it's
required.
2019-09-25 09:00:35 +02:00
Benjamin Saunders
0dc23afb85
Test tail loss recovery under congestion
2019-09-25 09:00:35 +02:00
Benjamin Saunders
c011e239f5
Draft 23 handshake retransmit, data-bearing probes
...
Modifies our probe strategy to retransmit in-flight data rather than
sending a PING frame. This gives us a chance of accelerated loss
recovery and allows adoption of the new draft's simplified handshake
retransmit logic.
2019-09-25 09:00:35 +02:00
Dirkjan Ochtman
2afe7f597d
Update initial salt and QUIC version to draft 23
2019-09-23 12:25:08 -07:00
Benjamin Saunders
03c3013a52
Draft 23 initial_rtt and PTO
2019-09-22 11:52:20 +02:00
Benjamin Saunders
19c7744c88
Less confusing server behavior on empty Initial
2019-09-22 11:52:20 +02:00
Benjamin Saunders
bb81d7eac8
Relax RTT update validation per current reliability draft
2019-09-22 11:52:20 +02:00
Benjamin Saunders
0e6e15ec54
Apply transport parameter grease
2019-09-22 11:52:20 +02:00
Benjamin Saunders
1c825640da
Add successful ALPN negotiation test
2019-09-19 08:34:35 +02:00
Benjamin Saunders
9cbf6ea936
Use a valid ALPN configuration in 0-RTT rejection test
2019-09-19 08:34:35 +02:00
Benjamin Saunders
148e549e8b
NEW_TOKEN from a client is a PROTOCOL_VIOLATION
2019-09-19 08:34:35 +02:00
Benjamin Saunders
3b01662324
Retransmit 0-RTT on receiving Retry
...
Receipt of a Retry packet indicates that the server will not process
any data until it receives our next Initial, so previously sent 0-RTT
data is almost certainly lost, bar unlikely reordering. Immediately
retransmitting it is therefore a free performance win.
2019-09-19 08:34:35 +02:00
Benjamin Saunders
38666e799c
Enable ECN on migration even if we'd previously given up, NATs aside
2019-09-19 08:34:35 +02:00
Benjamin Saunders
60f0d6c7fa
Ack Delay must only be used for intentional delays
...
We currently always attempt to send acknowledgements immediately.
2019-09-19 08:34:35 +02:00
Benjamin Saunders
0efdce97f9
Recover congestion/rtt state after path validation failure
2019-09-19 08:34:35 +02:00
Benjamin Saunders
ac2540651f
Improve handling of double migration
2019-09-19 08:34:35 +02:00
Benjamin Saunders
26b01e9662
Don't increase the congestion window on unvalidated paths
...
Improves our compliance with the defenses against peer address
spoofing in the draft.
2019-09-19 08:34:35 +02:00
Benjamin Saunders
4d065b9028
Update comments
2019-09-19 08:34:35 +02:00
Benjamin Saunders
acfdb48899
Draft 23 stateless resets
2019-09-18 07:29:34 +02:00
Benjamin Saunders
22895c559e
Implement off-path packet forwarding countermeasure
2019-09-18 07:29:34 +02:00