Commit Graph

2223 Commits

Author SHA1 Message Date
Sergio Benitez
614f8ab46c Condition TLS config types on 'tls' feature.
Previously, TLS, via 'Config::tls', was configurable even if the 'tls'
feature was disabled. This commit changes this so that the 'Config::tls'
field and TLS config structures are only available if 'tls' is enabled.
2021-07-05 13:46:37 -07:00
Sergio Benitez
76fab37e29 Rename 'remote_addr' to 'peer_address'. 2021-07-04 15:37:27 -07:00
Sergio Benitez
b5e3569554 Split TLS module into logical submodules. 2021-07-04 15:25:49 -07:00
Sergio Benitez
de4b3e3891 Make 'tls' its own module. 2021-07-04 15:01:55 -07:00
Sergio Benitez
efce2bc958 Make 'MediaType::with_params()' a builder method.
Instead of a constructor, 'MediaType::with_params()' and
'ContentType::with_params()' are now both builder methods. This allow
chaining the method to associated constants.
2021-07-04 13:50:19 -07:00
Sergio Benitez
bb920e6e09 Fix 'context!()' typo: "supports" -> "supported". 2021-07-02 11:44:53 -07:00
Sergio Benitez
6aecff39bc Warn on launch if a custom runtime is detected.
The warning is only emitted in debug profiles.
2021-07-02 11:35:59 -07:00
Sergio Benitez
8058798a4c Properly propagate profile to 'Config' on ignite. 2021-07-02 11:34:35 -07:00
Sergio Benitez
95e9b2e9ef Remove latent 'dbg!()' in templating tests. 2021-07-02 11:33:32 -07:00
Sergio Benitez
0ffcfae47b Warn on more deprecated config keys and profiles. 2021-07-02 11:31:50 -07:00
Sergio Benitez
8414d787d9 Impl 'FromUriParam' for 'Json'. 2021-07-02 10:36:57 -07:00
Sergio Benitez
75d851d011 Sync core 'UriDisplay' and 'FromUriParam' impls. 2021-07-02 08:17:22 -07:00
Sergio Benitez
2cee4b4594 Make '&Host' a request guard. 2021-07-02 06:57:43 -07:00
Sergio Benitez
c58b43700c Add type-safe 'Host' type, 'Request::host()'.
Closes #1699.
2021-07-02 06:48:40 -07:00
Sergio Benitez
f49ee7da00 Make 'FileName' danger more pronounced. 2021-07-02 06:48:09 -07:00
Sergio Benitez
9d20c57d91 Allow named field generics in 'UriDisplay' derive. 2021-07-01 06:02:40 -07:00
Sergio Benitez
416f42bca7 Fix header level of "Within Guards" in guide.
Resolves #1737.
2021-06-30 21:02:28 -07:00
Sergio Benitez
2c9217ebd0 Run core feature testing on nightly. 2021-06-30 20:53:59 -07:00
Sergio Benitez
c2d8f11ffe Doctest core feature matrix with '--no-run'.
Previously, we ran each doctest in core many times, once for each
individually enabled feature. This took a long time and consumed an
inordinate amount of resources for no gain: we already run each test
when we enable all features. Instead, emulate a 'cargo check' for
doctests by passing '--no-run' to rustdoc via an environment variable.
2021-06-30 20:44:58 -07:00
Mikail Bagishov
be933ce398 Apply clippy suggestions. 2021-06-30 14:13:19 -07:00
ThouCheese
5ebefa97c9 Impl 'std::Error' for 'serde::json::Error'. 2021-06-30 11:22:31 -07:00
multisn8
8f9d7e6374 Fix guide typo: "deserialzies" -> "deserializes". 2021-06-30 11:08:51 -07:00
Joakim Soderlund
7b9363f981 Fix typo in 'Sentinel' docs: 'INner' -> 'Inner'. 2021-06-30 11:08:20 -07:00
Ian Jackson
42f84f0621 Update IRC links to Libera (irc.libera.chat). 2021-06-30 11:04:54 -07:00
Martinez
2bd5cefedd Check response status in guide form tests. 2021-06-30 11:01:32 -07:00
John-John Tedro
0ddad7a6c1 Impl 'Responder' for 'Arc<T>', 'Box<T>'. 2021-06-30 10:44:30 -07:00
PROgrm_JARvis
4339c2af48 Make '<String as FromParam>::Error' 'Infallible'.
Fixes #1679.
2021-06-30 10:27:46 -07:00
Sergio Benitez
dc1b729f29 Don't ignore 'launch()' result in guide overview. 2021-06-30 10:19:36 -07:00
Sergio Benitez
f0b133023b Fix git repository link to 'rocket_sync_db_pools'. 2021-06-30 10:15:46 -07:00
Dominik Boehi
d671ec5bb5 Fix link to 'rocket_dyn_templates' git repository. 2021-06-30 10:14:58 -07:00
Flying-Toast
8e3ad40beb Add 'context!' for ad-hoc templating contexts. 2021-06-30 10:09:28 -07:00
Sergio Benitez
6a3d1ac1d5 Fix 'UriDisplay<Query>' 'Json', 'MsgPack', impls.
As 'FromForm' doesn't provide access to the raw, undecoded string,
'MsgPack' cannot implement 'FromForm::from_value()'. This means that it
is not presently possible to parse a MessagePack form from a query
string. As such, the 'UriDisplay<Query>' implementation was removed.

The 'UriDisplay<Query>' for JSON was fixed such that a round-trip of a
'Json<T>' as a form works as expected.
2021-06-30 06:46:03 -07:00
Sergio Benitez
bad762b8c4 Add 'rocket::serde:json::to_string()' functions. 2021-06-30 06:46:03 -07:00
Sergio Benitez
9957e00ad1 Pass type mapper directly in 'Responder' derive. 2021-06-30 06:46:03 -07:00
Sergio Benitez
e141ac8a19 Add 'RawStr::percent_encode_bytes()'. 2021-06-30 06:46:01 -07:00
Sergio Benitez
01a11800ab Support all generics in 'UriDisplay' derive.
This ports the technique used for 'FromForm' and 'Responder' to the
'UriDisplay' trait derives.
2021-06-30 06:20:51 -07:00
Sergio Benitez
3ec58c3ca2 Ensure launch occurs with minimal ciphersuites.
Co-authored-by: Abdullah Alyan <AbdullahAlyan@yahoo.com>
2021-06-29 11:27:54 -07:00
Sergio Benitez
f818702f9b Propagate TLS ciphersuite config to rustls.
Closes #1563.
2021-06-29 11:17:59 -07:00
Sergio Benitez
dd722cdcfc Add configurable TLS ciphersuite preferences. 2021-06-29 10:35:55 -07:00
Sergio Benitez
5a2535f865 Mark 'form::ErrorKind' 'non_exhaustive'. 2021-06-29 05:06:37 -07:00
Sergio Benitez
9ce2935fe1 Impl 'Len' field validator for 'Json', 'MsgPack'. 2021-06-29 03:37:52 -07:00
Sergio Benitez
9399841b0c Fix order of indices in 'FromForm' map notes. 2021-06-29 03:37:52 -07:00
Sergio Benitez
c2e457c00f Add "Wrapping Validators" section to forms guide. 2021-06-29 03:37:52 -07:00
Sergio Benitez
793f421712 Support type generics, unit structs in 'FromForm'.
The 'FromFrom' derive now allows type generics in all positions using
the same automatic discovery technique as with 'Responder'. (In fact,
the technique was created for this derive.) Furthermore, 'FromForm' can
now be derived for unit structs.

Also adds a new 'try_with' form field validator.

Resolves #1695.
2021-06-29 03:37:52 -07:00
Sergio Benitez
dcbb1941c5 Explicitly mention multipart support in guide. 2021-06-29 03:33:44 -07:00
Sergio Benitez
2727d7bb7b Automatically discover 'Responder' generic bounds.
This commit presents and applies a new technique for bounding type
generics in derives. In short, for a generic `T` used in a field type of
`Field<T>`, where an eventual bound of `Responder` required, the derive
generates a bound of `Field<T>: Responder`. This removes the need for
any manually provided bounds while simultaneously allowing more
structures to typecheck. For example, generics in header components are
now fully supported.
2021-06-29 03:31:31 -07:00
Sergio Benitez
7c8c06522c Impl 'UriDisplay' for 'Vec', maps, nonzero ints. 2021-06-29 03:31:31 -07:00
Sergio Benitez
ae796b41ad Impl std traits, 'UriDisplay<Query>' on 'MsgPack'.
This brings the 'MsgPack' impls to parity with 'Json'.
2021-06-29 03:31:31 -07:00
Sergio Benitez
f827367df0 Expose 'serde::msgpack::to_vec()' methods. 2021-06-29 03:31:31 -07:00
Sergio Benitez
fb3ae9f7db Impl std traits, 'UriDisplay<Query>' for 'Json'.
The 'Json' type now implements:

  * Clone
  * PartialEq
  * Eq
  * PartialOrd
  * Ord
  * Hash
  * UriDisplay<Query>

Method calls that resolve to a method in the set of traits above
previously resolved to the `Deref` target. For example, `foo.clone()`,
where `foo: Json<T>`, previously resolved to `<T as Clone>::clone()` but
now resolves to `<Json<T> as Clone>::clone()`.
2021-06-29 03:31:27 -07:00