Commit Graph

1319 Commits

Author SHA1 Message Date
Sean McArthur
736a342ea1 chore(travis): stop testing in non-existant doc directory 2017-04-17 10:42:22 -07:00
Sean McArthur
724d5e8669 chore(doc): remove unused doc folder 2017-04-17 10:29:28 -07:00
Sean McArthur
9605e860ff Merge pull request #1136 from hannesg/reduce_to_owned_in_origin
refactor(headers): use static "http"/"https" for scheme
2017-04-13 17:40:26 -07:00
hag
040c7d1949 refactor(headers): use static "http"/"https" for scheme
This change removes one common string allocation when parsing the origin
header.
2017-04-14 00:10:55 +02:00
Sean McArthur
574ded90dd Merge pull request #1135 from hyperium/server-keep-alive
fix(server): fix broken keep-alive in Server
2017-04-13 11:24:36 -07:00
Sean McArthur
0473d90a85 fix(server): fix broken keep-alive in Server
Closes #1134
2017-04-12 18:31:50 -07:00
Sean McArthur
f05a58a1b2 chore(travis): set minimum rust version 2017-04-10 15:09:54 -07:00
Sean McArthur
030393d099 Merge pull request #1121 from hannesg/allocator_friendly_header2
refactor(header): make Origin header more allocator friendly
2017-04-10 09:57:15 -07:00
Sean McArthur
52d3ff1c9b Merge pull request #1119 from hannesg/allocator_friendly_header
refactor(header): make some headers more allocator friendly
2017-04-10 09:55:13 -07:00
Sean McArthur
afd62971c3 Merge pull request #1123 from hyperium/body-concat
feat(chunk): implement Extend and IntoIterator for Chunk
2017-04-10 09:53:40 -07:00
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
hag
c8d5bf5cc8 refactor(header): make some headers more allocator friendly
Change the internal implementation of some simple headers to make them
more allocator friendly. Also add a constructor method to allow changing
the implementation in the future again.

The headers are:

- Location
- Referrer
- Server
- UserAgent

This change was suggested in [#1104].

BREAKING CHANGES:
- Old code that creates the header structs directly will stop working.
- It's not possible to implement DerefMut for a Cow<'static,str>. Code
that needs to modify header after creation will stop working.
2017-04-10 10:48:16 +02:00
Sean McArthur
78512bdb18 feat(chunk): implement Extend and IntoIterator for Chunk
The real reason to provide these implementations is so that `concat` on
the `Body` can work to easily join all the chunks into 1.
2017-04-08 17:16:08 -07:00
Sean McArthur
5c1cfa2bce Merge pull request #1116 from hyperium/parse-till-blocked
fix(conn): always read till blocked when parsing
2017-04-05 16:30:33 -07:00
Sean McArthur
633b37df11 fix(conn): always read till blocked when parsing
Closes #1111
2017-04-05 15:45:20 -07:00
Sean McArthur
6e55fbe75d Merge pull request #1115 from hyperium/uri-fixes
Several Uri fixes
2017-04-05 15:19:00 -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
66ad619d6e Merge pull request #1110 from hyperium/flush
fix(conn): always flush io from poll_complete
2017-04-03 11:04:50 -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
Sean McArthur
8dc06f211e Merge pull request #1105 from derekdreery/contributing_fix
docs(CONTRIBUTING): Fix markdown
2017-03-28 08:20:45 -07:00
Richard Dodd
1ee26443f4 docs(CONTRIBUTING): Fix markdown
Fix markdown in contributing so it displays correctly on github, and
also because of the irony.
2017-03-28 11:35:56 +01:00
Sean McArthur
3da720a99f Merge pull request #1103 from d12i/client-handle-getter
feat(client): add Client::handle
2017-03-26 17:58:46 -07:00
Daiki Mizukami
9101817b0f feat(client): add Client::handle 2017-03-27 08:06:07 +09:00
Sean McArthur
43cf9aefe8 Merge pull request #1101 from hyperium/remove-deprecated
refactor(header): remove deprecated Header to_string APIs
2017-03-21 18:22:12 -07: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
3d8dddb066 Merge pull request #1100 from hyperium/un-url
feat(lib): remove extern Url type usage
2017-03-21 14:31:37 -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
Sean McArthur
e81184e53c Merge pull request #1095 from mjkillough/header_view_raw
feat(headers): add HeaderView.raw()
2017-03-20 11:24:56 -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
wangcong
34509ef51a test(client): replace deprecated Sender.completer with send 2017-03-14 10:11:22 -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
Sean McArthur
c51a9993fa chore(travis): enable email notifications for broken builds 2017-03-02 15:33:42 -08:00
Sean McArthur
8140f38f6e Merge pull request #1081 from MJDSys/fix_from_chunk_to_bytes
fix(http): Fix commit fac3d70c0b
2017-03-01 22:44:28 -08: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
abad0fcd72 Merge pull request #1080 from hyperium/bytes
feat(http): use the bytes crate for Chunk and internally
2017-03-01 16:46:12 -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
cf7cc50ad0 chore(cargo): set an include directive 2017-03-01 13:35:30 -08:00
Sean McArthur
a7021d1f88 test(http): remove println from a test 2017-02-28 16:32:40 -08:00