Commit Graph

596 Commits

Author SHA1 Message Date
Benjamin Saunders a10e6ee140 Remove required feature from client example, tweak CLI docs 2018-10-18 01:20:16 -07:00
Benjamin Saunders d28a702ab6 More use of constants 2018-10-17 23:52:13 -07:00
Benjamin Saunders 10c09ef64f Fix handling of unset idle timeout 2018-10-17 23:52:13 -07:00
Benjamin Saunders e66d71d815 Fix panics on invalid transport parameters 2018-10-17 23:52:13 -07:00
Tyler Wilcock dc41b8bff0 Prior to this patch, we had duplicated lots of error handling logic inside handle_connected_inner, mostly in the way of event recording. This patch simplifies this by instead returning a Result, which allows the caller to handle either case and create events more succinctly than handle_connected_inner could.
Also, this changeset moves the app_closed property from connection::State to connection::Connection itself, as it is much simpler to manage that piece of state on the Connection itself.

Closes #51.
2018-10-17 10:09:02 +02:00
Benjamin Saunders 6741657e02 Client configuration API
- Allow configuration of individual clients within an endpoint
- Implement feature-gated config helper for untrusted connections
- Don't enable keylogging by default
- Test rejection of invalid certs
2018-10-15 02:06:25 -07:00
Benjamin Saunders 3492f61142 Derive Clone for Connection and Endpoint
This makes it easier to construct multiple futures that interact with the same
connection.
2018-10-15 01:53:57 -07:00
Benjamin Saunders f04f059893 Implement backpressure on incoming connections
This was already supported by the endpoint state machine, but was defeated by
the high-level API.
2018-10-14 09:13:31 -07:00
Benjamin Saunders 02b536336b Test and debug stream ID flow control
Corrects a fencepost error in initiator-side flow control budget checking, and a
bug that caused remote streams that weren't initially open to never be opened.
2018-10-14 09:12:51 -07:00
Benjamin Saunders 2085b0a7f8 Improve debug formatting for transport errors and frame types 2018-10-14 09:12:27 -07:00
Dirkjan Ochtman c0e0603cd2 Upgrade to blake2-0.8 2018-10-12 21:09:58 +02:00
Dirkjan Ochtman 1045617dee Copy ConnectionIds instead of cloning them 2018-10-12 21:09:51 +02:00
stammw 57bb05cd96 Handle ALPN with &[u8] instead of Strings 2018-10-12 14:47:20 +02:00
stammw f9d64e783e use a constant for ALPN QUIC_HTTP value 2018-10-12 14:47:20 +02:00
Jean-Christophe BEGUE 6e1eab4bed Let the user select ALPN protocols values #32 2018-10-12 14:47:20 +02:00
Tyler Wilcock d4ec5ca865 Remove ArrayVec in favor of a simple array
Prior to this commit, we used ArrayVec to store the bytes of the ConnectionId.  This commit switches to the usage of a simple array, which allows us to remove an external dependency, and allows ConnectionId to implement the Copy trait.
2018-10-07 18:47:46 +02:00
Benjamin Saunders 4807a970a0 Fix panic when closing a connection during handshake 2018-10-06 11:21:23 -07:00
Dirkjan Ochtman 977397ef1e Get ConnectionHandle from self 2018-10-05 08:30:39 +02:00
Dirkjan Ochtman 6729f26cd3 Store ConnectionHandle in Connection 2018-10-05 08:30:39 +02:00
Simon Heath ac7424b151 Remove lingering references to quicr. 2018-10-05 07:29:37 +02:00
Dirkjan Ochtman 0d25cd7686 Apply clippy suggestions 2018-10-04 10:37:12 +02:00
Dirkjan Ochtman d4bf4bcb1a Fix formatting 2018-10-04 10:37:12 +02:00
Dirkjan Ochtman 2c11eb71dd Check formatting in CI 2018-10-04 10:37:12 +02:00
Benjamin Saunders e5cb4e3abc Fix stateless resets 2018-10-03 23:25:10 -07:00
Benjamin Saunders 9bb759fe0b README cleanup 2018-10-03 23:04:41 -07:00
Andrii Radyk 1b3906555c Close #29 rename Value trait to Codec 2018-10-04 08:01:04 +02:00
Dirkjan Ochtman 43f3ec0fc8 Clarify status of HTTP as unimplemented 2018-10-03 20:53:07 +02:00
Dirkjan Ochtman c07561744f Fix method name for set_certificate_authority() 2018-10-03 20:50:21 +02:00
Dirkjan Ochtman 042266aa81 Upgrade to rand-0.5 2018-10-03 20:34:46 +02:00
Dirkjan Ochtman 4e747108f0 Add CodeCov and Travis badges to Cargo manifest 2018-10-03 20:03:22 +02:00
Dirkjan Ochtman f4231eaa7d Use latest version of blake2
Instead of relying on digest directly, this uses the version of digest
exposed through the blake2 API. Since we're no longer using digest
for other crypto, this seems a simpler way to do things.
2018-10-03 20:00:14 +02:00
Dirkjan Ochtman 06e65f7c1e Reorder badges in README 2018-10-03 13:51:19 +02:00
Dirkjan Ochtman 00ecf41200 Add docs.rs badge 2018-10-03 13:51:19 +02:00
Dirkjan Ochtman f194663f94 Fix crates.io badge image URL 2018-10-03 13:51:19 +02:00
Dirkjan Ochtman b6489cdf83 Merge branch 'master' into quicr 2018-10-02 22:22:42 +02:00
Dirkjan Ochtman 487c389536 Order extern crate statements 0.1.0 2018-10-02 22:16:40 +02:00
Dirkjan Ochtman d9f0d93017 Restart version numbers from 0.1.0 2018-10-02 22:12:14 +02:00
Dirkjan Ochtman 3da54b178c Rename crates from quicr{,-core} to quinn{,-proto} 2018-10-02 21:58:17 +02:00
Dirkjan Ochtman 0a5a9fa70e Update rustls to 0.14 2018-10-02 21:52:42 +02:00
Dirkjan Ochtman dcfdf53f24 Merged README 2018-10-02 21:50:53 +02:00
Dirkjan Ochtman eb94a0a983 Order dependencies in Cargo manifests 2018-10-02 21:30:33 +02:00
Dirkjan Ochtman 62a9bf66e0 Add myself as crate author 2018-10-02 21:26:54 +02:00
Dirkjan Ochtman e26b47f371 Rename get_servername() to get_server_name() for consistency 2018-10-02 21:19:49 +02:00
Dirkjan Ochtman ed74848168 Fix deprecations 2018-10-02 21:19:49 +02:00
Dirkjan Ochtman a04dc1e4b9 Add Travis-CI configuration 2018-10-02 21:19:49 +02:00
Dirkjan Ochtman 3f09e982ff Flatten the workspace 2018-10-02 21:19:49 +02:00
Dirkjan Ochtman 8fc5fbbfc2 Pump test packets through sockets 2018-10-02 21:19:49 +02:00
Dirkjan Ochtman 9412d47762 Replace TLS backend with rustls 2018-10-02 21:19:49 +02:00
Dirkjan Ochtman bcdf6d6f21 Move set_payload_length() into packet module 2018-09-10 12:02:56 +02:00
Dirkjan Ochtman 97e4d584d4 Move most of Endpoint::close() into Connection 2018-09-09 14:02:00 +02:00