index : static-web-server.git

ascending towards madness

author Jose Quintana <joseluisquintana20@gmail.com> 2021-02-11 2:08:38.0 +00:00:00
committer Jose Quintana <joseluisquintana20@gmail.com> 2021-02-11 2:08:38.0 +00:00:00
commit
dd59cd3564e7f1425f86bed0db04ee0276d3f73f [patch]
tree
30e1a06ba5491b5466e0c6d99276b0da3e7250e9
parent
db51d7776907c12db9192e9543487adbe5e7a854
download
dd59cd3564e7f1425f86bed0db04ee0276d3f73f.tar.gz

refactor: specify target os for signals handling



Diff

 Cargo.toml    |  6 ++++--
 src/server.rs | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 1cbd5f8..0a9c641 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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"

diff --git a/src/server.rs b/src/server.rs
index 4b47dd6..2550d32 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -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;

    // Wait for incoming signals (E.g Ctrl+C (SIGINT), SIGTERM, etc
    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...")
}