Commit Graph

283 Commits

Author SHA1 Message Date
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
Pyfisch
db93ca0697 style(rustfmt): run rustfmt on hyper correct overlong lines 2015-06-29 20:22:22 +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
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
Chandler Latour
c940e84a78 docs(headers): add header examples 2015-06-14 21:32:33 -06: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
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
Marius Seritan
c1a8e3bd02 test(connection): increasing test coverage of connection module 2015-05-25 09:31:58 -07:00
Sean McArthur
2c99d4e906 feat(header): add ContentType::form_url_encoded() constructor 2015-05-16 15:08:42 -07:00
Sean McArthur
7d508d684f refactor(header): remove redundant closures 2015-05-13 10:40:54 -07:00
Sean McArthur
7e3858c962 perf(all): replace &str.to_string() with .to_owned() 2015-05-12 23:01:58 -07:00
Sean McArthur
72e274c52a refactor(header): add #[inline] to new header constructors 2015-05-12 18:23:55 -07:00
Sean McArthur
871f37a560 Merge pull request #522 from hyperium/header-convenient-constructors
Header convenient constructors
2015-05-11 20:22:18 -07:00
Sean McArthur
b6114ecd2e feat(header): add ContentType::json(), plaintext(), html(), jpeg(), and png() constructors 2015-05-11 19:14:43 -07:00
Sean McArthur
c2938fb45f feat(header): add Connection::close() and ::keep_alive() constructors 2015-05-11 19:14:43 -07:00
Sean McArthur
62d96adc6b refactor(header): change name of deref! to __hyper__deref!
The header is largely for internal use, however, it must be exported
because the header! macro uses it. As deref! is also a particularly
general name, this renames it to __hyper__deref! to prevent name
clashes.

BREAKING CHANGE: If you use deref! from the header module, you'll need
  to switch to using __hyper__deref!.
2015-05-11 19:00:38 -07:00
Sean McArthur
f64fb10bc8 feat(header): export __hyper__tm! macro so test modules work with header! 2015-05-11 19:00:27 -07:00
Pyfisch
ff346f147f refactor(hyper): add tests and refactor to increase coverage 2015-05-06 19:39:54 +02:00
Sean McArthur
a1e59fc6f9 Merge pull request #502 from pyfisch/accesscontrolalloworigin
feat(headers): Allow `null` value in Access-Control-Allow-Origin
2015-05-04 11:13:43 -07:00
Sean McArthur
c238890fa6 Merge pull request #503 from pyfisch/nice2
refactor(headers): Improve docs, fix nits, make formatting faster
2015-05-04 11:11:08 -07:00
Sean McArthur
33146bdbc2 Merge pull request #499 from pyfisch/upgradeprotocol
feat(headers): Parse Upgrade header protocols further
2015-05-04 10:28:55 -07:00
Pyfisch
db4d89189a style(headers): Break lines with over 100 characters 2015-05-03 15:45:11 +02:00
Pyfisch
66d54d03e7 refactor(headers): Improve docs, fix nits, make formatting faster
src/header/parsing.rs now uses unsafe get_unchecked() again, I don't
know why it was removed.
2015-05-03 13:56:32 +02:00
Pyfisch
5e3417145c feat(headers): Allow null value in Access-Control-Allow-Origin
The spec says the header can be either a `*`, `null` or an URL.
Improve docs of header.

BREAKING CHANGE: Add variant to Access-Control-Allow-Origin enum
2015-05-03 11:24:23 +02:00
Pyfisch
f47d11b97b feat(headers): Parse Upgrade header protocols further
Parses protocols into a name and a value part matching the RFC.
An enum contains all registered or known protocols, but contains
an extension variant.

Closes #480

BREAKING CHANGE: Upgrade header Protocol changed.
2015-05-03 10:02:48 +02:00
Sean McArthur
b916a7b18c Merge pull request #501 from pyfisch/from
feat(headers): Add From header field
2015-05-02 13:47:35 -07:00
Sean McArthur
ec13f982fe Merge pull request #500 from pyfisch/acceptranges
feat(headers): Add Accept-Ranges header field
2015-05-02 13:45:56 -07:00
Pyfisch
ce9c4af1e0 feat(headers): Add From header field 2015-05-02 21:18:17 +02:00
Pyfisch
2dbe3f9b9a feat(headers): Add Accept-Ranges header field 2015-05-02 21:11:50 +02:00
Sean McArthur
117fe927ca Merge pull request #493 from pyfisch/nice
refactor(hyper): Fix a few nits
2015-05-02 09:47:07 -07:00
Pyfisch
a6974c99d3 refactor(headers): Fail to parse single value header values
A single value header value can't be "", so `from_one_raw_str()` now
returns `None` on empty values. This makes custom checks in headers
obsolete.

BREAKING CHANGE: `from_one_raw_str()` returns `None` on empty values.
2015-05-02 16:40:53 +02:00
Sean McArthur
6d7ae81e36 Merge pull request #492 from hyperium/header-macro-example
fix(header): make test_module of header! optional
2015-05-01 14:27:55 -07:00
Sean McArthur
a5ce9c59fa fix(header): make test_module of header! optional
Closes #490
2015-05-01 14:27:17 -07:00
Pyfisch
6b59bd28b7 refactor(hyper): Fix a few nits 2015-05-01 11:58:15 +02:00
Sean McArthur
1426a4ce34 Merge pull request #491 from pyfisch/ifrangeheader
feat(headers): Add If-Range header
2015-04-30 15:05:52 -07:00
Pyfisch
a39735f1d3 feat(headers): Add If-Range header
Closes #388
2015-04-30 20:30:47 +02:00
Sebastian Thiel
2bc5a779bd fix(header): exporting test_header! macro
That way, third-parties can keep using the `header!` macro, which
now requires the `test_header!` macro as well.

Considering the `header!` macro is exported and part of the public
API, it was not desired to prevent it's usage in any way.
2015-04-30 11:05:21 +02:00
Pyfisch
14f46035b7 docs(headers): Update documentation of all remaining headers that use macros 2015-04-28 20:31:30 +02:00
Pyfisch
5a8cd31025 docs(headers): Add more docs to conditional headers 2015-04-28 17:38:46 +02:00
Pyfisch
e993f4b544 refactor(headers): Add tests and docs to CORS headers 2015-04-28 09:39:25 +02:00
Pyfisch
f9d75e4dd3 docs(headers): Add examples to Accept* headers 2015-04-28 09:19:35 +02:00
Pyfisch
093a29bab7 fix(headers): Do not parse empty values in list headers.
In empty list header values ``, or list header values with empty items `foo, , bar`,
the empty value is parsed, if the parser does not reject empty values an item is added
to the resulting header. There can't be empty values. Added a test for it in AcceptEncoding.
2015-04-28 08:57:35 +02:00
Pyfisch
621ef521f6 fix(headers): Fix formatting of 0 qualites and formatting of empty list header fields. 2015-04-28 08:46:26 +02:00
Pyfisch
308880b455 feat(headers): Implement Content-Language header field
Closes #475
2015-04-27 21:50:57 +02:00