Linus Färnstrand
de7418da2f
style(lib): use just std instead of ::std in paths ( #2101 )
2020-01-29 10:25:57 -08:00
Sean McArthur
c4bb4db5c2
fix(http1): only send 100 Continue if request body is polled
...
Before, if a client request included an `Expect: 100-continue` header,
the `100 Continue` response was sent immediately. However, this is
problematic if the service is going to reply with some 4xx status code
and reject the body.
This change delays the automatic sending of the `100 Continue` status
until the service has call `poll_data` on the request body once.
2020-01-28 17:32:58 -08:00
Sean McArthur
a354580e3f
perf(body): reduce memory size of Body by a u64 ( #2118 )
...
Replaces the `Option<u64>` content-length with a `DecodedLength`, which
stores its unknown-ness as `u64::MAX`.
2020-01-27 13:09:40 -08:00
Sean McArthur
1881db6391
fix(http1): remove panic for HTTP upgrades that have been ignored ( #2115 )
...
Closes #2114
2020-01-23 16:41:40 -08:00
danieleades
0eaf304644
style(lib): address most clippy lints
2020-01-03 09:40:32 -08:00
danieleades
0f13719873
refactor(error): remove deprecated 'Error::description' method ( #2092 )
2019-12-30 09:55:08 -08:00
guoyunlong16
fb90d30c02
fix(http2): don't add client content-length if method doesn't require it
2019-12-26 10:41:52 -08:00
Vivek Ghaisas
35825c4614
style(comments): correct some typos in Rust code comments
2019-12-20 10:16:36 -08:00
Sean McArthur
cb71d2cdbd
fix(http1): fix response with non-chunked transfer-encoding to be close-delimited
...
Closes #2058
2019-12-12 14:26:56 -08:00
Sean McArthur
e12329054a
refactor(http1): fix for unused must_use on read_buf.split_to
2019-12-12 14:17:33 -08:00
Sean McArthur
d1f6136ce2
test(http1): only enable WriteBuf non-empty test with debug-assertions
...
Closes #2062
2019-12-12 12:12:32 -08:00
Sean McArthur
a07142da2d
refactor(client): remove Unpin requirement from request body
2019-12-11 14:18:56 -08:00
Sean McArthur
52cc3f7367
refactor(client): remove Unpin requirement on Body::Data
2019-12-11 14:18:56 -08:00
Sean McArthur
245fa9c44c
refactor(server): remove Unpin requirement from the Body generic
2019-12-06 13:27:08 -08:00
Sean McArthur
8ba9a8d2c4
feat(body): add body::aggregate and body::to_bytes functions
...
Adds utility functions to `hyper::body` to help asynchronously
collecting all the buffers of some `HttpBody` into one.
- `aggregate` will collect all into an `impl Buf` without copying the
contents. This is ideal if you don't need a contiguous buffer.
- `to_bytes` will copy all the data into a single contiguous `Bytes`
buffer.
2019-12-06 10:03:05 -08:00
Sean McArthur
5a59875742
feat(body): replace Chunk type with Bytes
...
Closes #1931
BREAKING CHANGE: All usage of `hyper::Chunk` should be replaced with
`bytes::Bytes` (or `hyper::body::Bytes`).
2019-12-05 17:22:13 -08:00
Sean McArthur
0dc89680cd
style(lib): run rustfmt and enforce in CI
2019-12-05 13:55:17 -08:00
Sean McArthur
aa66de4f27
refactor(h1): un-split record_header_indicies for ARM
2019-12-04 16:58:35 -08:00
Sean McArthur
cb3f39c2dc
feat(lib): update Tokio, bytes, http, h2, and http-body
2019-12-04 10:56:34 -08:00
Daniel Johnson
71d088d3d0
chore(dependencies): update futures to 0.3.1
2019-11-14 10:04:16 -08:00
Sean McArthur
039281b89c
fix(client): fix polling dispatch channel after it has closed
2019-10-30 14:34:19 -07:00
Sean McArthur
10cda4beff
refactor(http2): replace server Unpin impl with pin_project
2019-10-22 18:33:05 -07:00
Sean McArthur
4f2743991c
feat(service): rename Service to HttpService, re-export tower::Service`
...
The only important trait for a user is the `tower::Service` trait, which
is now available also at `hyper::service::Service`. The other "trait
aliases" are no longer publicly exported, as people thought they had to
implement them.
Also removes dependency on `tower-make`, which is trivial but otherwise
shouldn't affect anyone.
Closes #1959
2019-10-21 11:01:28 -07:00
Sean McArthur
ca5836f1ec
fix(server): ignore expect-continue with no body in debug mode
...
Closes #1843
2019-10-18 15:44:01 -07:00
Sean McArthur
a1fe383c9d
refactor(http1): notice eof in the try_keep_alive method
2019-10-18 15:16:07 -07:00
Sean McArthur
7e31fd88a8
feat(server): change http1_half_close option default to disabled
...
Detecting a read hangup is a useful way to determine that a connection
has closed. It's also possible that a client shuts down its read half
without closing the connection, but this is rarer. Thus, by default,
hyper will now assume a read EOF means the connection has closed.
BREAKING CHANGE: The server's behavior will now by default close
connections when receiving a read EOF. To allow for clients to close
the read half, call `http1_half_close(true)` when configuring a
server.
2019-10-18 13:34:23 -07:00
Taiki Endo
bcb66736fb
chore(dependencies): update pin-project to 0.4
2019-10-01 06:40:41 -07:00
Sean McArthur
cea3589ef7
test(lib): deny warnings
2019-09-11 15:44:26 -07:00
Sean McArthur
6842c44a43
test(h1): re-enable h1 decoder tests
2019-09-11 14:49:14 -07:00
Sean McArthur
463982cda5
test(h1): re-enable h1 dispatch tests
2019-09-11 13:56:14 -07:00
Sean McArthur
0867ad5c15
fix(client): allow client GET requests with explicit body headers
...
Closes #1925
2019-09-04 15:22:30 -07:00
Aaron Hill
4c552a4960
refactor(lib): Use pin-project crate to perform pin projections
...
Remove all pin-related `unsafe` code from Hyper, as well as the
now-unused 'pin-utils' dependency.
2019-09-03 12:31:35 -07:00
Sean McArthur
946275dd1f
perf(body): re-enable optimization for full-data Bodies
2019-08-30 16:44:10 -07:00
Sean McArthur
3c6f7999cd
wip: body typeid full data
2019-08-30 16:23:28 -07:00
Sean McArthur
62a96c077b
feat(body): change Sender::send_data to an async fn.
...
The previous version is renamed to `try_send_data`.
BREAKING CHANGE: Usage of `send_data` should either be changed to
async/await or use `try_send_data`.
2019-08-30 16:04:07 -07:00
Lucio Franco
79c32f8953
feat(body): Update Payload to be a trait alias of http_body::Body ( #1908 )
2019-08-22 14:13:27 -07:00
Sean McArthur
49b12c415d
refactor(lib): fix remaining lint warnings (besides tests)
2019-08-22 13:57:50 -07:00
Sean McArthur
7b1d6d71b7
refactor(lib): fix many lint warnings
2019-08-21 11:58:02 -07:00
lzutao
fc7f81b67c
style(lib): use rust 2018 edition idioms ( #1910 )
2019-08-21 11:22:07 -07:00
Sean McArthur
fc784913a3
chore(dependencies): update to newer h2
2019-08-20 16:24:34 -07:00
Lucio Franco
ec520d5602
feat(service): use tower_service::Service for hyper::service
2019-08-20 12:01:06 -07:00
Sean McArthur
41f4173615
refactor(http2): re-enable http2 client and server support
2019-08-19 15:55:49 -07:00
Sean McArthur
1f6575279e
test(h1): re-enable the proto::h1::io tests
2019-07-16 14:22:17 -07:00
Sean McArthur
5da17df97f
chore(lib): individually disable tests and examples that aren't updated
2019-07-12 13:44:03 -07:00
Sean McArthur
8f4b05ae78
feat(lib): update to std::future::Future
...
BREAKING CHANGE: All usage of async traits (`Future`, `Stream`,
`AsyncRead`, `AsyncWrite`, etc) are updated to newer versions.
2019-07-09 15:55:22 -07:00
Sean McArthur
da9b0319ef
refactor(lib): update to 2018 edition
2019-07-09 15:16:01 -07:00
Sean McArthur
3e2f19e5bb
chore(lib): allow deprecated mem::uninitialized
2019-07-08 16:17:03 -07:00
Sean McArthur
3446af020b
refactor(http1): detect whether a Token parse error is for method or uri
2019-07-03 15:06:44 -07:00
Sean McArthur
8316f96d80
fix(http1): force always-ready connections to yield after a few spins
2019-06-14 13:35:54 -07:00
Sean McArthur
50198851a2
fix(http2): correctly propagate HTTP2 request cancellation
2019-06-03 14:39:35 -07:00