X-Git-Url: https://git.librecmc.org/?p=oweals%2Fmountd.git;a=blobdiff_plain;f=signal.c;h=10656418979b85c31fce45d01b82c45b762e23e1;hp=4a4450c91c88dbe189ef2d667efe4767abd67d99;hb=HEAD;hpb=827e9eb7ea68786c1b840402a4b2b64473263ae3;ds=sidebyside diff --git a/signal.c b/signal.c index 4a4450c..1065641 100644 --- a/signal.c +++ b/signal.c @@ -7,21 +7,10 @@ #include "include/led.h" #include "include/signal.h" -void (*crtlc_cb)(void) = 0; - -static 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); }