summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/signalController.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/signalController.cpp b/src/signalController.cpp
index f298e72..00b9bd2 100644
--- a/src/signalController.cpp
+++ b/src/signalController.cpp
@@ -163,8 +163,15 @@ void SignalController::handle()
sigfillset(&signal_set);
err = sigwait(&signal_set, &sigNum);
if (err)
- break;
- inject(sigNum);
+ {
+ if (err != EINTR && errno != EINTR )
+ {
+ cLog.msg(Log::PRIO_ERROR) << "sigwait failed with error: \"" << AnytunErrno(errno) << "\" SignalHandling will be disabled";
+ break;
+ }
+ } else {
+ inject(sigNum);
+ }
}
}
#else