Commit Graph

1474 Commits

Author SHA1 Message Date
Raphael Cohn
425ff71d75 feat(http): add Body::from(cow) for bytes and strings
This change adds the ability to use Cow<'static, [u8]> and Cow<'static, str> for the body of a
HTTP request or response.
This makes it easier to create abstractions that serve static web pages, redirect messages and the
like.
2017-09-07 10:50:51 +01:00
Sean McArthur
50fd4ab96d chore(benches): remove unused pretty_env_logger import 2017-08-28 15:11:52 -07:00
Sean McArthur
cb9aff3c52 chore(tests): fix test for deprecated Future::boxed 2017-08-24 15:05:42 -07:00
Sean McArthur
207fca63ce fix(lib): remove logs that contain request and response data
Closes #1281
2017-08-15 16:04:56 -07:00
Sean McArthur
2ea125e609 chore(lib): fix new unused_mut warnings in nightly 2017-08-11 15:07:49 -07:00
Sean McArthur
f2db365613 Merge pull request #1279 from jethrogb/patch-2
docs(headers): clarify Basic auth
2017-07-31 11:02:39 -07:00
Sean McArthur
a9004958dd chore(header): fix unused doc comment warning in Origin 2017-07-31 09:51:52 -07:00
jethrogb
fcbad58924 docs(headers): clarify Basic auth
See https://tools.ietf.org/html/rfc7617
2017-07-31 09:05:05 -07:00
Sean McArthur
4922bb9d18 v0.11.2 2017-07-27 14:21:24 -07:00
Sean McArthur
aa8a587528 chore(lib): add deny(warnings) back that was mistakenly removed 2017-07-27 14:17:27 -07:00
Sean McArthur
5f6f252c60 feat(status): add as_u16() method
A `From<StatusCode> for u16` has existed, but the docs cannot show it.
It also is slightly more annoying to use if type inference can't figure
the types out. This includes an explicit method to get a `u16`.
2017-07-27 13:35:23 -07:00
Sean McArthur
7081c4498e fix(uri): fix Uri parsing of IPv6 and userinfo
Closes #1269
2017-07-26 16:32:56 -07:00
Sean McArthur
4bd9746a0f fix(header): fix panic from headers.remove when typed doesn't match 2017-07-24 15:22:58 -07:00
Sean McArthur
6f1a87097e style(lib): add must_use attributes to futures and streams 2017-07-24 10:11:29 -07:00
Sean McArthur
9b47e1861a fix(http): allow zero-length chunks when no body is allowed 2017-07-18 12:06:11 -07:00
Sean McArthur
89f780309b Merge pull request #1256 from brendanzab/add-missing-headers
feat(headers): Add missing headers
2017-07-17 16:45:18 -07:00
Sean McArthur
fc5b9cce31 fix(http): fix encoding when buffer is full 2017-07-17 11:19:32 -07:00
Sean McArthur
d6da3f7b40 fix(http): skip zero length chunks when encoding 2017-07-17 10:41:36 -07:00
Brendan Zabarauskas
c9f4ff3382 feat(headers): export missing header types 2017-07-14 21:05:28 +10:00
Brendan Zabarauskas
2a49cee7b2 chore(headers): Sort header imports alphabetically
This should make it easier to see missing imports in the future
2017-07-14 21:05:28 +10:00
Sean McArthur
85c6bec98b Merge pull request #1259 from hyperium/head-responses
fix(server): improve detection of when a Response can have a body
2017-07-13 13:35:13 -07:00
Sean McArthur
673e5cb1a3 fix(server): improve detection of when a Response can have a body
By knowing if the incoming Request was a HEAD, or checking for 204 or
304 status codes, the server will do a better job of either adding
or removing `Content-Length` and `Transfer-Encoding` headers.

Closes #1257
2017-07-13 12:19:53 -07:00
Sean McArthur
5f47d72347 Merge pull request #1244 from gotham-rs/add-response-body_ref-function
feat(server): Provide reference to Response body
2017-07-13 09:08:14 -07:00
Sean McArthur
258584a928 Merge pull request #1250 from dmizuk/remove-getid
refactor(header): remove GetType trait
2017-07-10 09:26:51 -07:00
Daiki Mizukami
dc2c6f1a98 refactor(header): remove GetType trait
Commit 7d122bd15f removed usage of
`header::sealed::GetType`, so the trait can safely be removed.
2017-07-10 17:44:51 +09:00
Sean McArthur
14cbd40071 fix(server): reject Requests with invalid body lengths
- Checks for that the `Transfer-Encoding` header has `chunked` as its
  last encoding
- Makes `Transfer-Encoding` take priority over `Content-Length`
- Rejects requests that contain a `Content-Length` header, but is
  invalid (or contains multiple with different values).
2017-07-06 11:58:43 -07:00
Bradley Beddoes
a79fc98e36 feat(server): Provide reference to Response body
The Response body was previously inaccessible to application code. This
change allows applications that may wish to alter the Response based on
previous creation (or not) of the body to do so.

n.b. discussion in #1216 indicates this function may change in
0.12 or be removed in favour of some other api.

Closes #1216.
2017-07-06 10:44:51 +10:00
Sean McArthur
c4c89a22f8 fix(server): do not automatically set ContentLength for 204 and 304 Responses 2017-07-04 12:52:41 -07:00
Sean McArthur
81c0d185bd fix(client): don't assume bodies on 204 and 304 Responses
Closes #1242
2017-07-04 12:42:02 -07:00
Sean McArthur
7ce3121132 v0.11.1 2017-07-03 15:08:38 -07:00
Sean McArthur
9bb71b9bbf perf(headers): skip newline replacer for safe headers 2017-07-03 14:43:37 -07:00
wangcong
d7edc19af2 style(client): rename req to resp 2017-07-03 09:00:11 -07:00
Sean McArthur
c4835c506d refactor(http): grab io.write_buf_mut only once in write_head 2017-06-26 11:14:57 -07:00
Sean McArthur
04d34f4b65 chore(lib) shuffle around some debug! and info! calls 2017-06-26 10:56:03 -07:00
Sean McArthur
3d85ad057c perf(http): fetch the current Task far less often 2017-06-26 09:35:35 -07:00
Sean McArthur
ecd4c860a3 Merge pull request #1232 from sfackler/auto-continue
feat(server): Handle 100-continue
2017-06-26 09:34:05 -07:00
Steven Fackler
6164e76405 feat(server): Handle 100-continue
cc #838
2017-06-25 13:14:32 -07:00
Sean McArthur
7d9dfee8ce perf(header): speed up VecMap insert and get 2017-06-25 11:51:43 -07:00
Sean McArthur
42f5f78de0 perf(method): improve logic of parsing a Method 2017-06-25 11:51:43 -07:00
Sean McArthur
c165db495e perf(server): put inline on all wrapper methods 2017-06-25 11:51:43 -07:00
Sean McArthur
e859f89942 refactor(http): reduce complexity of Conn::start_send 2017-06-25 11:51:43 -07:00
Sean McArthur
4dfe0db0f4 perf(server): dont record Idle time when not needed 2017-06-25 11:51:43 -07:00
Sean McArthur
7d122bd15f perf(header): optimize when inserting a new type header 2017-06-25 11:51:42 -07:00
Sean McArthur
7369fe649f Merge pull request #1233 from KonishchevDmitry/patch-1
Fix a typo in ContentType header's doc
2017-06-25 08:47:58 -07:00
Dmitry Konishchev
6fd46427af docs(headers): fix a typo in ContentType header's doc 2017-06-25 16:41:51 +03:00
Sean McArthur
1e31e11d3d Merge pull request #1226 from yazaddaruvala/remove_byte_str
refactor(uri): make ByteStr an implementation detail of uri
2017-06-24 14:50:44 -07:00
Yazad Daruvala
3021cd9dd8 refactor(uri): make ByteStr an implementation detail of uri 2017-06-23 21:58:15 -07:00
Sean McArthur
579d360f51 chore(status): remove dead code 2017-06-22 21:10:10 -07:00
Sean McArthur
b4be22db56 docs(http): remove 'client' from docs of Request and Response 2017-06-22 21:09:50 -07:00
Sean McArthur
45ce625bda test(header): add ContentType to server encode benchmark 2017-06-22 12:25:50 -07:00