hag
1b180dd61a
refactor(header): make Originheader more allocator friendly
...
Change the internal representation of Origin to be more allocator
friendly. The internals of the Origin header are now private to allow
changing them in the future.
BREAKING CHANGES:
- Old code that accesses the Origin struct directly will stop working.
2017-04-10 11:11:33 +02:00
Sean McArthur
633b37df11
fix(conn): always read till blocked when parsing
...
Closes #1111
2017-04-05 15:45:20 -07:00
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