Commit Graph

486 Commits

Author SHA1 Message Date
Sean McArthur
ddecb262b3 fix(http): no longer keep alive for Http1.0 if no Connection header
Closes #596
2015-07-06 12:55:25 -07:00
Sam Gibson
7c2e5124e6 feat(headers): add strict-transport-security header
Strict-Transport-Security allows servers to inform user-agents that
they'd like them to always contact the secure host (https) instead of
the insecure one (http).

Closes #589
2015-07-06 12:35:45 -07:00
Sean McArthur
9a85ea553f Merge pull request #595 from pyfisch/originstring
refactor(headers): use String in Access-Control-Allow-Origin header
2015-07-06 11:00:49 -07:00
Pyfisch
ed458628e5 refactor(headers): use String in Access-Control-Allow-Origin header
Access-Control-Allow-Origin origins are URLs but they do not need to
be valid, they should just be compared as strings. So to support
invalid URLs hyper should use a string instead.

closes #526

BREAKING CHANGE: Access-Control-Allow-Origin does no longer use Url
2015-07-04 17:26:06 +02:00
Sean McArthur
82ed9092e3 feat(client): add url property Response
This will always be the last URL that was used by the Request, which is
useful for determining what the final URL was after redirection.

BREAKING CHANGE: Technically a break, since `Response::new()` takes an
  additional argument. In practice, the only place that should have been
  creating Responses directly is inside the Client, so it shouldn't
  break anyone. If you were creating Responses manually, you'll need to
  pass a Url argument.
2015-07-01 10:45:07 -07:00
Pyfisch
db93ca0697 style(rustfmt): run rustfmt on hyper correct overlong lines 2015-06-29 20:22:22 +02:00
Sean McArthur
31e5a91350 Merge pull request #582 from mlalic/issue-580
refactor(http2): move to solicit v0.4
2015-06-26 21:18:22 -07:00
Stacey Ell
1a490e25c3 fix(client): use Ssl instance in creation of SslStream
This fix brings SNI into working order
2015-06-26 09:27:27 -06:00
Marko Lalic
37e55944cf test(hyper): assert that error::Error is Send + Sync
This is a regression test for #580.
2015-06-26 14:53:58 +02:00
Marko Lalic
526ce994a3 refactor(http2): move to solicit v0.4
Only minor details in the internals of the `h2` module needed tweaking
for migrating onto the latest version -- `HttpConnect` implementations
are now required to return an error type that implements an
`HttpConnectError` trait.
2015-06-26 14:53:58 +02:00
Sean McArthur
1b6c692fe3 Merge pull request #578 from lame-nickname/master
refactor(headers):  improve `Range` header adherence to HTTP spec
2015-06-23 17:05:23 -07:00
lame-nickname
f7504c3a9c refactor(headers): improve Range header adherence to HTTP spec 2015-06-23 20:59:34 +02:00
Pyfisch
99ff7e6257 feat(langtags): use true language tags in headers
Make hyper dependant on rust-language-tags providing complete parsing
and formatting of language tags. Remove builtin solution for simple
tags.

BREAKING CHANGE: AcceptLanguage and ContentLanguage use LanguageTag now,
Language removed from Hyper.
2015-06-23 20:15:47 +02:00
Sean McArthur
53bba6eb7f feat(ssl): redesign SSL usage
BREAKING CHANGE: Server::https was changed to allow any implementation
  of Ssl. Server in general was also changed. HttpConnector no longer
  uses SSL; using HttpsConnector instead.
2015-06-20 14:58:58 -07:00
Sean McArthur
e689f20376 fix(client): check for drained stream in Response::drop 2015-06-17 13:17:56 -07:00
Sean McArthur
306f39c731 chore(logging): add some trace! logging to headers 2015-06-17 11:37:26 -07:00
Sean McArthur
7d2e5c0ef8 style(client): use status.is_redirection() 2015-06-17 11:36:54 -07:00
Marko Lalic
aee7c991e6 docs(hyper): fix html root url
The HTML root URL is not supposed to point at the index resource, but
represent the path that can be used to construct the full URL of the
crate's components.
2015-06-17 17:42:57 +02:00
Joseph Deray
edf6ac2074 feat(headers): add bearer token support
this allows servers/clients using bearer tokens
 to work out of the box without having to implement
  their own bearer scheme. while this would be pretty
   easy seems like a more general thing that is useful
    for a lib like this
2015-06-17 00:57:04 -04:00
lame-nickname
05c3199846 feat(headers): add Range header 2015-06-16 18:28:48 +02:00
Sean McArthur
febf3031c5 Merge pull request #567 from clatour/header-docs
docs(headers): add examples
2015-06-15 10:15:17 -07:00
Chandler Latour
c940e84a78 docs(headers): add header examples 2015-06-14 21:32:33 -06:00
Sean McArthur
c37d85728f Merge pull request #565 from hyperium/dox-server
docs(server): greatly expand how to use a Server
2015-06-14 08:41:44 -07:00
Sean McArthur
ae5c7276c0 docs(server): greatly expand how to use a Server 2015-06-13 17:02:35 -07:00
Ryman
8275f3b9e3 docs(header): fix typos and minor rewording 2015-06-13 16:53:26 +01:00
Sean McArthur
6d72289394 Merge pull request #564 from hyperium/doxup
docs(header): greatly expand on implementing custom headers
2015-06-13 08:34:50 -07:00
Sean McArthur
a8e29efdec docs(header): greatly expand on implementing custom headers 2015-06-12 15:20:58 -07:00
Sean McArthur
64e47b4bbd feat(client): impl Sync for Client
Connector::connect already used &self, and so would require
synchronization to be handled per connector anyway. Adding Sync to the
Client allows users to setup config for a Client once, such as using a
single connection Pool, and then making requests across multiple
threads.

Closes #254

BREAKING CHANGE: Connectors and Protocols passed to the `Client` must
  now also have a `Sync` bounds, but this shouldn't break default usage.
2015-06-12 11:19:54 -07:00
Pyfisch
195a89fa91 refactor(headers): errors for parse_header
Header::parse_header() returns now a hyper Result instead of an option
this will enable more precise Error messages in the future, currently
most failures are reported as ::Error::Header.

BREAKING CHANGE: parse_header returns Result instead of Option, related
code did also change
2015-06-10 22:22:56 +02:00
Sean McArthur
763746153e Merge pull request #557 from hyperium/http-versions
refactor(http): move h1 and h2 into http module
2015-06-04 12:04:49 -07:00
Sean McArthur
71ac65da5b refactor(http): move h1 and h2 into http module 2015-06-02 12:24:56 -07:00
Sean McArthur
7c0421e3fc feat(error): add private __Nonexhaustive variant to Error
BREAKING CHANGE: Adds a new variant to public Error enum. The proper fix
  is to stop matching exhaustively on `hyper::Error`.
2015-06-02 10:25:01 -07:00
Marko Lalic
f0fe2c5a83 feat(http2): implement message API for HTTP/2 2015-06-02 15:44:12 +02:00
Marko Lalic
48e9ca2f70 feat(http2): add new error variant for HTTP/2
Automatic conversion from the `solicit::http::HttpError` is also
provided.

BREAKING CHANGE: A new variant `Http2` added to a public enum
`hyper::Error`.
2015-06-02 14:34:13 +02:00
Marko Lalic
3122ffefc2 feat(http2): add dependency on solicit 2015-06-02 14:34:13 +02:00
Marko Lalic
d3e3a45760 refactor(client): use a Protocol to create a message for a Request 2015-06-02 14:34:13 +02:00
Marko Lalic
dccdf8d65a feat(client): implement Protocol trait for HTTP/1.1 2015-06-02 14:34:13 +02:00
Marko Lalic
3417303a4a feat(client): add Protocol trait 2015-06-02 14:34:13 +02:00
Marko Lalic
aa297f4532 refactor(client): use HttpMessage in Request and Response
BREAKING CHANGE: `hyper::client::request::Response` is no longer generic
over `NetworkStream` types. It no longer requires a generic type
parameter at all.
2015-06-02 14:34:13 +02:00
Marko Lalic
ecb713f849 feat(client): implement HttpMessage for HTTP/1.1 2015-06-02 14:34:13 +02:00
Marko Lalic
289fd02b55 feat(client): add HttpMessage trait 2015-06-02 14:34:13 +02:00
Sean McArthur
58094556f5 Merge pull request #552 from winding-lines/coverage
test(internal): increasing test coverage of internal/cell module
2015-06-01 09:56:40 -07:00
Marius Seritan
abbc4d6f7e test(internal): increasing test coverage of internal/cell module 2015-05-30 08:08:22 -07:00
Chandler Latour
020db5769d refactor(headers): expose RangeUnit in hyper::header
Allow RangeUnit to be used from user crates.
2015-05-28 16:49:25 -06:00
Sean McArthur
1e5d7d403b Merge pull request #549 from winding-lines/coverage
test(error): increasing test coverage of error module
2015-05-28 10:39:08 -07:00
Sean McArthur
0953b26060 Merge pull request #548 from winding-lines/connection-cov
test(connection): increasing test coverage of connection module
2015-05-28 10:36:15 -07:00
Stacey Ell
b1686d1b22 fix(buffer): check capacity before resizing
``cmp::min(cap * 4, MAX_BUFFER_SIZE) - cap'' can underflow when
cap > MAX_BUFFER_SIZE.  cap can exceed MAX_BUFFER_SIZE because
Vec::reserve aligns to powers of two.

Discovered by Matt Howard <themdhoward@gmail.com>
2015-05-27 08:48:19 -06:00
Marius Seritan
b24e1a5e6c test(error): increasing test coverage of error module 2 2015-05-26 20:31:24 -07:00
Marius Seritan
59d8e80e6c test(error): increasing test coverage of error module 2015-05-26 20:15:06 -07:00
Marius Seritan
c1a8e3bd02 test(connection): increasing test coverage of connection module 2015-05-25 09:31:58 -07:00