Commit Graph

324 Commits

Author SHA1 Message Date
Oliver Gould
85626f5a79 reintroduce state tracking, separate from flow tracking 2017-07-16 02:15:37 +00:00
Oliver Gould
e90a6e9250 wip: start splitting out stream management 2017-07-15 22:50:13 +00:00
Oliver Gould
59c92e1089 wire up remote settings application 2017-07-15 21:07:21 +00:00
Oliver Gould
1ed4b7e56a wip: Sketch out stream state refactor
introduce the StreamTransporter trait, which exposes a map containing
all active stream states.

add skeletons for StreamTracker and FlowControl.  StreamTracker drives
all state changes
2017-07-15 18:39:45 +00:00
Oliver Gould
d0c55c52e9 clarify terminology and fix several obvious bugs in the process 2017-07-13 06:43:28 +00:00
Oliver Gould
cc97653fd7 hmmmmm two tests are failing... handshake and get_with_204_response 2017-07-13 03:47:31 +00:00
Oliver Gould
052ff83e24 logging 2017-07-13 03:07:10 +00:00
Oliver Gould
cbd3e17283 ok, starting to look good 2017-07-13 02:24:36 +00:00
Carl Lerche
c061777663 Add large body test 2017-07-12 14:42:08 -07:00
Oliver Gould
41ffd1d44f closer to flow control 2017-07-12 21:04:58 +00:00
Carl Lerche
36a1c6f045 More tests 2017-07-11 20:50:41 -07:00
Carl Lerche
fab9fa8ed2 More tests 2017-07-11 14:28:40 -07:00
Carl Lerche
4e0e01aa5c More tests 2017-07-11 14:01:25 -07:00
Oliver Gould
b9f3556070 Merge branch 'master' into ver/flowio 2017-07-10 01:15:36 +00:00
Oliver Gould
d269029dd6 wip 2017-07-10 00:46:20 +00:00
Oliver Gould
d7b82cd50b wip 2017-07-09 06:01:42 +00:00
Carl Lerche
6d1d54f104 Stub out window update 2017-07-08 22:36:24 -07:00
Carl Lerche
981af88838 Get data frames working 2017-07-08 22:23:44 -07:00
Oliver Gould
7632a016df Merge branch 'master' into ver/flowio 2017-07-09 03:34:44 +00:00
Oliver Gould
36aa0892c2 wip 2017-07-09 03:34:31 +00:00
Carl Lerche
f6b6d0c7e8 Start state transition verification + refactors 2017-07-07 10:33:04 -07:00
Carl Lerche
a15f06ea7c Add a test for reading client preface 2017-07-06 18:34:17 -07:00
Carl Lerche
4c389282e6 Fix bug with server reading preface 2017-07-06 15:03:27 -07:00
Carl Lerche
5982113c7a Get a server working 2017-07-06 14:55:35 -07:00
Carl Lerche
cb5130e3c6 Start working on server 2017-06-30 14:36:13 -07:00
Oliver Gould
7f21954724 Implement ping_pong (#1)
* comments

* wip

* wip

* Sketch out pingpong and keepalive stack modules

PingPong responds to ping requests with acknowledgements.
KeepAlive issues ping requests on idle connections.

* remove keepalive for now

* commentary

* prettify ping_pong's poll

* test ping pong and passthrough

* add buffering test

* Use a fixed-size slice for ping payloads

* Improve pong dispatch

pong messages should be buffered until Stream::poll returns
Async::NotReady or Async::Ready(None) (i.e. such that it is not expected
to be polled again).  pong messages are now dispatched when no more data
may be polled or the Sink half is activated.

* revert name change

* touchup

* wip

* Simplify Stream::poll

Now PingPong only holds at most one pending pong and the stream will not
produce additional frames unti the ping has been sent.

Furthermore, we shouldn't have to call inner.poll_complete quite so
frequently.

* avoid Bytes::split_to

* only use buf internally to Ping::load
2017-06-30 13:58:14 -07:00
Carl Lerche
a7b92d5ec2 Restructure hpack tests 2017-06-29 23:11:35 -07:00
Carl Lerche
63ffea61f5 Start writing tests 2017-06-29 20:59:21 -07:00
Carl Lerche
0564747121 Tweaks 2017-06-29 20:41:46 -07:00
Carl Lerche
076bf204e7 Point io-dump to the github repo 2017-06-29 10:11:26 -07:00
Carl Lerche
1842cb5dfc Use latest tokio-timer 2017-06-27 13:31:46 -07:00
Carl Lerche
8e16e22172 question... 2017-06-27 12:49:27 -07:00
Carl Lerche
fee43a09c8 Fix warnings 2017-06-27 12:23:57 -07:00
Carl Lerche
79aa11ad32 Shuffle types around 2017-06-27 11:04:36 -07:00
Carl Lerche
1f85d54cff Process response 2017-06-27 01:34:37 -07:00
Carl Lerche
7897b770e9 Get a request sent 2017-06-26 22:25:25 -07:00
Carl Lerche
ac2959e956 Get settings handshake working + other junk 2017-06-23 15:51:00 -07:00
Carl Lerche
fa21970656 Much work 2017-06-23 13:13:50 -07:00
Carl Lerche
a3950354aa Header frame decoding 2017-06-20 09:16:21 -07:00
Carl Lerche
29951da962 FramedWrite 2017-06-19 13:34:08 -07:00
Carl Lerche
327ca79550 More header encoding work 2017-06-19 11:53:03 -07:00
Carl Lerche
b4c3161d74 A bunch of work 2017-06-16 21:45:44 -07:00
Carl Lerche
f6fd6a6d6e Bunch of work 2017-06-16 16:37:51 -07:00
Carl Lerche
c12a9a86ae Don't allocate on each call to huffman decode 2017-06-13 14:39:39 -07:00
Carl Lerche
ab8eac6c05 Remove extra debug_assert 2017-06-13 13:55:05 -07:00
Carl Lerche
c7de880f6c More bug fixes 2017-06-13 13:46:45 -07:00
Carl Lerche
ef495d55dc More HPACK bug fixes 2017-06-12 10:39:40 -07:00
Carl Lerche
58ea9ada0f More bug fixes 2017-06-11 13:53:23 -07:00
Carl Lerche
73de7918de Remove commented out code 2017-06-09 12:07:56 -07:00
Carl Lerche
fa53d9556b Fuzz HPACK 2017-06-09 12:06:38 -07:00