Commit Graph

456 Commits

Author SHA1 Message Date
Benjamin Saunders 45ec778d5a Warn about platform dual-stack socket behavior variances
This has bitten at least 3 users.
2020-10-15 19:55:18 -07:00
Dirkjan Ochtman d5b47f601d Unwrap unused results from invalid config values 2020-10-12 12:13:50 -07:00
kwantam 81d326a0f6 export_keying_material to its own test 2020-09-29 09:35:14 +02:00
kwantam b2fa08adbe ExportKeyingMaterialError zst 2020-09-29 09:35:14 +02:00
kwantam 037f1a6666 respond to @ralith's review 2020-09-29 09:35:14 +02:00
kwantam 3601881e7b fix tests on stable rustc 2020-09-29 09:35:14 +02:00
kwantam ee6f7d01f2 pin all crates with rustls as transitive dep
this is necessary for export_keying_material to work;
can be undone once rustls pushes a new version of the crates.
2020-09-29 09:35:14 +02:00
kwantam bc1c1a7e0e quinn-proto: merge ExportKeyingMaterial trait into Session 2020-09-29 09:35:14 +02:00
kwantam 363b3539ac quinn: test export_keying_material 2020-09-29 09:35:14 +02:00
kwantam 8c8fb0815c plumb export_keying_material from quinn-proto to quinn 2020-09-29 09:35:14 +02:00
Benjamin Saunders d72bc0fc6f Remove obsolete mention of connection driver 2020-09-25 13:43:41 +02:00
ssebo c0eaab79bb fix iOS setsockopt invalid params 2020-09-12 11:03:35 +02:00
DelusionalOptimist 751d660343 Fixed typo in quinn/examples/connection.rs 2020-09-09 16:42:35 +02:00
Dirkjan Ochtman f212256435 Clean up warnings/errors 2020-09-03 09:17:32 -07:00
Imbris 35db51eb1a Reexport ReadUnordered 2020-08-23 20:41:33 +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
Dirkjan Ochtman 5a4d18f837 Upgrade to rustls-0.18 2020-07-05 23:05:33 +02:00
Benjamin Saunders a1e8c56cb0 Update initial salt, retry integrity key/nonce, and versions 2020-06-30 08:57:14 +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
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
Dirkjan Ochtman e391c5d05b Remove redundant pattern matching 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
Benjamin Saunders 605a5a5f19 Style tweak 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 fe10e89409 Return a read error on ordered-after-unordered reads 2020-05-29 16:04:52 +02:00
Jean-Christophe BEGUE 58a3c057c4 Stopped event for SendStream 2020-05-29 15:22:26 +02:00
Dirkjan Ochtman 01bb2f1162 Clarify documentation on setting up mTLS (fixes #772) 2020-05-27 18:53:52 -07:00
Benjamin Saunders ca689d33d6 Update version numbers for draft 28 2020-05-25 06:22:35 +02:00
Benjamin Saunders d92a567034 Return UnknownStream from Connection::reset for closed/reset streams
Improves consistency with other stream interfaces. H3 logic was
updated to ignore errors to preserve existing behavior, but future
work might want to insert some unwraps there if static correctness
guarantees are available.
2020-05-23 19:08:46 +02:00
Benjamin Saunders cd63774c0b Don't reference a hidden interface in documentation 2020-05-23 19:08:46 +02:00
Benjamin Saunders eea76d2a90 Proactively discard data on stopped streams
Previously, flow control credit would not be issued for data received
on stopped streams unless the application continued reading them
indefinitely. This produced a flow control leak in the high level API,
causing applications which dropped streams with unread data to
eventually grind to a halt.

Discarding data immediately should also improve performance when data
is being received on stopped streams, and allows us to discard stream
state earlier.
2020-05-21 09:28:42 +02:00
Benjamin Saunders 7053c6a802 Wake connection driver on read to issue flow control credit 2020-05-20 12:52:34 +02:00
Benjamin Saunders 54f0ab1b14 Clarifying comments 2020-05-12 20:59:13 +02:00
Benjamin Saunders 6786b8a1bb Include ReadError in ReadToEndError::Read display
By treating the read error as a component of, rather than an
incidental ancestor to, the enclosing error we reduce the odds of
unhelpful diagnostics.
2020-05-11 13:53:23 -07:00
Benjamin Saunders 30b42c5bcf Don't use a larger receive buffer than necessary 2020-05-11 22:29:36 +02:00
Benjamin Saunders 0247c7d644 Improve endpoint construction docs 2020-05-11 15:40:32 +02:00
Benjamin Saunders 6f9e20cf64 Allow a custom ClientConfig without allocating a default 2020-05-11 15:40:32 +02:00
Benjamin Saunders b727b7b605 Clarify soundness requirements for cmsg helpers 2020-05-11 10:21:13 +02:00
Benjamin Saunders 6ac08773a6 Update libc 2020-05-08 07:09:25 +02:00
Dirkjan Ochtman eeac018bd9 Update license to proper SPDX expression
From the Cargo docs:

"Previously multiple licenses could be separated with a /,
but that usage is deprecated."

https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields
2020-05-04 09:14:22 -07:00
stammw 34c9f45802 H3: HttpBody server integration in SendResponse 2020-05-04 17:59:05 +02:00
Dirkjan Ochtman 682c5863d5 Introduce separate StreamEvent enum 2020-04-28 13:06:10 -07:00
Dirkjan Ochtman f6904d6140 Apply suggestions from clippy 2020-04-25 09:43:13 -07:00
Jesse Lucas 11a7c77992 Add usage documentation to quinn/examples/server.rs 2020-04-25 18:06:04 +02:00
Benjamin Saunders ddc8d432e6 Fix broken doc link 2020-04-22 06:58:01 +02:00
Benjamin Saunders 92042be56d Bump versions 2020-03-31 12:51:41 -07:00