Make TLS misconfig an error. Always print launch message.

This commit is contained in:
Sergio Benitez 2017-04-13 01:13:25 -07:00
parent 1516ca4fb6
commit 6f29696b4f
3 changed files with 21 additions and 5 deletions

View File

@ -4,7 +4,7 @@ version = "0.0.0"
workspace = "../../"
[dependencies]
rocket = { path = "../../lib", features = ["tls"] }
rocket = { path = "../../lib" }
rocket_codegen = { path = "../../codegen" }
[dev-dependencies]

View File

@ -66,6 +66,13 @@ macro_rules! log_ {
};
}
#[doc(hidden)] #[macro_export]
macro_rules! launch_info {
($format:expr, $($args:expr),*) => {
error!(target: "launch", $format, $($args),*)
}
}
#[doc(hidden)] #[macro_export]
macro_rules! error_ { ($($args:expr),+) => { log_!(error: $($args),+); }; }
#[doc(hidden)] #[macro_export]
@ -78,6 +85,7 @@ macro_rules! debug_ { ($($args:expr),+) => { log_!(debug: $($args),+); }; }
macro_rules! warn_ { ($($args:expr),+) => { log_!(warn: $($args),+); }; }
impl Log for RocketLogger {
#[inline(always)]
fn enabled(&self, md: &LogMetadata) -> bool {
md.level() <= self.0.max_log_level()
}
@ -88,6 +96,14 @@ impl Log for RocketLogger {
return;
}
// We use the `launch_info` macro to "fake" a high priority info
// message. We want to print the message unless the user uses a custom
// drain, so we set it's status to critical, but reset it here to info.
let level = match record.target() {
"launch" => Info,
_ => record.level()
};
// Don't print Hyper or Rustls messages unless debug is enabled.
let from_hyper = record.location().module_path().starts_with("hyper::");
let from_rustls = record.location().module_path().starts_with("rustls::");
@ -101,7 +117,7 @@ impl Log for RocketLogger {
}
use log::LogLevel::*;
match record.level() {
match level {
Info => println!("{}", Blue.paint(record.args())),
Trace => println!("{}", Magenta.paint(record.args())),
Error => {

View File

@ -387,9 +387,9 @@ impl Rocket {
if tls_configured && cfg!(feature = "tls") {
info_!("tls: {}", White.paint("enabled"));
} else {
info_!("tls: {}", White.paint("disabled"));
error_!("tls: {}", White.paint("disabled"));
if tls_configured {
warn_!("tls is configured, but the tls feature is disabled");
error_!("tls is configured, but the tls feature is disabled");
}
}
@ -602,7 +602,7 @@ impl Rocket {
Err(e) => return LaunchError::from(e)
};
info!("🚀 {} {}{}",
launch_info!("🚀 {} {}{}",
White.paint("Rocket has launched from"),
White.bold().paint(proto),
White.bold().paint(&full_addr));