Commit Graph

2620 Commits

Author SHA1 Message Date
Dirkjan Ochtman 69200e921f Add PathData::new() associated function 2020-07-06 13:49:59 -07:00
Dirkjan Ochtman d4153d9f0e Add more abstractions for PTO calculations 2020-07-06 13:49:59 -07:00
Dirkjan Ochtman e4246703e1 More abstract method for RTT calculations 2020-07-06 13:49:59 -07:00
Dirkjan Ochtman 7d1df2a682 Always try ECN on a new path 2020-07-06 13:49:59 -07:00
Demi M. Obenour 6018f20055 Don’t try to run code coverage on PRs
It won’t work, as those builds don’t have access to the CodeCov API
token.
2020-07-06 09:46:18 +02:00
Alexander Jackson 80653da2ca Add documentation links to improve navigation
Add documentation links and references to some of the main parts of the API so
that relevant structs, enums and methods can be navigated to more quickly. This
reduces the need for the search bar and thus makes it easier to find related
content wherever it is mentioned.
2020-07-06 09:46:06 +02:00
Benjamin Saunders 3339bc8f27 Correct default initial RTT 2020-07-06 07:45:27 +02:00
Dirkjan Ochtman 5a4d18f837 Upgrade to rustls-0.18 2020-07-05 23:05:33 +02:00
Benjamin Saunders 81e6c26c68 Deduplicate RTT fallback logic 2020-07-05 20:48:57 +02:00
Benjamin Saunders da09436105 Update PTO computation to match current recovery draft 2020-07-05 20:48:57 +02:00
Benjamin Saunders b612577c7c Update RTT estimation to match recovery draft 2020-07-05 20:48:57 +02:00
Benjamin Saunders 70cf90389e Respect initial RTT in RttEstimator 2020-07-05 20:48:57 +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
Alexander Jackson e342cc974e Fix some broken documentation links in quinn-proto
Fix some broken documentation links in quinn-proto and correctly direct them to
the enum variant they are referencing. These were raised by `cargo doc`.
2020-06-30 20:19:27 +02:00
Benjamin Saunders 48597c8f76 Use TRANSPORT_PARAMETER_ERRORs for CID authentication 2020-06-30 08:57:14 +02:00
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