Commit Graph

55 Commits

Author SHA1 Message Date
Emeric Chevalier cbaf2b5154 Switch decode fn from codec trait to return error 2018-05-28 16:11:20 +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 4ee71cb2c8 Rename Endpoint type to ConnectionState 2018-05-21 20:18:17 +02:00
Dirkjan Ochtman 6e9d638e4e Start adding some code for HTTP 2018-05-21 17:29:08 +02:00
Dirkjan Ochtman 5e79ef3342 Only require tokio-udp for the library 2018-05-19 14:18:54 +02:00
Dirkjan Ochtman 8c27706cec Split up tests module 2018-05-19 14:08:50 +02:00
Dirkjan Ochtman dc950a183c Add logging in the server 2018-05-18 15:16:17 +02:00
Dirkjan Ochtman a53135dc99 Remove reference to staged module http 2018-05-17 20:59:08 +02:00
Dirkjan Ochtman a05067e358 Let Streams request new stream and notify connection about it 2018-05-17 14:58:09 +02:00
Dirkjan Ochtman 10fa7fc2f0 Apply suggestions from clippy to clean up code 2018-05-16 20:41:18 +02:00
Dirkjan Ochtman 4ef5ee5f2e Add basic Streams object to collect stream interactions 2018-05-15 21:48:27 +02:00
Dirkjan Ochtman 89b1398bba Replace DRAFT_11 with QUIC_VERSION 2018-05-13 21:34:17 +02:00
Dirkjan Ochtman 9f5a4aa597 Move transport parameter types into separate module 2018-05-13 21:30:17 +02:00
Dirkjan Ochtman 02a37af854 Implement basic support for close frames 2018-05-07 13:55:35 +02:00
Dirkjan Ochtman 0cba76cc3b Encode into byte slices 2018-05-07 09:46:43 +02:00
Dirkjan Ochtman 2a4b14503d Introduce custom error type and stop unwrapping 2018-05-05 17:58:58 +02:00
Dirkjan Ochtman 28b2eaae7c Rename QuicStream to Client 2018-05-05 13:19:57 +02:00
Dirkjan Ochtman 232b62728b Move Endpoint into new endpoint module 2018-05-02 12:01:17 +02:00
Dirkjan Ochtman 5cd6d4efc1 Set up framework for testing protocol flow 2018-04-26 16:14:35 +02:00
Dirkjan Ochtman 06b5191d00 Move client code into new client module 2018-04-25 16:02:18 +02:00
Dirkjan Ochtman 8634105ac9 Rebuild client connect as a future 2018-04-25 16:02:18 +02:00
Dirkjan Ochtman f32beaac69 Start to organize the client code 2018-04-24 17:37:53 +02:00
Dirkjan Ochtman 442987b8d5 Adapt to changes rustls API for client handshakes 2018-04-24 14:00:19 +02:00
Dirkjan Ochtman 79b566ed9f Move server code into a new server module 2018-04-23 16:23:49 +02:00
Dirkjan Ochtman 6d1b88d874 Resize buffer after decoding packets 2018-04-23 16:18:05 +02:00
Dirkjan Ochtman 470b27971d Rework public Packet interface 2018-04-23 16:03:43 +02:00
Dirkjan Ochtman 7c15e6a91a Rename proto module to packet 2018-04-23 15:57:58 +02:00
Dirkjan Ochtman 97348eb8d8 Improve formatting 2018-04-23 15:56:43 +02:00
Dirkjan Ochtman c0af9397a1 Implement server side of handshake 2018-04-23 15:55:11 +02:00
Dirkjan Ochtman 3507c5bf04 Correct formatting with cargo fmt 2018-04-19 11:56:34 +02:00
Dirkjan Ochtman 6654a2baa4 Show packet contents when sending 2018-04-19 11:54:56 +02:00
Dirkjan Ochtman ad059dc6e5 Print Packet contents on receival 2018-04-19 11:48:16 +02:00
Dirkjan Ochtman 067f4a1f5e Change type for StreamFrame::offset 2018-04-19 11:48:16 +02:00
Dirkjan Ochtman 07f47a9f8d Improvements for crypto API 2018-04-18 16:47:58 +02:00
Dirkjan Ochtman 19906addb3 Rename hkdf module to crypto 2018-04-18 16:26:43 +02:00
Dirkjan Ochtman ac9b78d161 Implement packet protection for handshake packets 2018-04-18 16:25:27 +02:00
Dirkjan Ochtman f84c5e4405 Implement support for QHKDF (for client handshake) 2018-04-17 10:59:39 +02:00
Dirkjan Ochtman 676f250fff Expose Server API from library 2018-04-16 12:12:52 +02:00
Dirkjan Ochtman 544e8fab33 Keep server running after serving response 2018-04-16 12:05:10 +02:00
Dirkjan Ochtman 7ce9a21e53 Move packet number into the header 2018-04-16 12:05:10 +02:00
Dirkjan Ochtman 1a68ee6c07 Let the server send some random bytes in response 2018-04-16 10:54:44 +02:00
Dirkjan Ochtman 89d0a7faea Properly size the response buffer 2018-04-12 12:30:55 +02:00
Dirkjan Ochtman 6c94b3af38 Add initial implementation of server side 2018-04-12 12:11:05 +02:00
Dirkjan Ochtman bc428af22b Silence some warnings 2018-04-10 10:35:46 +02:00
Dirkjan Ochtman b76c299aaf Move codec types into codec module 2018-04-10 10:32:06 +02:00
Dirkjan Ochtman 67a57b698a Move Frame and related types into frame module 2018-04-10 10:25:42 +02:00
Dirkjan Ochtman 9fd0379637 Correctly set version to draft 10 2018-04-10 10:19:15 +02:00
Dirkjan Ochtman 5cd86ad770 Start sending and receiving datagrams 2018-04-10 10:18:30 +02:00
Dirkjan Ochtman 2955090061 Add padding if necessary 2018-04-09 21:23:35 +02:00
Dirkjan Ochtman 6b6a38d7de Start implementing basic UDP handling 2018-04-09 21:10:57 +02:00