Carl Lerche
15f6dfd2c1
Handle invalid stream deps with RST_STREAM
2017-08-30 18:16:21 -04:00
Carl Lerche
14f35f1be6
Handle malformed HEADERS
2017-08-30 18:16:21 -04:00
Carl Lerche
9d45255c75
H2 headers must be lower case
2017-08-30 18:16:21 -04:00
Carl Lerche
91aa1db2ff
Misc protocol fixes
...
* Verify contiuation frame stream ID
* Fix sending RST_STREAM in certain cases.
2017-08-30 18:16:21 -04:00
Carl Lerche
0c8a94aa11
Fix send flow control bug
...
The send stream state is transitioned before data is buffered. As such,
the stream state could be closed while there is still data to be sent.
2017-08-30 18:16:21 -04:00
Brian Smith
63ba0073a4
Update TLS-related dependencies. ( #41 )
...
Use a temporary private fork of tokio-rustls that uses Rustls 0.12
until tokio-rustls 0.4 is released.
This upgrades, among other things, *ring* to 0.12, which will ensure
that it still builds in the Rust 1.20 release coming this week even if
backward-compatibility-breaking changes to rustc aren't fixed before
the release.
2017-08-29 13:23:38 -04:00
Carl Lerche
11df3633a4
Fix build on nightly
2017-08-29 12:20:44 -04:00
Carl Lerche
11d5f95236
Wire in trailers ( #34 )
...
Add send and receive trailer support.
2017-08-25 10:20:47 -07:00
Carl Lerche
c0433e8831
Fix tests & bug introduced in previous commit
2017-08-24 16:48:01 -07:00
Carl Lerche
b0e6867877
Fix warnings
2017-08-24 15:52:01 -07:00
Carl Lerche
638791ac6c
Remove some CI platforms
2017-08-24 13:09:39 -07:00
Carl Lerche
6a6c9665cd
Immediately apply initial window size to streams
...
The initial window size should be applied to streams once they leave the
IDLE state.
2017-08-24 11:03:33 -07:00
Carl Lerche
66dbde92ef
Do not reuse next ptr for multiple linked lists
...
Because, you might think that each linked list has exclusive access to
the next pointer, but then there is an edge case that proves otherwise.
Also, debugging this kind of thing is annoying.
2017-08-23 20:35:53 -07:00
Carl Lerche
7e8c7fd2b8
Use FlowControl::available to size data frames ( #29 )
2017-08-23 20:34:58 -07:00
Oliver Gould
f839443ece
implement h2::server::Stream::send_reset(Reason) and Body::is_empty() ( #22 )
2017-08-23 12:48:00 -07:00
Carl Lerche
e8f757457b
Update server example
2017-08-23 11:24:54 -07:00
Carl Lerche
807d2b7317
Wire in recv flow control ( #26 )
2017-08-23 11:22:24 -07:00
Carl Lerche
a623ab68b5
New send flow control ( #25 )
...
Restructure send flow control such that sending data is always accepted by `Stream`. Data frames will be buffered until there is available window to send them. Producers can monitor the available window capacity to decide if data should be produced.
2017-08-21 13:52:58 -07:00
Carl Lerche
41b25a4a56
Fix README example
2017-08-17 07:22:26 -07:00
Carl Lerche
cd2bc41adc
Improve the README
2017-08-16 22:23:45 -07:00
Carl Lerche
8ea99dd3ff
Use travis to run CI
2017-08-16 21:49:25 -07:00
Brian Smith
2992594552
Switch Akamai example from rust-openssl to Rustls. ( #24 )
...
With this change, h2 can build and run without any manual configuration steps for -msvc targets. Previously manual installation of OpenSSL libraries was required.
2017-08-16 21:43:35 -07:00
Brian Smith
72f1d372af
Fix build by upgrading tokio-io dependency to tokio-io 0.1.3. ( #23 )
...
tokio-io 0.1.3 has been published so the "replace" for tokio-io 0.1.2 is no longer useful and it breaks the build with some (but apparently not all) versions of Cargo.
Update the dependency to tokio-io 0.1.3 since that is the version that's what's been verified to work.
2017-08-16 21:40:53 -07:00
Carl Lerche
de96b2f410
Add another test
2017-08-16 12:43:48 -07:00
Oliver Gould
e015d7bfba
Implement Client::poll_ready ( #21 )
...
Client::poll_ready ensures that the connection is ale to to initiate a new request stream to the remote server. When the server is at capacity, a task is stored to be notified when capacity is available.
2017-08-15 13:46:55 -07:00
Carl Lerche
150c3160be
Get large body writes working
2017-08-12 11:02:50 -07:00
Carl Lerche
570962353b
Work on prioritization
2017-08-11 21:57:44 -07:00
Carl Lerche
3b2ad536d9
Fix bug in prioritization
2017-08-11 19:01:54 -07:00
Carl Lerche
8a15663ed2
Progress towards allowing large writes
2017-08-11 16:57:51 -07:00
Carl Lerche
32d4c2d5a9
Many more changes
2017-08-11 12:00:22 -07:00
Carl Lerche
012646ab46
Validate settings
2017-08-10 23:25:36 -07:00
Carl Lerche
23b2ef49cc
Stub out priority
2017-08-10 23:17:21 -07:00
Carl Lerche
c439232ed2
Handle more H2 details
2017-08-10 21:08:57 -07:00
Carl Lerche
e2fac3e823
More tweaks
2017-08-10 20:35:41 -07:00
Carl Lerche
10fd4ae7ed
Wire up trailers
2017-08-10 20:24:52 -07:00
Carl Lerche
48c9734249
Support receiving continuation frames
2017-08-10 20:14:00 -07:00
Carl Lerche
0d61832bf3
Extra log output
2017-08-10 16:13:36 -07:00
Carl Lerche
a61562f6b8
Add GoAway support
2017-08-10 14:19:46 -07:00
Carl Lerche
1974780504
Add a quick README
2017-08-10 14:00:51 -07:00
Carl Lerche
50e0ad2f2a
Handle padding & stream priority when parsing headers frame
2017-08-10 13:55:36 -07:00
Carl Lerche
e7c07b0b12
More debug output
2017-08-10 13:34:04 -07:00
Carl Lerche
a1b03b7724
Trying to get something working
2017-08-10 13:15:40 -07:00
Carl Lerche
6c962491c6
Test and fix store::List::retain
2017-08-10 10:14:22 -07:00
Carl Lerche
7107e9fc06
More work on window updates
2017-08-09 22:34:22 -07:00
Carl Lerche
c118f86517
More flow control work
2017-08-09 16:42:55 -07:00
Carl Lerche
95bb95af01
More send flow control
2017-08-09 14:37:41 -07:00
Carl Lerche
a8c8cdb8e9
Fix build
2017-08-09 14:17:55 -07:00
Carl Lerche
dfec401fdf
WIP: send flow control
2017-08-09 14:16:32 -07:00
Carl Lerche
87c4d36b0c
Delete comments
2017-08-09 11:47:15 -07:00
Carl Lerche
0bf0e79132
Tweaks
2017-08-09 11:43:55 -07:00