Commit Graph

355 Commits

Author SHA1 Message Date
Sean McArthur
ed4e67c1a4 Merge pull request #93 from seanmonstar/codec-unstable
remove unstable for Codec methods used internally
2017-09-18 10:03:58 -07:00
Sean McArthur
92030f634f remove unstable for Codec methods used internally 2017-09-17 14:28:45 -07:00
Oliver Gould
1022e04276 Merge pull request #94 from carllerche/ver/clone-builders
Derive Clone for Builder types
2017-09-17 14:15:24 -07:00
Oliver Gould
303b896095 Derive Clone for Builder types 2017-09-17 20:38:55 +00:00
Sean McArthur
a8e117d09f Merge pull request #88 from seanmonstar/config-max-frame-size
Configure max frame size
2017-09-14 17:29:49 -07:00
Sean McArthur
c32015d48e add support for configuring max frame size
- Adds `max_frame_size` to client and server builders
- Pushes max_frame_size into Codec
- Detects when the Codec triggers an error from a frame too big
- Sends a GOAWAY when FRAME_SIZE_ERROR is encountered reading a frame
2017-09-14 17:03:43 -07:00
Sean McArthur
8984a46a92 Merge pull request #87 from seanmonstar/server-config
add Server Builder
2017-09-14 16:59:37 -07:00
Sean McArthur
7531e5276b add Server Builder 2017-09-14 16:36:51 -07:00
Eliza Weisman
e4b8dde1d3 Split Travis build into stages (#62)
Adds code coverage checking.
2017-09-14 16:33:34 -07:00
Carl Lerche
f84a1bdd1f Notify connection on connection window expansion (#86)
When capacity is released back to the connection and a connection level
window update needs to be sent out, the connection task needs to be
notified in order for the send to actually happen.
2017-09-14 13:50:52 -07:00
Sean McArthur
eaf4192838 Merge pull request #89 from mehcode/patch-1
Drive by spelling fix ( ugprade -> upgrade )
2017-09-13 21:32:38 -07:00
Ryan Leckey
76a2792d7d ugprade -> upgrade 2017-09-13 21:17:01 -07:00
Sean McArthur
dd6cac62e8 Merge pull request #79 from seanmonstar/client-config
Intial Client Configuration
2017-09-13 14:55:36 -07:00
Sean McArthur
3ec0e85e56 add test when stream window overflows before conn window 2017-09-13 14:32:27 -07:00
Sean McArthur
e2cda1860b fix Body to return errors when there is recv error 2017-09-13 14:32:27 -07:00
Sean McArthur
ed472f109c add client::Builder to configure Clients 2017-09-13 14:32:27 -07:00
Sean McArthur
d0afe30ab3 fix recv connection flow should always use default initial window size 2017-09-13 14:32:27 -07:00
Carl Lerche
b01e3dff12 Annotate unstable API fns with cfg 2017-09-13 14:14:41 -07:00
Sean McArthur
f7d14861e5 rustfmt: add trailing commas in match arms, set fn call to block stle (#85) 2017-09-12 19:29:06 -07:00
Oliver Gould
de1edf4873 Merge pull request #71 from carllerche/ver/rustfmt
Use rustfmt to enforce consistent formatting
2017-09-12 16:00:06 -07:00
Oliver Gould
897bf84163 Use rustfmt to enforce consistent formatting
This change adds a .rustfmt.toml that includes ALL supported settings,
12 of which we have overridden to attempt to cater to our own
proclivities.

rustfmt is checked in the rust-nightly CI job.
2017-09-12 22:29:35 +00:00
Carl Lerche
93925e6d1f Limit send flow control bug to window_size (#78)
Senders could set the available capacity greater than the current
`window_size`.  This caused a panic when the sender attempted
to send more than the receiver could accept.
2017-09-12 10:48:11 -07:00
Eliza Weisman
9448a19408 Factor out reset on RecvError::Stream (#76) 2017-09-11 13:07:37 -07:00
Eliza Weisman
11de86b34e Make Codec max frame length configurable (#57) 2017-09-11 12:56:40 -07:00
Sean McArthur
460afa41c8 Add connection window overflow test (#72) 2017-09-11 10:17:43 -07:00
Carl Lerche
5c0efcf8c4 Ref count stream state and release when final (#73)
Previously, stream state was never released so that long-lived connections
leaked memory.

Now, stream states are reference-counted and freed from the stream slab
when complete.  Locally reset streams are retained so that received frames
may be ignored.
2017-09-10 16:01:19 -07:00
Carl Lerche
daa54b9512 Rewrite a flow test 2017-09-08 13:42:14 -07:00
Carl Lerche
16f0345c16 Update README to reflect progress 2017-09-08 12:50:22 -07:00
Oliver Gould
17bebe719a Increment stream window capacity when sending window update (#67) 2017-09-08 12:24:06 -07:00
Carl Lerche
c47717204c Flow control bug fix (#70)
The requested capacity was not decreased as data is written.
2017-09-08 12:15:46 -07:00
Sean McArthur
14f3f87da6 Merge pull request #66 from carllerche/flow-control-bugs
Fix some flow control bugs
2017-09-07 21:02:33 -07:00
Sean McArthur
b9e9fc64a7 Merge pull request #64 from seanmonstar/tests-ergo-frames
add ergonomics to testing with frames
2017-09-07 20:16:39 -07:00
Sean McArthur
018f00b8db update flow control tests to use frame builders 2017-09-07 17:06:09 -07:00
Sean McArthur
aef11623ac add recv_frame and send_frame extensions for Handle Futures 2017-09-07 17:05:43 -07:00
Sean McArthur
cc70ac1ef2 fix style to match crate 2017-09-07 17:05:07 -07:00
Carl Lerche
ae6bad6cef Fix some flow control bugs
When a stream is closed, connection level capacity should be released
back to the connection and then assigned to other streams waiting for
capacity.
2017-09-07 16:45:20 -07:00
Carl Lerche
9b42dafd24 Extract drive combinator to test support 2017-09-07 15:36:54 -07:00
Carl Lerche
38bbf30b2f Fix bug in prioritization (#63)
The stream buffered data counter was never decremented.
2017-09-07 14:12:21 -07:00
Sean McArthur
342d283cc5 add ergonomics to testing with frames 2017-09-07 13:09:57 -07:00
Sean McArthur
09744f38ef add a ReleaseCapacityTooBig variant to UserError 2017-09-07 08:20:03 -07:00
Sean McArthur
452e49dc3e aggregate WINDOW_UPDATE frames until change is over 50% available 2017-09-07 08:20:03 -07:00
Eliza Weisman
b040ca1478 Add codecov.io coverage reporting (#58) 2017-09-06 16:08:51 -07:00
Carl Lerche
cd76aca6d4 Add test infrastructure to work directly with frames (#56)
This adds a `Codec` based testing API. This is a bit less annoying than writing
at the raw H2 wire protocol level...
2017-09-06 14:18:37 -07:00
Oliver Gould
711086c184 cache cargo dependencies (#54) 2017-09-05 20:17:48 -07:00
Oliver Gould
8b07a4298c Remove the AsyncRead + AsyncWrite type constraint from h2::client::Client (#53) 2017-09-05 20:17:32 -07:00
Carl Lerche
0cc611df35 Add Codec::set_max_send_frame_size 2017-09-05 14:01:32 -07:00
Carl Lerche
c2e6eb35d8 Track HTTP crate 2017-09-05 10:21:31 -07:00
Carl Lerche
b4fa5134f9 Data frame (#50)
* Rename DataFlag -> DataFlags
* Polish Data frame API
2017-09-05 10:00:05 -07:00
eyelash
bbcfffee46 Fix hyper link in README (#51) 2017-09-04 08:55:52 -07:00
Carl Lerche
88d1de2da0 Expose Codec via an unstable flag (#49)
Exposes `Codec` using an unstable flag. This is useful for testing.
2017-09-03 16:17:05 -07:00