aboutsummaryrefslogtreecommitdiff
path: root/signal_handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'signal_handler.c')
-rw-r--r--signal_handler.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/signal_handler.c b/signal_handler.c
new file mode 100644
index 0000000..8052eba
--- /dev/null
+++ b/signal_handler.c
@@ -0,0 +1,38 @@
+/*
+
+(C) 2009-2011 Mika Ilmaranta <ilmis@nullnet.fi>
+
+License: GPLv2
+
+*/
+
+#include <stdio.h>
+#include <errno.h>
+#include <signal.h>
+
+#include "globals.h"
+
+void signal_handler(int signo) {
+ int errno_save;
+
+ errno_save = errno;
+
+ switch(signo) {
+ case SIGINT:
+ set_cont(0);
+ break;
+ case SIGUSR1:
+ set_dump(1);
+ break;
+ case SIGUSR2:
+ set_dump_if_list(1);
+ break;
+ case SIGHUP:
+ set_reload_cfg(1);
+ break;
+ }
+
+ errno = errno_save;
+}
+
+/* EOF */