Alex Crichton
8554904dc9
refactor(lib): convert usage of tokio_core::io to tokio_io
...
This commit updates to the most recent versions (released today) of the various
Tokio libraries in use. Namely the `tokio_core::io` module has now been
deprecated in favor of an external `tokio-io` crate. This commit pulls in that
crate and uses the `AsyncRead + AsyncWrite` abstraction instead of `Io` from
tokio-core.
BREAKING CHANGE: Any external types that were using that had implemented `Io` will need to
implement `AsyncRead + AsyncWrite` from tokio_io.
2017-03-17 17:31:44 -07:00
Sean McArthur
5a3743c1ba
Merge pull request #1084 from pyfisch/fuzzing
...
[WIP] fix bugs in header field parsers
2017-03-13 10:15:21 -07:00
Sean McArthur
e871411627
feat(client): add Request.set_proxy for HTTP proxy requests
...
Closes #1056
2017-03-07 12:16:44 -08:00
Sean McArthur
88eaaa0016
fix(http): dont return Error frame with idle eof
2017-03-07 12:16:10 -08:00
Pyfisch
bdd536cf44
test(headers): fix failing test for Accept header
2017-03-05 13:21:32 +01:00
Pyfisch
643fac1e01
fix(headers): add length checks to ETag parsing
...
Bug found using `cargo fuzz`.
2017-03-05 12:40:06 +01:00
Pyfisch
d80aae55b1
fix(headers): prevent 2 panics in QualityItem parsing
...
1. index out of bounds if semicolon is the last character
2. not a char boundary on non-ASCII input (only allow ASCII now)
Bugs found using `cargo fuzz`
2017-03-05 12:38:44 +01:00
Matthew Dawson
9e16637514
fix(http): Fix commit fac3d70c0b
...
The new From<Chunk> for Bytes uses self instead of chunk in its
implementation of From::from. Change it to chunk to fix the build.
2017-03-02 01:40:13 -05:00
Sean McArthur
fac3d70c0b
feat(http): add Into<Bytes> for Chunk
2017-03-01 16:59:36 -08:00
Sean McArthur
65b3e08f69
feat(http): use the bytes crate for Chunk and internally
2017-03-01 14:15:47 -08:00
Sean McArthur
a7021d1f88
test(http): remove println from a test
2017-02-28 16:32:40 -08:00
Sean McArthur
ab939511f0
fix(http): more eagerly flush when the Conn is full
...
Closes #1078
2017-02-28 16:05:55 -08:00
sinkuu
8ba1f19d61
fix(url): fix panic when questionmark is in fragment
2017-02-25 20:25:39 +09:00
Sean McArthur
6eb0753921
fix(http): fix another instance of keep-alive busy-looping
2017-02-23 13:36:07 -08:00
Sean McArthur
8756f40ac9
fix(http): fix busy looping when in keep-alive
2017-02-22 16:31:15 -08:00
Sean McArthur
dc97dd77f4
feat(server): make Http default its body type to hyper::Chunk
2017-02-22 16:30:20 -08:00
Sean McArthur
ee58409578
fix(http): make Chunk impl Sync
2017-02-22 16:30:20 -08:00
Vincent Prouillet
bba761ac54
feat(headers): impl Eq for ContentType
2017-02-21 15:48:45 +09:00
Tasos Bakogiannis
592c1e2125
feat(headers): add Link header implementation
...
Closes #650
2017-02-20 12:00:01 -08:00
Sean McArthur
a3252c464d
feat(server): change Server.run_until Future Error to ()
...
BREAKING CHANGE: The `run_until` future used to require its `Error` to
be `hyper::Error`, now it can be `()`.
2017-02-17 13:48:17 -08:00
Sean McArthur
e04bcc12a7
feat(server): make Http compatible with TcpServer
...
This implements `From<Message> for Request` and `Into<Message> for
Response`, allowing an `Http` instance to be used with a `TcpServer`
from tokio-proto.
Closes #1036
BREAKING CHANGE: This makes `Request.remote_addr` an
`Option<SocketAddr>`, instead of `SocketAddr`.
2017-02-16 18:26:36 -08:00
Sean McArthur
3cf3b75159
Merge pull request #1066 from hyperium/outgoing-generic
...
feat(http): allow specifying custom body streams
2017-02-16 18:15:15 -08:00
Sean McArthur
1b1311a7d3
feat(http): allow specifying custom body streams
2017-02-16 15:06:55 -08:00
Sean McArthur
7d37197dde
chore(http): change log to debug for decoder errors
2017-02-16 14:11:28 -08:00
Sean McArthur
ebf96f3f5f
fix(http): send errors as frame errors
...
Additionally, only close read side, so it's potentially possible to
write a response for an error.
2017-02-16 14:09:41 -08:00
Michael Zapata
31d998078d
docs(uri): fix rendering errors
...
Add a code block around the URI explanation to make it legible and
add a missing backquote
2017-02-10 16:00:59 +01:00
Guillaume Gomez
524f65a9a3
perf(header): Make Uri use MemSlice internally
2017-02-09 11:45:55 -08:00
Guillaume Gomez
5a4bd497c9
fix(Uri): Reexport Uri struct publicly
2017-02-09 15:25:55 +01:00
Julian Tescher
2fa414fb5f
fix(lib): Fixed typos in multiple modules
...
BREAKING CHANGE: The `Preference` header had a typo in a variant and it's string representation,
change `Preference::HandlingLeniant` to `Preference::HandlingLenient`.
2017-02-07 11:04:42 -08:00
Sean McArthur
0d05533d07
chore(h2): clear out unused h2 module
2017-02-06 16:53:06 -08:00
Sean McArthur
23ac1bfe82
test(http): test Uri parse errors propagate
2017-02-06 13:37:02 -08:00
Sean McArthur
fc808ef9f8
Merge pull request #1049 from spk/use-pub-hyper-url
...
test(lib): use public hyper::Url everywhere
2017-02-05 14:47:34 -08:00
Laurent Arnoud
70a3f76a27
test(uri): fix URI parse error tests
...
Add also test parse authority without port
2017-02-05 13:12:03 +01:00
Laurent Arnoud
d5ff287b35
refactor(lib): use public hyper::Url everywhere
2017-02-04 14:51:14 +01:00
Sean McArthur
c42f18db05
feat(status): impl Into<u16> for StatusCode
2017-02-02 17:02:35 -08:00
Sean McArthur
027cb71b7b
perf(http): reduce a copy when not using Chunked encoding
2017-02-02 13:13:48 -08:00
Sean McArthur
b4e0057d2b
test(lib): fix unused warnings in doc tests
2017-02-01 15:47:43 -08:00
Sean McArthur
e9e7381ece
feat(header): implement fmt::Display for several headers
...
Specifically, `CacheControl`, `Expect`, `Origin`, `Pragma`, `Prefer`,
`PreferenceApplied`, `ReferrerPolicy`, `StrictTransportSecurity`.
2017-01-31 23:58:07 -08:00
Sean McArthur
b4b2fb782e
feat(header): add Headers::append_raw
2017-01-30 15:04:04 -08:00
Sean McArthur
cca798a09e
fix(header): deprecate HeaderFormatter
2017-01-30 12:20:30 -08:00
Sean McArthur
53762cafc6
fix(header): enable SetCookie.fmt_header when only 1 cookie
2017-01-30 12:17:44 -08:00
Corey Farwell
5f1fa06089
docs(client): Update Client::configure example to compile
2017-01-28 20:12:35 -08:00
Sean McArthur
61364d245b
perf(header): improve on MemSlice usage in headers
2017-01-26 23:49:44 -08:00
Guillaume Gomez
1b556389c0
perf(header): use MemSlice when parsing headers
2017-01-26 10:07:34 -08:00
Josh
5c890321ee
feat(lib): export Method::Put at top level
2017-01-25 11:43:56 -08:00
Sean McArthur
44f2bc6d00
refactor(http): add From<Vec<u8>> impl for MemBuf
2017-01-25 11:05:58 -08:00
Sean McArthur
e3ef866a31
refactor(http): allow MemSlice to be sliced to make copies
2017-01-24 18:36:49 -08:00
Sean McArthur
cfcbd8c96b
fix(http): keep flushing until WOULDBLOCK is received
2017-01-23 23:57:43 -08:00
Andy Moran
529ad564c3
refactor(header): Change to base64 serialize
...
Replace rustc-serialize with base64 crate.
Closes #1028
2017-01-23 23:09:14 -08:00
Sean McArthur
0e332c66f2
refactor(http): adjust socket eof debug log
2017-01-23 22:50:42 -08:00