Commit Graph

1707 Commits

Author SHA1 Message Date
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
Sean McArthur
845d742a21 Merge pull request #1225 from yazaddaruvala/master
refactor(http): return poll more
2017-06-22 09:24:59 -07:00
Yazad Daruvala
5ed9e31b82 refactor(http): Buffered::read_from_io now returns Poll 2017-06-22 01:01:00 -07:00
Yazad Daruvala
a0c3a33eda refactor(http): Buffered::parse now returns Poll 2017-06-22 01:01:00 -07:00
Yazad Daruvala
80f16f1917 refactor(http): Decoder::decode and MemRead in io now return Poll 2017-06-22 01:01:00 -07:00
Sean McArthur
ca1fa81ce0 Merge pull request #1227 from jonhoo/document-transfer-encoding
docs(headers): clarify TransferEncoding xor ContentLength
2017-06-21 14:45:51 -07:00
Jon Gjengset
41ac9e7873 docs(headers): clarify TransferEncoding xor ContentLength
Update the docs for `Content-Length` and `Transfer-Encoding` to mention
that they are mutually exclusive, and that setting one will unset the
other, in accordance with RFC7230.

Also expand the docs for `Request::set_body` to say that chunked
encoding is used by default, and mention how to disable this feature.
2017-06-21 15:30:03 -04:00
Sean McArthur
903f41b19c Merge pull request #1220 from yazaddaruvala/add_benches
test(server): add benches for TransferEncoding::chunked
2017-06-18 12:17:56 -07:00
Yazad Daruvala
b914d2f1ea test(server): add benches for TransferEncoding::chunked 2017-06-17 22:41:10 -07:00
Sean McArthur
87d2ab4619 chore(cargo): add 'network-programming' category 2017-06-16 13:07:06 -07:00
Sean McArthur
e868373037 chore(ci): only publish master docs 2017-06-16 13:06:46 -07:00
Sean McArthur
e92b57c4f5 v0.11.0 2017-06-13 12:54:29 -07:00
Sean McArthur
cee8692d81 refactor(header): replace url crate with percent-encoding 2017-06-13 10:55:12 -07:00
Sean McArthur
d09288e7b3 chore(cargo): add homepage, update documentation fields 2017-06-13 10:38:31 -07:00
Sean McArthur
4ed32d1b55 docs(README): update readme for 0.11 resources 2017-06-13 10:38:01 -07:00
Sean McArthur
c4c60d90bc chore(dependencies): bump mime v0.3.2, with http token parsing 2017-06-13 10:29:16 -07:00
Sean McArthur
3c75f45c44 chore(cargo): remove 'build.rs' from include field 2017-06-13 10:27:28 -07:00
Sean McArthur
f953cafe27 feat(status): add StatusCode::try_from(u16).
This is a temporary function until the `TryFrom` trait stabilizes.

BREAKING CHANGE: Removes the undocumented `from_u16` function. Use
  `StatusCode::try_from` instead.

  Also makes the `status` module private. All imports of
  `hyper::status::StatusCode` should be `hyper::StatusCode`.
2017-06-13 09:50:46 -07:00