From 980cb31ce8e39a56117322b4ce45bd5baaa94144 Mon Sep 17 00:00:00 2001 From: James Hodgkinson Date: Wed, 25 Jan 2023 09:43:24 +1000 Subject: [PATCH] Windows-related build fixes (#1344) * it now builds, but kanidmd stack overflows on windows while running initialise_helper - tests passing --- Makefile | 12 +++++++ kanidmd/daemon/src/main.rs | 71 ++++++++++++++++++++++---------------- 2 files changed, 53 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index 9e489068e..c0d861165 100644 --- a/Makefile +++ b/Makefile @@ -240,3 +240,15 @@ release/kanidm-unixd: --bin kanidm_unixd_tasks \ --bin kanidm_cache_clear \ --bin kanidm_cache_invalidate + + +# cert things + +.PHONY: cert/clean +cert/clean: ## clean out the insecure cert bits +cert/clean: + rm -f /tmp/kanidm/*.pem + rm -f /tmp/kanidm/*.cnf + rm -f /tmp/kanidm/*.csr + rm -f /tmp/kanidm/ca.txt* + rm -f /tmp/kanidm/ca.{cnf,srl,srl.old} diff --git a/kanidmd/daemon/src/main.rs b/kanidmd/daemon/src/main.rs index f7b46bd3d..3f06e8111 100644 --- a/kanidmd/daemon/src/main.rs +++ b/kanidmd/daemon/src/main.rs @@ -298,40 +298,51 @@ async fn main() { match sctx { Ok(mut sctx) => { loop { + #[cfg(target_family = "unix")] + { + tokio::select! { + Ok(()) = tokio::signal::ctrl_c() => { + break + } + Some(()) = async move { + let sigterm = tokio::signal::unix::SignalKind::terminate(); + tokio::signal::unix::signal(sigterm).unwrap().recv().await + } => { + break + } + Some(()) = async move { + let sigterm = tokio::signal::unix::SignalKind::alarm(); + tokio::signal::unix::signal(sigterm).unwrap().recv().await + } => { + // Ignore + } + Some(()) = async move { + let sigterm = tokio::signal::unix::SignalKind::hangup(); + tokio::signal::unix::signal(sigterm).unwrap().recv().await + } => { + // Ignore + } + Some(()) = async move { + let sigterm = tokio::signal::unix::SignalKind::user_defined1(); + tokio::signal::unix::signal(sigterm).unwrap().recv().await + } => { + // Ignore + } + Some(()) = async move { + let sigterm = tokio::signal::unix::SignalKind::user_defined2(); + tokio::signal::unix::signal(sigterm).unwrap().recv().await + } => { + // Ignore + } + } + } + #[cfg(target_family = "windows")] + { tokio::select! { Ok(()) = tokio::signal::ctrl_c() => { break } - Some(()) = async move { - let sigterm = tokio::signal::unix::SignalKind::terminate(); - tokio::signal::unix::signal(sigterm).unwrap().recv().await - } => { - break - } - Some(()) = async move { - let sigterm = tokio::signal::unix::SignalKind::alarm(); - tokio::signal::unix::signal(sigterm).unwrap().recv().await - } => { - // Ignore - } - Some(()) = async move { - let sigterm = tokio::signal::unix::SignalKind::hangup(); - tokio::signal::unix::signal(sigterm).unwrap().recv().await - } => { - // Ignore - } - Some(()) = async move { - let sigterm = tokio::signal::unix::SignalKind::user_defined1(); - tokio::signal::unix::signal(sigterm).unwrap().recv().await - } => { - // Ignore - } - Some(()) = async move { - let sigterm = tokio::signal::unix::SignalKind::user_defined2(); - tokio::signal::unix::signal(sigterm).unwrap().recv().await - } => { - // Ignore - } + } } } eprintln!("Signal received, shutting down");