Commit Graph

952 Commits

Author SHA1 Message Date
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
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