refactor: specify target os for signals handling
Diff
Cargo.toml | 6 ++++--
src/server.rs | 13 ++++++++++++-
2 files changed, 16 insertions(+), 3 deletions(-)
@@ -35,12 +35,14 @@ iron-cors = "0.8"
log = "0.4"
mime = "0.2"
mime_guess = "1.8"
nix = "0.14"
signal = "0.7"
structopt = { version = "0.3", default-features = false }
time = "0.1"
url = "1.4"
[target.'cfg(not(windows))'.dependencies.nix]
version = "0.14"
[target.'cfg(not(windows))'.dependencies.signal]
version = "0.7"
[target.'cfg(all(target_env = "musl", target_pointer_width = "64"))'.dependencies.jemallocator]
version = "0.3"
@@ -1,7 +1,6 @@
use hyper_native_tls::NativeTlsServer;
use iron::{Chain, Iron, Listening};
use crate::signal_manager;
use crate::staticfile_middleware::HttpToHttpsRedirect;
use crate::staticfiles::*;
use crate::{config::Options, logger};
@@ -91,6 +90,13 @@ fn on_server_running(server_name: &str, running_servers: &[RunningServer]) {
))
});
handle_signals()
}
#[cfg(not(windows))]
fn handle_signals() {
use crate::signal_manager;
signal_manager::wait_for_signal(|sig: signal::Signal| {
let code = signal_manager::signal_to_int(sig);
@@ -100,3 +106,8 @@ fn on_server_running(server_name: &str, running_servers: &[RunningServer]) {
std::process::exit(code)
})
}
#[cfg(windows)]
fn handle_signals() {
println!("TODO: Windows signals...")
}