Sean McArthur
5d3499e036
fix(uri): fix Uri to origin_form when path is '*'
2017-04-05 14:36:39 -07:00
Sean McArthur
cb1927553e
fix(uri): fix Uri to_origin_form to always include '/'
...
Closes #1112
2017-04-05 11:40:57 -07:00
Sean McArthur
1b49237e27
fix(uri): fix Uri.path() from containing '?' ever
...
Closes #1113
2017-04-05 09:57:12 -07:00
Sean McArthur
997a64d770
fix(conn): always flush io from poll_complete
...
Closes #1108
2017-04-03 10:06:39 -07:00
Sean McArthur
d63b7de44f
feat(client): Response.status() now returns a StatusCode
...
Previously, it would return `&StatusCode`. Returning a reference was
actually bigger than the enum itself, and prevented using `Into` on the
return result directly.
BREAKING CHANGE: If you were explicitly checking the status, such as
with an equality comparison, you will need to use the value instead of a
reference.
2017-03-31 15:13:55 -07:00
liamchristopher
47f3aa6247
feat(version): impl FromStr for HttpVersion
2017-03-30 14:34:46 -07:00
Daiki Mizukami
9101817b0f
feat(client): add Client::handle
2017-03-27 08:06:07 +09:00
Sean McArthur
ec91bf418b
refactor(header): remove deprecated Header to_string APIs
...
BREAKING CHANGE: This removes several deprecated methods for converting
Headers into strings. Use more specialized methods instead.
2017-03-21 15:16:03 -07:00
Sean McArthur
4f69788f5d
fix(client): get default port for https with Uri
2017-03-21 14:44:04 -07:00
Sean McArthur
4fb7e6ebc6
feat(lib): remove extern Url type usage
...
BREAKING CHANGE: The `Url` type is no longer used. Any instance in the
`Client` API has had it replaced with `hyper::Uri`.
This also means `Error::Uri` has changed types to
`hyper::error::UriError`.
The type `hyper::header::parsing::HTTP_VALUE` has been made private,
as an implementation detail. The function `http_percent_encoding`
should be used instead.
2017-03-21 11:03:57 -07:00
Michael Killough
8143c33bad
feat(headers): add HeaderView.raw()
...
Add HeaderView.raw() which behaves identically to Headers.get_raw().
2017-03-18 14:13:12 +07:00
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