407 Commits

Author SHA1 Message Date
Benjamin Saunders 92042be56d Bump versions 2020-03-31 12:51:41 -07:00
Benjamin Saunders e0319215b7 Lighten tracing-subscriber
Omitting json logging gets serde out of our dev-dependency closure
2020-03-31 13:20:30 +02:00
Benjamin Saunders 0a62e093a6 Replace criterion with bencher 2020-03-31 13:20:30 +02:00
stammw f540176e99 Make it easier to enable 0-RTT / TLS early data 2020-03-23 12:40:32 +01:00
stammw 76efa13cbd Ignore meaningless accepted_0rtt on server.
So `check_0rtt()` doesn't fail when called after handshake completed on server.
2020-03-23 12:40:32 +01:00
stammw 852bd26b45 Let the user know if an incoming bi is 0-RTT 2020-03-23 12:40:32 +01:00
Benjamin Saunders b73bb8553a Push remaining non-timeout Instant::now call downward 2020-03-17 07:08:36 +01:00
Benjamin Saunders 019ed88891 Fix busy-hang when tokio and proto disagree on timer expiry
Obtaining a fresh `now` on every iteration ensures that if tokio
checks timer completion using a later time than we do, we'll
eventually catch up and deem it expired as well rather than infinitely
restarting it.
2020-03-17 07:08:36 +01:00
stammw 7479181263 Let the user get requested ALPN on connecting 2020-03-16 20:55:03 +01:00
Benjamin Saunders 8aa6066103 Remove obsolete azure pipelines badge 2020-03-14 22:16:33 +01:00
Dirkjan Ochtman 67f448c553 Bump rcgen to 0.8 to avoid duplicate dependency 2020-03-12 19:23:52 +01:00
Dirkjan Ochtman 31eef2910c Bump quinn/quinn-proto versions to 0.6.0 2020-03-12 19:23:52 +01:00
Benjamin Saunders a57b44eac3 Delete spurious syntax 2020-03-10 09:19:38 +01:00
Benjamin Saunders e2618ef99a Reject application datagram sends on closed connections 2020-03-09 12:54:43 -07:00
Benjamin Saunders fba42cb2a5 Reject stream writes on closed connections
Helps applications detect an error earlier and with less buffer space
consumed.
2020-03-09 12:54:43 -07:00
Benjamin Saunders d806cf6715 Fix spurious error when finishing while peer closes the connection
If the peer acknowledges the stream FIN and the the Finish future
isn't polled between then and the connection becoming
closed (guaranteed to be the case if the ACK and the CONNECTION_CLOSE
are in the same packet, which is common) then the Finish future would
yield an error even though the stream is guaranteed to have been
finished.
2020-03-09 12:43:44 -07:00
Benjamin Saunders cbb3470c7e Update draft number 2020-03-08 12:04:26 -07:00
Benjamin Saunders 7a3b4559bb Disable IP fragmentation on Linux 2020-03-08 12:04:26 -07:00
Benjamin Saunders a4fea5a7fd Rename idle_timeout to max_idle_timeout to reflect semantics 2020-03-08 12:04:26 -07:00
Dirkjan Ochtman 6cca808d14 Make rustls an optional dependency for quinn 2020-03-07 12:12:01 -08:00
Dirkjan Ochtman 666878f908 Make quinn crate types generic over proto::crypto::Session 2020-03-07 12:12:01 -08:00
Dirkjan Ochtman 7253fe892e Move TLS client config defaults into quinn-proto
The default client config setup contains low-level rustls code that is
better off in quinn-proto. This also makes the OS store roots and
certificate transparency easily available to quinn-proto users, and
makes it easy to use them by using Cargo-level features.
2020-03-07 12:12:01 -08:00
Dirkjan Ochtman 0a4bca7049 Remove old authentication data APIs 2020-03-07 12:12:01 -08:00
Dirkjan Ochtman 9a9be3887d Add AuthenticationData type to confer TLS crypto bits 2020-03-07 12:12:01 -08:00
Dirkjan Ochtman a7c9df18d6 Move crypto wrapper types back into quinn-proto
This is the second time we flip-flop on this. Previously in
4fd486862b (#351) we moved these types from
quinn into quinn-proto so that they could be used as part of the low-level
configuration API.

Then in 9522b44600 (#511) we moved them back
into quinn after some discussion, making the point that the configuration
API at the quinn-proto was not in a great place.

Here, we keep the existing quinn-proto configuration API and merely offer
an abstracted API relying on the wrapper types for use in quinn internals.
2020-03-07 12:12:01 -08:00
Dirkjan Ochtman 752693e4d0 Depend on latest err-derive to prevent issues with newer quote 2020-03-05 13:26:59 -08:00
Benjamin Saunders f0108af5cd Fix Stream::finish hang on closed connections 2020-02-28 22:04:28 -08:00
Benjamin Saunders f92f2c7de5 Reexport TransportError(Code)
These are public in ConnectionError.
2020-02-28 22:04:28 -08:00
Benjamin Saunders 189945c673 Improve wording 2020-02-27 07:08:31 +01:00
Benjamin Saunders 34f7861810 Expose established connections even if they were later lost
Ensures that data acknowledged by the transport layer can be obtained
by the application even if the connection was lost before the
application was aware of the connection becoming established.
2020-02-27 07:08:31 +01:00
Benjamin Saunders 31fabfe807 Fix panic in connection example 2020-02-27 07:05:37 +01:00
Kim Altintop 7122eab857 QUINN: Allow retrieving the peer's certificate chain from a connection 2020-02-26 09:03:41 +01:00
Dirkjan Ochtman 33990db1d5 Upgrade to rustls 0.17 2020-02-24 22:30:07 +01:00
Lionel Faber 605c9a57ef QUINN: include ios in the conditional compilation for mac platforms 2020-02-19 17:16:04 +01:00
stammw 85a012e9df H3: functionnal test for connection closure 2020-02-08 20:49:05 +01:00
dependabot-preview[bot] 147588db31 Update tracing-subscriber requirement from 0.1.5 to 0.2.0
Updates the requirements on [tracing-subscriber](https://github.com/tokio-rs/tracing) to permit the latest version.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.1.5...tracing-subscriber-0.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-05 22:00:55 -08:00
Benjamin Saunders 33a7eb49a4 Fix panic in criterion benchmarks 2020-02-03 06:44:36 +01:00
Benjamin Saunders 3f2ca35c38 Update style to rustfmt 1.41 2020-02-01 20:21:04 +01:00
Benjamin Saunders caf0767f31 Re-export public ParseError type 2020-02-01 19:58:21 +01:00
Benjamin Saunders 566c8139ae Update rustls-native-certs
Improves robustness to certificate stores containing unsupported or
invalid data.
2020-01-27 08:30:24 +01:00
Benjamin Saunders 5f81b5cf31 Enable tokio feature required for tokio::spawn 2020-01-16 09:15:31 +01:00
Benjamin Saunders 8f319924f6 Expose client-supplied server name 2020-01-13 21:55:53 +01:00
Benjamin Saunders 60e1832ff2 Spawn incoming connection drivers eagerly
Avoids bug-prone double-polling of drivers for error detection
2020-01-13 09:54:26 +01:00
Benjamin Saunders 5774071b48 Spawn driver tasks implicitly 2020-01-13 09:54:26 +01:00
Benjamin Saunders 16e670c9f3 Simplify example common module 2020-01-13 08:54:04 +01:00
Benjamin Saunders 527444ed77 Simplify single_socket example 2020-01-13 08:54:04 +01:00
Benjamin Saunders 42ca1cc0a5 Simplify insecure_connection example 2020-01-13 08:54:04 +01:00
Benjamin Saunders 9a9d940e81 Simplify connection example 2020-01-13 08:54:04 +01:00
Benjamin Saunders ad34d334bb Mention datagrams in crate docs 2020-01-13 08:54:04 +01:00
Benjamin Saunders b28a6a8793 Mention quinn-proto in crate docs 2020-01-13 08:54:04 +01:00