Commit Graph

3653 Commits

Author SHA1 Message Date
Benjamin Saunders 6f1ea7b783 core: ensure read sanity 2018-04-28 17:43:35 -07:00
Benjamin Saunders 73d9e3470e tokio: impl AsyncRead for RecvStream 2018-04-28 16:02:21 -07:00
Benjamin Saunders b6cc9c2345 core: implement ordered reads 2018-04-28 15:47:09 -07:00
Benjamin Saunders c0100f3c2a core: bitfield-based stream assembly 2018-04-28 15:47:06 -07:00
Benjamin Saunders 69cf45062a tokio: fix panic on connection loss 2018-04-28 14:02:37 -07:00
Benjamin Saunders 1c84faa0e5 core: clean up write 2018-04-28 14:02:13 -07:00
Benjamin Saunders af3d0e472a Don't copy potentially large buffers on write 2018-04-28 12:16:48 -07:00
Dirkjan Ochtman 7ea2aa231a Add test for encoding roundtrip 2018-04-27 14:44:11 +02:00
Dirkjan Ochtman de4f35b5e6 Derive PartialEq for more types to support testing 2018-04-27 14:43:59 +02:00
Dirkjan Ochtman 7e9bed3672 Store buffer in PartialDecode 2018-04-27 08:22:01 +02:00
Dirkjan Ochtman 46d70f0170 Use slices instead of manipulating buffer sizes 2018-04-27 08:14:30 +02:00
Benjamin Saunders df3aa5eb8c Move StreamAssembler to stream::Assembler 2018-04-26 21:11:43 -07:00
Benjamin Saunders 9865c0a9bc Fix inadvertent use of default reactor 2018-04-26 20:57:15 -07:00
Dirkjan Ochtman bb193a27c3 Construct endpoint inside ServerStreamState 2018-04-26 17:29:35 +02:00
Dirkjan Ochtman b153eb448a Add new() method for ClientStreamState 2018-04-26 17:25:56 +02:00
Dirkjan Ochtman 390181a0ad Stop passing around ThreadRng explicitly 2018-04-26 17:25:56 +02:00
Dirkjan Ochtman 624d4d9fd1 Properly reset server input buffer after handling packet 2018-04-26 17:12:09 +02:00
Dirkjan Ochtman 5cd6d4efc1 Set up framework for testing protocol flow 2018-04-26 16:14:35 +02:00
Dirkjan Ochtman d8a68fb005 Make high-level stream state struct APIs pub(crate) 2018-04-26 16:14:35 +02:00
Dirkjan Ochtman 3a9192847d Allow TLS client to be parametrized with trust anchors 2018-04-26 16:14:35 +02:00
Dirkjan Ochtman a6b24891c4 Add TLS test certificates and CA 2018-04-26 16:14:35 +02:00
Dirkjan Ochtman 4787bac2c7 Rename Connection to ServerStreamState 2018-04-26 14:39:02 +02:00
Dirkjan Ochtman 0f65671013 Fix formatting some more 2018-04-26 13:42:58 +02:00
Dirkjan Ochtman 08cbec9d0f Give handle() methods the same type 2018-04-26 13:41:47 +02:00
Dirkjan Ochtman 69b90cf349 Move creation of Initial packet into ClientStreamState 2018-04-26 13:27:34 +02:00
Dirkjan Ochtman 5b08057740 Move packet handling into ClientStreamState 2018-04-26 13:22:09 +02:00
Dirkjan Ochtman 6884a3b91e Move client's stream state into a separate struct 2018-04-26 13:16:54 +02:00
Dirkjan Ochtman fa2e68009e Move Connection initialization into new() method 2018-04-26 13:03:54 +02:00
Benjamin Saunders 769eb512d3 Extensive bugfixing, HTTP/0.9 server 2018-04-25 19:38:55 -07:00
Dirkjan Ochtman 985ee13cb4 Simplify offset types in decoding 2018-04-25 18:14:25 +02:00
Dirkjan Ochtman 5e709018b8 Improve formatting with cargo fmt 2018-04-25 18:00:36 +02:00
Dirkjan Ochtman 9dde05ae8f Split decoding in order to allow header-dependent packet keys 2018-04-25 17:56:55 +02:00
Dirkjan Ochtman 214c9ce99d Use Endpoint in server Connection objects 2018-04-25 17:18:50 +02:00
Dirkjan Ochtman 71e5ab38d7 Don't return from poll() while making progress 2018-04-25 16:03:12 +02:00
Dirkjan Ochtman d581ea2291 Let client send follow-up Handshake package 2018-04-25 16:03:12 +02:00
Dirkjan Ochtman 3d23a3b814 Add new tls::Client::process_handshake_messages() method 2018-04-25 16:03:12 +02:00
Dirkjan Ochtman e4bacedd7a Store separate handshake CID in Endpoint 2018-04-25 16:03:12 +02:00
Dirkjan Ochtman d3de8da259 Decode server-originated handshake packets 2018-04-25 16:03:12 +02:00
Dirkjan Ochtman cb602de2a6 Pass in key type when decoding packets 2018-04-25 16:03:12 +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 63655d1032 Add intermediate certificates to example server chain 2018-04-25 14:55:15 +02:00
Benjamin Saunders 59876386ab Fold PersistentState into ListenConfig
It's only needed for servers, so no sense cluttering the arguments on
its own.
2018-04-25 01:02:54 -07:00
Benjamin Saunders 96db2f4d20 Trivial request processing server 2018-04-24 23:27:07 -07:00
Benjamin Saunders cdacfccfb9 API tweak 2018-04-24 23:26:56 -07:00
Benjamin Saunders 14061422ec Fix spurious finishing of blocked streams 2018-04-24 23:26:33 -07:00
Benjamin Saunders bc6fc09446 Fix initial remotely initiated send stream max data 2018-04-24 23:20:08 -07:00
Benjamin Saunders c14c59dc7e Rearrange names
This should improve discoverability.
2018-04-24 23:19:49 -07:00
Benjamin Saunders 94f3c63959 examples: support fetching arbitrary URLs 2018-04-24 22:21:01 -07:00
Benjamin Saunders 3d30b104b4 tokio: separate send/recv stream types 2018-04-24 22:09:19 -07:00