Commit Graph

2157 Commits

Author SHA1 Message Date
Matthew Pomes
5cb70ec58c Salvage everything viable from bad requests.
Co-authored-by: Sergio Benitez <sb@sergio.bz>
2022-05-23 23:47:53 -07:00
Matthew Pomes
47946cc55c Add 'max_blocking' threads config value. 2022-05-23 21:55:16 -07:00
Konrad Borowski
6f223518e4 Fix 'clippy::needless_late_init' in form codegen.
Changes codegen for '#[field(default = e)]' to resolve the
'needless_late_init' Clippy warning.
2022-05-23 16:41:10 -07:00
Kenneth Allen
1587c501f3 Fix typo in 0.5 upgrade guide. 2022-05-23 16:37:18 -07:00
Sergio Benitez
907af10ea4 Tolerate more timing issues in SSE heartbeat test. 2022-05-23 16:36:06 -07:00
Sergio Benitez
9b3c83eb70 Add 'Metadata::render()': direct template render.
Resolves #1177.
2022-05-20 16:18:17 -07:00
Sergio Benitez
4827948401 Use '-q' (quiet) when running tests in CI. 2022-05-19 18:23:55 -07:00
Matthew Pomes
f21da79f44 Make 'form::ErrorKind' 'From' impl const generic.
Converts an older style array impl to one that uses const generics,
allowing any array length, not just a few sizes.
2022-05-19 18:17:06 -07:00
Sergio Benitez
d92b7249cb Update UI tests for latest stable rustc. 2022-05-19 14:16:05 -07:00
Sergio Benitez
26b58846a7 Mark fns returning 'Rocket<Build>' 'must_use'.
Remove 'must_use' on the generic 'Rocket<P>', which was overly
conservative. This change, in effect, marks only 'Rocket<Build>'
'must_use', which is a much more precise implementation of the intended
safety guard.
2022-05-19 10:45:24 -07:00
Sergio Benitez
b4e1cac7a2 Fix Rocket's dependency count in FAQ. 2022-05-18 17:34:18 -07:00
Konrad Borowski
e390423083 Enable 'cookie' 'secure' feature conditionally.
This was incorrectly enabled unconditionally in 442b668.
2022-05-18 17:29:52 -07:00
Sergio Benitez
68185ce0e2 Update comment in 'Listener' sleep code. 2022-05-18 17:29:21 -07:00
Sergio Benitez
bf2bd0e9ed Impl 'Responder' for 'Box<T: Responder + Sized>'.
In other words, allow boxing sized responders.

Resolves #1999.
2022-05-10 15:48:40 -05:00
Sergio Benitez
8bd1e29677 Mention removal of content::Custom in CHANGELOG.
Closes #2170.
2022-05-10 15:12:01 -05:00
Sergio Benitez
8237ca22e1 Fix minor typos in rc.2 release docs. 2022-05-10 15:08:07 -05:00
Dimitri Sabadie
c17cc9d23f Fix typo in 'Rocket' docs: iterior -> interior. 2022-05-10 15:08:03 -05:00
Sergio Benitez
05db80afbc Don't set master as current release. 2022-05-09 06:32:53 -05:00
Sergio Benitez
4dcd92837f New version: 0.5.0-rc.2.
New contrib versions: 0.1.0-rc.2.
2022-05-09 06:32:46 -05:00
Sergio Benitez
29fc7f54f5 Fix broken anchor link in config guide. 2022-05-09 06:32:46 -05:00
Sergio Benitez
0a8f917180 Update build benchmark in FAQ. 2022-05-09 06:32:46 -05:00
Sergio Benitez
1c9ac78f76 Add 'db_pools' to 'config.sh' crates. 2022-05-09 06:32:46 -05:00
Sergio Benitez
f568d43caa Print more variables from 'config.sh -p'. 2022-05-09 04:58:28 -05:00
Sergio Benitez
e1a19054d0 Update state guide for 'rocket_db_pools'. 2022-05-09 04:56:07 -05:00
Sergio Benitez
58b96b8e94 Update CHANGELOG for rc.2, missing rc.1 changes.
Closes #1923.
2022-05-09 01:30:57 -05:00
Sergio Benitez
78aad3aa95 Fix 'PasteId' 'use' in pastebin tutorial. 2022-05-08 18:30:13 -05:00
Sergio Benitez
fccb5759db Revamp pastebin tutorial for Rocket v0.5.
Closes #1756.
2022-05-08 01:57:49 -05:00
Sergio Benitez
4c8bd61c4f Unhide 'http' exports that shouldn't be hidden. 2022-05-08 01:08:22 -05:00
Sergio Benitez
46c441ad8b Add 'rocket::execute()'.
The function allows executing arbitrary futures, including Rocket's
`launch()` future, on Rocket's async runtime.

Resolves #1881.
2022-05-07 15:54:21 -05:00
Sergio Benitez
7908dc43ca Introduce shutdown fairings.
Also adds 'Client::terminate()' to run graceful shutdown in testing.

Resolves #1707.
2022-05-07 06:12:32 -05:00
Sergio Benitez
1575f47753 Update FAQ. 2022-05-07 06:12:32 -05:00
Sergio Benitez
0ba56ccbb3 Revamp shutdown to recover shutdown 'Rocket'.
The core improvement is that `Rocket::launch()` now resolves to
`Ok(Rocket<Ignite>)` on nominal shutdown. Furthermore, shutdown never
terminates the running process.

Other changes directly related to shutdown:

  * Runtime worker thread names are now irrelevant to graceful shutdown.
  * `ErrorKind::Runtime` was removed; `ErrorKind::Shutdown` was added.
  * The `force` config value is only read from the default provider.
  * If `force`, Rocket's constructed async runtime is terminated.

Other related changes:

  * The exported `hyper` module docs properly reflect public re-exports.
2022-05-07 06:12:24 -05:00
Sergio Benitez
761ffb009e Add clarity around 'serde' re-exports.
Closes #2038.
2022-05-06 04:38:27 -05:00
Marc-Stefan Cassola
a9452c6fa4 Fix 'FromRequest' docs typo: 'request' -> 'route'. 2022-05-05 08:02:32 -05:00
Arthur Woimbée
4df97f0e25 Improve unrecognized TLS key header error message.
Resolves #2128.
2022-05-05 08:00:24 -05:00
Sergio Benitez
38e43d0840 Improve and clarify 'Rocket' phase docs. 2022-05-04 12:40:20 -07:00
Sergio Benitez
f12788dbf9 Synchronize 'db_pools' docs with libraries.
Also adds an integration test designed to break if upstream types change
in a manner incompatible with docs.
2022-05-04 12:38:29 -07:00
Sergio Benitez
54224618b2 Switch to upstream 'tokio-rustls'. 2022-05-04 09:44:26 -07:00
Sergio Benitez
1586ef9572 Downgrade URI discord debug assertion to warning.
Closes #1831.
2022-05-04 09:44:26 -07:00
Sergio Benitez
ee4aa81847 Allow '[' and ']' in URI paths.
This is strictly noncompliant and they should be encoded, but browsers
routinely send them unencoded, so we allow them to avoid trouble.
2022-05-04 09:44:24 -07:00
Sergio Benitez
4c6c0b497c Avoid more platform dependent errors in UI tests. 2022-05-03 14:33:11 -07:00
Sergio Benitez
55ea5dfb35 Avoid platform dependent errors in UI tests. 2022-05-03 13:56:25 -07:00
Sergio Benitez
07460df279 Rework TLS listener/connection implementations.
The previous implementation allowed a trivial DoS attack in which the
client need simply maintain open connections with incomplete handshakes.
This commit resolves that by allowing a server worker to progress as
soon as a TCP connection has been established. This comes at the expense
of a more complex implementation necessitated by deficiencies in Hyper.

Potentially resolves #2118.
2022-05-03 13:56:25 -07:00
Sergio Benitez
e9d46b917e Fully 'drop()' I/O struct in 'CancellableIo'.
This should improve the reliability of graceful shutdown.
2022-05-03 13:55:43 -07:00
Sergio Benitez
bf84b1cdb5 Enable TCP_NODELAY on TCP-based connections.
We may want a more fine-grained approach to immediately transmitting
application data, but Hyper does not yet expose a suitable API.

Resolves #2062.
2022-04-28 13:22:06 -07:00
Sergio Benitez
613366f4bb Fix UI tests. 2022-04-27 13:59:20 -07:00
Sergio Benitez
6fc24789e9 Fix SSE heartbeat so it never interrupts events.
Previously, the heartbeat message, in its raw form, was ":\n\n". This
commit changes the message to be ":\n".

The former message, when parsed as Server-Sent Events, contained an
empty comment (as desired) _and_ a new line (erroneously). The new line
resulted in emitting any event that was presently being emitted, even if
it wasn't complete. That is, emitting an event partly, such as the
event's data but not its name. Removing the extra new line resolves this
issue and ensures that events aren't interrupted by the heartbeat.

Fixes #2152.
2022-04-27 13:59:03 -07:00
Sergio Benitez
b117210ca6 Update 'rustls-pemfile' to 1.0. 2022-04-26 22:09:10 -07:00
Sergio Benitez
810f472524 Update 'uuid' to 1.0. 2022-04-26 22:04:47 -07:00
Sergio Benitez
6bdd2f8186 Consider form parsing strategy for 'Vec', 'Map'.
Prior to this commit, 'Vec', 'HashMap', and 'BTreeMap' would parse
leniently irrespetive of the requested parsing strategy. This commit
changes their behavior so that the parsing strategy is respected.

Resolves #2131.
2022-04-21 08:17:58 -07:00