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