X-Git-Url: https://git.librecmc.org/?p=oweals%2Fmountd.git;a=blobdiff_plain;f=signal.c;h=10656418979b85c31fce45d01b82c45b762e23e1;hp=1772fb416021fc00ab2402a29de206821653d52d;hb=HEAD;hpb=be3b285c88648c24f7e4b36bebac56a95fa80f7e diff --git a/signal.c b/signal.c index 1772fb4..1065641 100644 --- a/signal.c +++ b/signal.c @@ -5,22 +5,12 @@ #include "include/log.h" #include "include/list.h" #include "include/led.h" +#include "include/signal.h" -void (*crtlc_cb)(void) = 0; - -void handlerINT(int s) -{ - log_printf("caught sig int ... cleaning up\n"); - if(crtlc_cb) - crtlc_cb(); - exit(0); -} - -void signal_init(void (*_crtlc_cb)(void)) +void signal_init(void (*_crtlc_cb)(int)) { struct sigaction s; - crtlc_cb = _crtlc_cb; - s.sa_handler = handlerINT; + s.sa_handler = _crtlc_cb; s.sa_flags = 0; - sigaction(SIGINT, &s, NULL); + sigaction(SIGTERM, &s, NULL); }