diff --git a/src/ldap.rs b/src/ldap.rs index b4599d3..28ab0fc 100644 --- a/src/ldap.rs +++ b/src/ldap.rs @@ -3,7 +3,7 @@ use russh::keys::PublicKey; use tokio::select; use tokio::task::JoinHandle; use tokio_util::sync::CancellationToken; -use tracing::{debug, warn}; +use tracing::{debug, error}; #[derive(Debug, Clone)] pub struct Ldap { @@ -51,9 +51,10 @@ impl Ldap { select! { res = conn.drive() => { if let Err(err) = res { - warn!("LDAP connection error: {}", err); + error!("LDAP connection error: {}", err); } else { - debug!("LDAP drive has stopped, this should not happen?"); + error!("LDAP connection lost"); + token.cancel(); } } _ = token.cancelled() => { diff --git a/src/main.rs b/src/main.rs index fab6daa..054783c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,15 +15,20 @@ use siranga::web::{ForwardAuth, Service}; use tokio::net::TcpListener; use tokio::select; use tokio_util::sync::CancellationToken; -use tracing::{error, info, warn}; +use tracing::{debug, error, info, warn}; use tracing_subscriber::EnvFilter; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; async fn shutdown_task(token: CancellationToken) { - tokio::signal::ctrl_c() - .await - .expect("Failed to listen for ctrl-c event"); + select! { + _ = tokio::signal::ctrl_c() => { + debug!("Received SIGINT"); + } + _ = token.cancelled() => { + debug!("Application called for graceful shutdown"); + } + } info!("Starting graceful shutdown"); token.cancel(); tokio::time::sleep(Duration::from_secs(5)).await;