]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/signal_handlers.c
Port to OpenBSD
[dragonblocks_alpha.git] / src / signal_handlers.c
1 #include <signal.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include "signal_handlers.h"
5 #include "util.h"
6
7 bool interrupted = false;
8
9 static void interrupt_handler(int sig)
10 {
11         interrupted = true;
12         fprintf(stderr, "%s\n", strsignal(sig));
13 }
14
15 static void silent_handler(unused int sig)
16 {
17 }
18
19 static struct sigaction sigact_interrupt = {0};
20 static struct sigaction sigact_silent = {0};
21
22 void signal_handlers_init()
23 {
24         sigact_interrupt.sa_handler = &interrupt_handler;
25         sigaction(SIGINT, &sigact_interrupt, NULL);
26         sigaction(SIGTERM, &sigact_interrupt, NULL);
27
28         sigact_silent.sa_handler = &silent_handler;
29         sigaction(SIGPIPE, &sigact_silent, NULL);
30 }