Commit Graph

2620 Commits

Author SHA1 Message Date
Dirkjan Ochtman aa1e2f9afa Add utility methods to get Dir and Side from stream IDs 2018-05-29 16:57:31 +02:00
Dirkjan Ochtman 241b01d83a Use handle_tls() method for initial packet 2018-05-29 14:55:38 +02:00
Dirkjan Ochtman 438cbe5a70 Make packetization code more functional 2018-05-29 14:44:53 +02:00
Dirkjan Ochtman 4790475ad7 Always send two byte payload lengths in short headers 2018-05-29 14:36:32 +02:00
Dirkjan Ochtman 4b1b157be7 Decide header type based on connection state 2018-05-29 14:36:32 +02:00
Dirkjan Ochtman 1035ca61cb Improve error message on invalid connection state 2018-05-29 14:36:32 +02:00
Dirkjan Ochtman ee6412d443 Add FinalHandshake state to connection state machine 2018-05-29 14:36:11 +02:00
Dirkjan Ochtman 92e8c4d06d ConnectionState::decode_key() can now be private 2018-05-29 13:53:58 +02:00
Dirkjan Ochtman 9a2d032eb5 Trigger client initial packet creation from connect() method 2018-05-29 11:32:48 +02:00
Dirkjan Ochtman 2ad307fb52 Simplify Future implementation for Client 2018-05-29 11:32:48 +02:00
Dirkjan Ochtman b3af4f3432 Simplify socket address literals 2018-05-29 09:37:11 +02:00
Dirkjan Ochtman b452b06c00 Implement support for header-only negotiation packets 2018-05-29 09:16:00 +02:00
Dirkjan Ochtman 8952e53878 Implement more refined handling of packet number extraction 2018-05-29 09:13:55 +02:00
Dirkjan Ochtman 9045e9eacc Refactor Client/ConnectFuture construction sequence 2018-05-28 17:11:14 +02:00
Dirkjan Ochtman d08f36add7 Enable synchronous access to server send queue 2018-05-28 16:35:31 +02:00
Dirkjan Ochtman 19c79b6e66 Move handling of received packets into a separate method 2018-05-28 16:35:31 +02:00
Emeric Chevalier cbaf2b5154 Switch decode fn from codec trait to return error 2018-05-28 16:11:20 +02:00
Dirkjan Ochtman d9cf21ef18 Reformat without screwing up carefully formatted byte array 2018-05-28 15:13:56 +02:00
Dirkjan Ochtman e21abf471b Simplify server handling of Initial packets 2018-05-28 15:10:50 +02:00
Joseph Birr-Pixton 6e556e1b70 Ignore unknown TransportParameterIds when decoding 2018-05-28 15:10:27 +02:00
Dirkjan Ochtman ba82eaa219 Change Server to spawn one task per connection (fixes #7)
The Connection owns the ConnectionState, the SocketAddr, and two channel
endpoints to communicate with the server.

With this setup, (a) the Server no longer blocks on processing incoming
packets, and (b) the server will make progress on sending queued packets
even if no packets are coming in.
2018-05-28 14:27:08 +02:00
Dirkjan Ochtman adcb68121e Fix and simplify decoding of padding frames 2018-05-28 14:25:12 +02:00
Dirkjan Ochtman 4ce89742ab Fix formatting with cargo fmt 2018-05-28 12:10:41 +02:00
Dirkjan Ochtman 7a5fa3ea64 Merge packet building functions 2018-05-28 12:10:26 +02:00
Dirkjan Ochtman 3ef0ca35ef Add links to slides and animation 2018-05-26 17:18:46 +02:00
Benjamin Saunders 4cecc71a86 core: update for current rust-openssl 2018-05-24 22:24:19 -07:00
Benjamin Saunders 4b01245187 core: only report stateless resets once 2018-05-24 22:08:13 -07:00
Benjamin Saunders 897b804d96 tokio: fix stateless reset handling 2018-05-24 21:52:45 -07:00
Benjamin Saunders 0a93bf4bda tokio: expose 0-RTT writes 2018-05-24 21:39:17 -07:00
Benjamin Saunders a53a0b384c core: optional stateless reset token, fix CID spoofing attack 2018-05-24 21:38:48 -07:00
Dirkjan Ochtman 7f9bf85271 Update Travis CI config to add code coverage 2018-05-24 21:55:49 +02:00
Dirkjan Ochtman 05438091ff Add project metadata and licenses 2018-05-24 08:59:28 +02:00
Benjamin Saunders b2ed63bd14 refactor and expose session tickets; add initial interop test 2018-05-22 19:22:28 -07:00
Dirkjan Ochtman 52163298e8 Upgrade to rand-0.5 2018-05-22 16:42:28 +02:00
Dirkjan Ochtman e6eb7324d0 Use SVG badge for Gitter 2018-05-22 08:52:59 +02:00
Benjamin Saunders df21488c0c Update README 2018-05-21 21:57:38 -07:00
Benjamin Saunders fb9190a0b6 core: fix 0-RTT send/recv
Not explicitly shutting down TLS connections caused OpenSSL to omit them
from the anti-replay cache, preventing resumption. Additionally, the
wrong header type was being used when sending 0-RTT packes.
2018-05-21 21:49:14 -07:00
Dirkjan Ochtman 8cb6440557 Add some badges to the README 2018-05-21 21:39:52 +02:00
Dirkjan Ochtman e19a548925 Improve ConnectFuture API for robustness (fixes #9) 2018-05-21 21:34:32 +02:00
Dirkjan Ochtman 945ea60c5a Improve logging for server-sent messages 2018-05-21 21:19:02 +02:00
Dirkjan Ochtman 1e54ee7ee8 Improve robustness of encoded handshake test (fixes #10) 2018-05-21 21:18:10 +02:00
Dirkjan Ochtman 5ec14c185f Move PeerData into conn_state module 2018-05-21 20:52:09 +02:00
Dirkjan Ochtman 680622ebf2 Remove almost unused convenience method 2018-05-21 20:51:59 +02:00
Dirkjan Ochtman 4fa0e684af Fix Travis configuration 2018-05-21 20:20:40 +02:00
Dirkjan Ochtman 32fbd6bbeb Rely on public rustls branch 2018-05-21 20:19:53 +02:00
Dirkjan Ochtman 4ee71cb2c8 Rename Endpoint type to ConnectionState 2018-05-21 20:18:17 +02:00
Dirkjan Ochtman 733faaeb78 Update draft versions in README 2018-05-21 20:13:27 +02:00
Dirkjan Ochtman 7ee593e889 Add Travis CI configuration 2018-05-21 17:30:20 +02:00
Dirkjan Ochtman 7a60ccedf7 Fix use statement order per cargo fmt 2018-05-21 17:29:19 +02:00
Dirkjan Ochtman 6e9d638e4e Start adding some code for HTTP 2018-05-21 17:29:08 +02:00