Sergio Benitez
aa6ad7030a
Allow setting mTLS certificates on local 'Client'.
...
This allows testing with client certificates.
Co-authored-by: Brett Buford <blbuford@gmail.com>
2023-03-31 11:13:40 -07:00
Mai-Lapyst
19e7e82fd6
Initial connection upgrade API implementation.
2023-03-29 17:06:04 -07:00
Sergio Benitez
a474fde85b
Implement 'De(Serialize)' for 'Status'.
...
Resolves #2366 .
2023-03-26 19:18:04 -07:00
Sergio Benitez
0d8cb1457f
Recognize the '.mjs' extension as JavaScript.
...
Resolves #2479 .
2023-03-25 08:58:43 -07:00
Sergio Benitez
999787e3bb
Update JavaScript media type to 'text/javascript'.
...
This reflects RFC9239 and the IANA registry updates.
2023-03-25 08:56:58 -07:00
Sergio Benitez
91f6288ea4
New version: 0.5.0-rc.3.
...
New contrib versions: 0.1.0-rc.3.
2023-03-23 16:56:17 -07:00
Sergio Benitez
219a8a5468
Fix a bunch of typos.
2023-03-23 16:27:08 -07:00
Sergio Benitez
0a0f540988
Support TLS keys in SEC1 format.
2023-03-23 14:57:54 -07:00
Sergio Benitez
daa157f872
Ignore data before TLS key encapsulation boundary.
...
Resolves #2281 .
Co-authored-by: Julian Büttner <me@julianbuettner.dev>
2023-03-23 14:57:54 -07:00
Kian-Meng Ang
06d255b52b
Fix a whole bunch of typos.
...
Found via `codespell -L crate,ser,fo,noo,nd,cappable,pard,te,ans`.
2023-03-23 14:57:54 -07:00
Alexander van Ratingen
2191369b37
Fix typos in docs.
2023-03-23 14:57:54 -07:00
Sergio Benitez
bbbb927ac2
Update dependencies without observable breakages.
...
The following dependencies were updated:
* `criterion` from 0.3 to 0.4
* `deadpool-redis` from 0.10 to 0.11
* `normpath` from 0.3 to 1
* `cookie` from 0.16 to 0.17
2023-03-22 13:44:16 -07:00
Sergio Benitez
9377af5978
Make real IP header configurable via 'ip_header'.
...
Adds an `ip_header` configuration parameter that allows modifying the
header Rocket attempts to use to retrieve the "real IP" address of the
client via `Request` methods like `client_ip()`. Additionally allows
disabling the use of any such header.
2023-03-20 12:57:21 -07:00
Aaron Leopold
c8b8b2b022
Add several new known media types:
...
* CBZ: application/vnd.comicbook+zip, .cbz
* CBR: application/vnd.comicbook-rar, .cbr
* RAR: application/vnd.rar, .rar
* EPUB: application/epub+zip, .epub
* OPF: application/oebps-package+xml, .opf
* XHTML: application/xhtml+xml, .xhtml
2022-06-13 15:29:32 -07:00
James Tai
2fc4b156eb
Add MP3 (audio/mpeg) as a known media type.
2022-06-03 07:30:22 -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
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
4c8bd61c4f
Unhide 'http' exports that shouldn't be hidden.
2022-05-08 01:08:22 -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
Arthur Woimbée
4df97f0e25
Improve unrecognized TLS key header error message.
...
Resolves #2128 .
2022-05-05 08:00:24 -05:00
Sergio Benitez
54224618b2
Switch to upstream 'tokio-rustls'.
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
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
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
Konrad Borowski
7bbe0457a5
Use new 2021 edition functionality.
...
* Remove `TryInto` and `TryFrom` imports.
* Replace `IntoIter::new()` with `.into_iter()`.
2022-04-19 18:35:55 -07:00
Konrad Borowski
4d258739f5
Migrate Rocket to Rust 2021 edition.
2022-04-19 18:35:38 -07:00
Sergio Benitez
4d83f73f86
Implement 'Eq' for 'MediaType', 'ContentType'.
...
This also fixes the 'Hash' implementation to match the docs.
Resolves #2132 .
2022-04-19 13:58:30 -07:00
Sergio Benitez
2a7eac01bb
Fix 'Segments::to_path_buf()' on Windows.
2022-04-19 13:06:02 -07:00
Sergio Benitez
ccf0b802bc
Disallow ':' in `PathBuf` guard on Windows.
...
Fixes #1949 .
2022-04-18 18:27:41 -07:00
Edgar Onghena
ff7cf68461
Make HTTP/2 optional via 'http2' feature.
...
Closes #2030 .
2022-03-08 15:13:24 -08:00
=?UTF-8?q?R=C3=A9mi=20Lauzier?=
f82d760b52
Use 'matches!' macro where possible.
2022-02-23 14:11:44 -08:00
Sergio Benitez
fda05bddd2
Update 'rustls' to 0.20.
...
Also updates 'tokio-rustls' to a compatible version.
Additionally depends on 'rustls-pemfile' which includes functionality
that was previously part of 'rustls' itself.
2022-02-22 17:30:42 -08:00
Sergio Benitez
502b11c177
Update 'x509-parser' to 0.13.
2022-02-22 13:01:05 -08:00
Sergio Benitez
2f59515752
Update 'x509-parser' to 0.12.
...
Closes #2100 .
2022-02-22 12:51:59 -08:00
arlecchino
1ba41b3990
Remove 'CookieJar::get_private_pending()'.
...
This commit removes the 'CookieJar::get_private_pending()' method in
favor of the already existing and correct 'CookieJar::get_pending()'
method. Previously, the 'CookieJar::get_private_pending()' method
attempted to decrypt the value of a pending cookie, which in reality is
plaintext, thus failing. Because the pending value is plaintext, the
'CookieJar::get_pending()' method suffices.
Documentation has been updated to refer to 'CookieJar::get_pending()'.
Fixes #2063 .
2022-02-17 11:04:30 -08:00
arlecchino
442b668a7a
Update 'cookie' to '0.16'.
2022-02-17 10:57:37 -08:00
Sergio Benitez
0ba5aac53e
Update codebase for latest nightly and stable.
2022-02-16 10:08:55 -08:00
Sergio Benitez
3616f25c0b
Update 'time' to 0.3, 'cookie' to 0.16.
...
Also reexport 'time' from the crate root.
2021-08-19 19:49:23 -07:00
Sergio Benitez
74be9c68b1
Add missing newline for better doc rendering.
2021-08-19 19:49:23 -07:00
Sergio Benitez
be3ceef4e3
Use 'hyper' instead of 'http' where possible.
2021-08-19 19:49:23 -07:00
Sergio Benitez
6d2059f9eb
Remove unused 'mime' dependency.
2021-08-19 19:49:23 -07:00
Sergio Benitez
1a8574e491
Remove unused 'parking_lot' 'http' dependency.
2021-08-19 19:43:34 -07:00
Sergio Benitez
7ffe3a7360
Complete mTLS implementation.
...
Resolves #254 .
2021-07-09 00:05:44 -07:00
Sergio Benitez
bbc36ba27f
Initial implementation of mTLS.
...
Co-authored-by: Howard Su <howard0su@gmail.com>
Co-authored-by: Mikail Bagishov <bagishov.mikail@yandex.ru>
2021-07-09 00:05:20 -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