From 57e8077942fe7fde7f5feca251540444ef99025e Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Thu, 12 May 2022 14:17:10 +0200 Subject: [PATCH] runtime: ignore SIGPIPE --- src/sighand.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sighand.rs b/src/sighand.rs index 9173b015..b5690d9d 100644 --- a/src/sighand.rs +++ b/src/sighand.rs @@ -23,6 +23,7 @@ pub fn install(el: &Rc) -> Result<(), SighandError> { let mut set: c::sigset_t = uapi::pod_zeroed(); uapi::sigaddset(&mut set, c::SIGINT).unwrap(); uapi::sigaddset(&mut set, c::SIGTERM).unwrap(); + uapi::sigaddset(&mut set, c::SIGPIPE).unwrap(); if let Err(e) = uapi::pthread_sigmask(c::SIG_BLOCK, Some(&set), None) { return Err(SighandError::BlockFailed(e.into())); } @@ -59,9 +60,12 @@ impl EventLoopDispatcher for Sighand { _ => return Err(Box::new(SighandError::ReadFailed(e.into()))), } } - log::info!("Received signal {}", sigfd.ssi_signo); - log::info!("Exiting"); - self.el.stop(); + let sig = sigfd.ssi_signo as i32; + log::info!("Received signal {}", sig); + if matches!(sig, c::SIGINT | c::SIGTERM) { + log::info!("Exiting"); + self.el.stop(); + } } Ok(()) }