finger proctitle ipaccess profile bitsig randomkey \
hashfunc base64 base224 fb-temp fb-mmap fb-printf urlkey \
partmap fb-limfd fb-buffer mainloop exitstatus runcmd carefulio \
- lizard lizard-safe
+ lizard lizard-safe sighandler
ifdef CONFIG_OWN_REGEX
include lib/regex/Makefile
int careful_read(int fd, void *buf, int len);
int careful_write(int fd, void *buf, int len);
+/* sighandler.c */
+typedef void (*my_sighandler_t)(void);
+extern my_sighandler_t signal_handler[];
+
+void *handle_signal(int signum);
+
#endif
--- /dev/null
+/*
+ * Catching of signals and calling callback functions
+ *
+ * (c) 2004, Robert Spalek <robert@ucw.cz>
+ */
+
+#include "lib/lib.h"
+
+#include <stdlib.h>
+#include <signal.h>
+
+my_sighandler_t signal_handler[_NSIG];
+
+static void
+signal_handler_internal(int sig)
+{
+ signal(sig, signal_handler_internal);
+ if (signal_handler[sig])
+ signal_handler[sig]();
+ abort();
+}
+
+void *
+handle_signal(int signum)
+{
+ return signal(signum, signal_handler_internal);
+}