Commit Graph

3653 Commits

Author SHA1 Message Date
Dirkjan Ochtman a05067e358 Let Streams request new stream and notify connection about it 2018-05-17 14:58:09 +02:00
Dirkjan Ochtman 18d7662414 Add mechanism for Streams to wake up connection future 2018-05-17 14:56:34 +02:00
Dirkjan Ochtman a7b2e0868f Make some Endpoint methods private 2018-05-17 14:54:52 +02:00
Dirkjan Ochtman 0311393a6e Let Endpoint queue frames from Streams 2018-05-17 14:49:59 +02:00
Dirkjan Ochtman c405587c7f Enable logging SSL keys 2018-05-17 14:39:33 +02:00
Benjamin Saunders 72c9e4be35 tokio: work around panic on handshake failure 2018-05-17 02:54:24 -07:00
Benjamin Saunders f2d88da66b nix: always have backtraces 2018-05-17 02:54:09 -07:00
Benjamin Saunders 9f13021841 core: fix server dedup of retransmitted Initial under stateful hs 2018-05-17 02:23:13 -07:00
Benjamin Saunders e6bd7cad9c core: fix incorrect retransmission of ClientHello under high latency
If the ClientHello got retransmitted prematurely and the handshake then
proceeded, the client's Finished packet would contain a unneeded copy of
the ClientHello, and hence be deemed an Initial by the transmit logic,
leading to it being dropped by the server and the handshake stalling.
2018-05-17 01:15:56 -07:00
Benjamin Saunders 5e3e85ab08 core: include TLS alert, if any, in handshake error 2018-05-17 00:55:35 -07:00
Benjamin Saunders 5ca79bb6b9 examples: allow arbitrary listen address 2018-05-17 00:36:53 -07:00
Benjamin Saunders 843fc3c89a examples: expose stateless retry 2018-05-17 00:26:13 -07:00
Benjamin Saunders b0a3bc8837 core: ensure we don't use later TLS versions inadvertently 2018-05-17 00:25:58 -07:00
Benjamin Saunders a5989575d2 core: minimal resumption UT 2018-05-17 00:25:44 -07:00
Benjamin Saunders 55bf7621a6 core: optional stateless retry 2018-05-16 23:08:07 -07:00
Benjamin Saunders f65a59a22e core: sanity-check NEW_CONNECTION_ID 2018-05-16 22:53:25 -07:00
Benjamin Saunders d76f9e2040 core: tolerate NEW_CONNECTION_ID 2018-05-16 22:47:35 -07:00
Benjamin Saunders 989284511d core: improve handling of unexpected long header packets 2018-05-16 20:41:47 -07:00
Benjamin Saunders 643c6829e9 core: fix openssl version bound 2018-05-16 20:40:42 -07:00
Dirkjan Ochtman d8f16f261a Apply some further clippy suggestions 2018-05-16 23:10:14 +02:00
Dirkjan Ochtman 63a1a408b2 Remove unused method 2018-05-16 23:08:37 +02:00
Dirkjan Ochtman 6dd211007d Let TLS session types return what Side they are 2018-05-16 23:07:20 +02:00
Dirkjan Ochtman 6cf018de62 Yield Streams from ConnectFuture 2018-05-16 22:58:54 +02:00
Dirkjan Ochtman 65266337e5 Implement basic support for StreamIdBlocked frames 2018-05-16 22:39:57 +02:00
Dirkjan Ochtman 1420318e22 Wrap ConnectFuture around generic Future impl for Client 2018-05-16 22:38:55 +02:00
Dirkjan Ochtman 69f043a919 Update max open streams from initial transport parameters 2018-05-16 22:32:35 +02:00
Dirkjan Ochtman dbd698ed7a Use smarter data structures to track open streams 2018-05-16 22:27:58 +02:00
Dirkjan Ochtman 7af569b1f9 Hide clippy lint directives from rustc 2018-05-16 21:09:22 +02:00
Dirkjan Ochtman 10fa7fc2f0 Apply suggestions from clippy to clean up code 2018-05-16 20:41:18 +02:00
Dirkjan Ochtman 44c8a4cfa6 Store encoded packets in Endpoint's send queue 2018-05-16 20:32:57 +02:00
Benjamin Saunders b44a612304 examples: mark unreachable case 2018-05-16 08:55:12 -07:00
Benjamin Saunders 0912edaaf2 core: fix panic on malformed header 2018-05-16 08:55:00 -07:00
Dirkjan Ochtman f142ca761c Let Endpoint handle packet encoding 2018-05-16 16:34:50 +02:00
Dirkjan Ochtman 55a5b9599b Fix formatting with cargo fmt 2018-05-16 16:10:26 +02:00
Dirkjan Ochtman 9e02025f67 Get rid of unused receive queue 2018-05-16 16:10:07 +02:00
Benjamin Saunders f1e7bd4e54 session resumption 2018-05-16 00:23:57 -07:00
Benjamin Saunders 9e3467c0a2 core: fix underflow on recv of already-read stream frame 2018-05-16 00:20:38 -07:00
Dirkjan Ochtman 4ef5ee5f2e Add basic Streams object to collect stream interactions 2018-05-15 21:48:27 +02:00
Dirkjan Ochtman 8d31d2a8ab Hoist creation of transport parameters out of TLS code 2018-05-13 21:46:50 +02:00
Dirkjan Ochtman 7b7aeb5749 Implement Default for transport parameter structs 2018-05-13 21:39:05 +02:00
Dirkjan Ochtman 89b1398bba Replace DRAFT_11 with QUIC_VERSION 2018-05-13 21:34:17 +02:00
Dirkjan Ochtman 9b7c118da7 Fix value for initial_version in ClientTransportParameters 2018-05-13 21:31:42 +02:00
Dirkjan Ochtman 9f5a4aa597 Move transport parameter types into separate module 2018-05-13 21:30:17 +02:00
Dirkjan Ochtman b481583476 Store transport parameters from remote 2018-05-13 21:23:14 +02:00
Dirkjan Ochtman 7073e4a1ce Make src_pn field private 2018-05-13 14:53:11 +02:00
Dirkjan Ochtman 4699ec3c9c Update to use new rustls QUIC API 2018-05-13 14:52:52 +02:00
Dirkjan Ochtman e366c59100 Store data for both endpoints in separate struct 2018-05-13 14:13:04 +02:00
Dirkjan Ochtman d9c0fa9960 Fix formatting with cargo fmt 2018-05-13 14:09:36 +02:00
Dirkjan Ochtman c036a12fc5 Streamline how server endpoints pick src_cid values 2018-05-13 14:09:30 +02:00
Dirkjan Ochtman 32bb288f69 Convert transport parameter types to internal Codec trait 2018-05-13 13:28:07 +02:00