lambdasqd
1448e4067b
fix(server): properly handle keep-alive for HTTP/1.0
...
Change behaviour of connection or server response when the request is
version 1.0 and the Connection: keep-alive header is not present.
1. If the response is also version 1.0, then connection is closed if the
server keep-alive header is not present.
2. If the response is version 1.1, then the keep-alive header is added
when downgrading to version 1.0.
Closes #1614
2018-08-15 12:10:03 -07:00
Sean McArthur
bdbaa85f41
v0.12.8
2018-08-10 14:42:27 -07:00
Sean McArthur
195fbb2a37
fix(server): coerce responses with HTTP2 version to HTTP/1.1 when protocol is 1.x
2018-08-10 13:08:08 -07:00
Sean McArthur
853266d873
test(server): add http1_only server test
2018-08-10 13:08:08 -07:00
Sean McArthur
b459adb43a
feat(server): add Builder::http1_keepalive method
2018-08-10 13:08:08 -07:00
Yusuke Sasaki
1e8cd5aaa6
chore(*): enable #[deny(warnings)] at only testing
2018-08-10 10:40:40 -07:00
Sean McArthur
0ea3b836f9
refactor(server): remove double nested listen errors in from_tcp
2018-08-08 11:23:37 -07:00
Yoshua Wuyts
bb4c5e24c8
feat(server): add Server::from_tcp constructor
...
Adds a constructor to build a `Server` from an `std::net::TcpListener`.
Closes #1602
2018-08-08 11:13:07 -07:00
Sean McArthur
6e8417e08f
refactor(lib): use type macro to detect impl Trait
2018-08-07 21:00:02 -07:00
Niv Kaminer
9f8add6056
chore(client): place the use of new rust features behind cfg
2018-08-07 19:36:00 -07:00
Niv Kaminer
97f4243a59
refactor(headers): remove usage of deprecated ascii trait
2018-08-07 19:36:00 -07:00
Niv Kaminer
4290b8bba4
perf(client): replace usage of Box<Trait> with impl Trait
2018-08-07 19:36:00 -07:00
Sean McArthur
26f3a5ed31
feat(server): add remote_addr method to AddrStream
2018-08-07 16:46:46 -07:00
Sean McArthur
4020a2f8b9
chore(lib): disable all rustfmt for now while its unstable
2018-08-06 13:45:02 -07:00
Laurentiu Nicola
c837fb9c29
refactor(lib): replace Vec::set_len(0) with clear
2018-08-02 14:02:49 -07:00
Sean McArthur
069a32b1ac
v0.12.7
2018-07-23 09:51:38 -07:00
Sean McArthur
6530a00a8e
fix(http1): reduce closed connections when body is dropped
...
If a user makes use of `Body::is_end_stream` to optimize so as to not
need to do make a final poll just to receive `None`, previously the
connection would not have progressed its reading state to a finished
body, and so the connection would be closed.
Now, upon reading any chunk, the connection state will check if it
can know that the body would be finished, and progresses to a body
finished state sooner.
The integration tests were amplified by adding a naive hyper proxy
as a secondary test, which happens to make use of that optimization,
and thus caught the issue.
2018-07-23 09:39:19 -07:00
Sonny Scroggin
05c1179e82
docs(upgrade): fix link to upgrade example
...
Closes #1608
2018-07-20 22:25:07 -07:00
Sean McArthur
8a04a97464
v0.12.6
2018-07-11 17:20:20 -07:00
Sean McArthur
b41eabfe64
chore(readme): adjust note about instability around futures
2018-07-11 17:19:20 -07:00
Igor Gnatenko
7b54e9ccae
chore(dependencies): update want to 0.0.6
2018-07-11 14:20:39 -07:00
Eli Snow
13862d11ad
feat(client): add ability to include SO_REUSEADDR option on sockets
...
Closes #1599
2018-07-11 12:13:59 -07:00
Hrvoje Ban
02a9c29e2e
feat(client): implement rfc 6555 (happy eyeballs)
...
Update client connector to attempt a parallel connection using
alternative address family, if connection using preferred address family
takes too long.
Closes : #1316
2018-07-10 13:43:03 -07:00
Sean McArthur
5b5e309095
feat(server): add Builder::http1_pipeline_flush configuration
...
However, you probably shouldn't use it! It's `doc(hidden)`, since it
isn't the truest pipeline support. Instead, it just prevents flushing
until read buffer has been consumed.
It's only real use is for silly pipeline benchmarks.
2018-07-09 12:56:54 -07:00
Jonas Platte
51223efb8a
docs(lib): Fix some typos
2018-07-08 10:10:12 -07:00
Sean McArthur
ae34a86cc3
docs(examples): add a stateful server example with a request counter
2018-07-06 15:24:01 -07:00
Sean McArthur
8991707a6a
perf(http1): propagate service user error generic further into dispatcher
...
In the case of `Never`, this allows the optimizer to eliminate more code
inside the dispatcher, winning some more performance in benchmarks.
2018-07-06 15:01:53 -07:00
Özgür Akkurt
bff37244d8
docs(server): clean the web_api example up
...
add comments and a json example
closes #1595
2018-07-06 12:37:50 -07:00
Özgür Akkurt
9cd971d8f3
docs(client): improve client_json example
2018-07-06 12:37:50 -07:00
Özgür Akkurt
396e6022e0
docs(server): mention http2 support
...
mention http2 support in server module documentation.
Closes #1578
2018-07-05 10:38:13 -07:00
Sean McArthur
a2a6e36cca
doc(readme): add note about contributing and chat links
2018-07-04 13:26:58 -07:00
ozgurakkurt
e06dc52ef6
docs(client): Add client_json example
...
Closes #1581
2018-07-03 14:41:50 -07:00
Sean McArthur
d42c983e3b
test(http1): fix unused import warnings of Bytes when debug_assertions are off
2018-06-29 14:14:29 -07:00
Sean McArthur
b9ab8be986
refactor(common): ensure empty StaticBufs don't make IoVecs
2018-06-29 14:13:41 -07:00
Sean McArthur
5a3efda0e7
v0.12.5
2018-06-28 20:53:50 -07:00
Sean McArthur
6aff27523a
chore(h2): fix minimum h2 version
2018-06-28 18:00:12 -07:00
Sean McArthur
8cf6f145ac
v0.12.4
2018-06-28 16:21:27 -07:00
Sean McArthur
c03c39e0ff
fix(client): fix keep-alive header detection when parsing responses
2018-06-28 15:15:50 -07:00
Sean McArthur
e7c7f2db05
refactor(h1): give better panics in debug mode when headers successfully parse illegal values
2018-06-28 12:53:54 -07:00
Sean McArthur
f2d464ac79
fix(client): try to reuse connections when pool checkout wins
...
If a checkout wins, meaning an idle connection became available before
a connect future completed, instead of just dropping the connect future,
it spawns it into the background executor to allow being placed into
the pool on completion.
2018-06-28 12:43:56 -07:00
Sean McArthur
1f95f58837
chore(error): improve message about incomplete parsed messages
2018-06-25 17:29:40 -07:00
Sean McArthur
1156e17e65
chore(error): add specific user error for responding with 1xx status code
2018-06-25 17:16:09 -07:00
Laurențiu Nicola
91b08d09e4
chore(headers): use HeaderValue::from for content-length ( #1583 )
2018-06-25 16:17:08 -07:00
Sean McArthur
d7436cfbe0
v0.12.3
2018-06-25 12:46:41 -07:00
Sean McArthur
e61fe54093
test(server): fix unused result from block_on
2018-06-25 11:48:52 -07:00
Sean McArthur
6848ba63fb
test(server): use current_thread instead of rt::run with http2 tests
2018-06-25 11:35:57 -07:00
Josh Leeb-du Toit
ffdb478831
feat(http2): quickly cancel when receiving RST_STREAM
...
Update Http2 proto to cancel quick when the stream is reset, on an
`RST_STREAM` frame.
Closes : #1549
2018-06-25 11:14:35 -07:00
Sean McArthur
2a3844acc3
feat(client): enable CONNECT requests through the Client
...
While the upgrades feature enabled HTTP upgrades in both and the server and client, and the goal was for `CONNECT` requests to work as well, only the server could use them for `CONNECT`. The `Client` had some specific code rejecting `CONNECT` requests, and this removes it and prepares the `Client` to handle them correctly.
2018-06-22 21:00:28 -07:00
Sean McArthur
f698b03e57
perf(headers): don't allocate to format content-length on 32bit when number is not huge
2018-06-22 11:39:32 -07:00
Sean McArthur
ac1af8d15b
perf(headers): switch from fmt to itoa when writing content-length header
2018-06-20 17:19:37 -07:00