index : static-web-server.git

ascending towards madness

author Jose Quintana <joseluisquintana20@gmail.com> 2022-02-16 21:40:09.0 +00:00:00
committer Jose Quintana <joseluisquintana20@gmail.com> 2022-02-16 21:40:09.0 +00:00:00
commit
c0851472fdc83ecbe8807e6e74c3cf01ced51da4 [patch]
tree
104f100ff1a919674713b5ee1321a89348215a4c
parent
7f70a135540023035f74a7af037915af9c9abfaa
download
c0851472fdc83ecbe8807e6e74c3cf01ced51da4.tar.gz

refactor: prefer `cfg(unix)` instead of `cfg(not(windows))`



Diff

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

diff --git a/Cargo.toml b/Cargo.toml
index f14a65b..e77b015 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -54,7 +54,7 @@ form_urlencoded = "1.0"
[target.'cfg(all(target_env = "musl", target_pointer_width = "64"))'.dependencies.jemallocator]
version = "0.3"

[target.'cfg(not(windows))'.dependencies]
[target.'cfg(unix)'.dependencies]
signal-hook = { version = "0.3", features = ["extended-siginfo"] }
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"], default-features = false }

diff --git a/src/logger.rs b/src/logger.rs
index 08b50e1..c81217d 100644
--- a/src/logger.rs
+++ b/src/logger.rs
@@ -8,7 +8,7 @@ use crate::Result;
pub fn init(level: &str) -> Result {
    let level = level.parse::<Level>()?;

    #[cfg(not(windows))]
    #[cfg(unix)]
    let enable_ansi = true;
    #[cfg(windows)]
    let enable_ansi = false;
diff --git a/src/server.rs b/src/server.rs
index 6e826ae..bc87687 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -165,15 +165,15 @@ impl Server {
                    "error during TLS server initialization, probably cert or key file missing",
                );

            #[cfg(not(windows))]
            #[cfg(unix)]
            let signals = signals::create_signals()?;
            #[cfg(not(windows))]
            #[cfg(unix)]
            let handle = signals.handle();

            let server =
                HyperServer::builder(TlsAcceptor::new(tls, incoming)).serve(router_service);

            #[cfg(not(windows))]
            #[cfg(unix)]
            let server =
                server.with_graceful_shutdown(signals::wait_for_signals(signals, grace_period));
            #[cfg(windows)]
@@ -189,14 +189,14 @@ impl Server {

            server.await?;

            #[cfg(not(windows))]
            #[cfg(unix)]
            handle.close();
        } else {
            // HTTP/1

            #[cfg(not(windows))]
            #[cfg(unix)]
            let signals = signals::create_signals()?;
            #[cfg(not(windows))]
            #[cfg(unix)]
            let handle = signals.handle();

            let server = HyperServer::from_tcp(tcp_listener)
@@ -204,7 +204,7 @@ impl Server {
                .tcp_nodelay(true)
                .serve(router_service);

            #[cfg(not(windows))]
            #[cfg(unix)]
            let server =
                server.with_graceful_shutdown(signals::wait_for_signals(signals, grace_period));
            #[cfg(windows)]
@@ -220,7 +220,7 @@ impl Server {

            server.await?;

            #[cfg(not(windows))]
            #[cfg(unix)]
            handle.close();
        }

diff --git a/src/signals.rs b/src/signals.rs
index ccae5d9..3694272 100644
--- a/src/signals.rs
+++ b/src/signals.rs
@@ -1,4 +1,4 @@
#[cfg(not(windows))]
#[cfg(unix)]
use {
    crate::Result, futures_util::stream::StreamExt, signal_hook::consts::signal::*,
    signal_hook_tokio::Signals,
@@ -6,13 +6,13 @@ use {

use tokio::time::{sleep, Duration};

#[cfg(not(windows))]
#[cfg(unix)]
/// It creates a common list of signals stream for `SIGTERM`, `SIGINT` and `SIGQUIT` to be observed.
pub fn create_signals() -> Result<Signals> {
    Ok(Signals::new(&[SIGHUP, SIGTERM, SIGINT, SIGQUIT])?)
}

#[cfg(not(windows))]
#[cfg(unix)]
/// It waits for a specific type of incoming signals included `ctrl+c`.
pub async fn wait_for_signals(signals: Signals, grace_period_secs: u8) {
    let mut signals = signals.fuse();