aboutsummaryrefslogtreecommitdiff
path: root/src/server/signal.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/signal.cc')
-rw-r--r--src/server/signal.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/server/signal.cc b/src/server/signal.cc
new file mode 100644
index 0000000..ea7ae3e
--- /dev/null
+++ b/src/server/signal.cc
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+#include "signal.h"
+
+namespace server {
+
+volatile sig_atomic_t shutdownCaught = 0;
+
+static void sighandler(int) {
+ shutdownCaught = 1;
+}
+
+void set_signal_handlers() {
+ struct sigaction sa = {0};
+ sa.sa_handler = sighandler;
+ sigaction(SIGTERM, &sa, nullptr);
+ sigaction(SIGINT, &sa, nullptr);
+}
+
+} \ No newline at end of file