From: Miroslav Lichvar Date: Mon, 27 Jul 2015 12:27:41 +0000 (+0200) Subject: main: move signal handler setting to util.c X-Git-Tag: 2.2-pre1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ceef8ad2d87b0d6e9b074dd07760084c94807c6b;p=thirdparty%2Fchrony.git main: move signal handler setting to util.c --- diff --git a/main.c b/main.c index 393b12e4..c3c55744 100644 --- a/main.c +++ b/main.c @@ -51,6 +51,7 @@ #include "nameserv.h" #include "smooth.h" #include "tempcomp.h" +#include "util.h" /* ================================================== */ @@ -522,12 +523,7 @@ int main post_init_rtc_hook(NULL); } - signal(SIGINT, signal_cleanup); - signal(SIGTERM, signal_cleanup); -#if !defined(WINNT) - signal(SIGQUIT, signal_cleanup); - signal(SIGHUP, signal_cleanup); -#endif /* WINNT */ + UTI_SetQuitSignalsHandler(signal_cleanup); /* The program normally runs under control of the main loop in the scheduler. */ diff --git a/util.c b/util.c index 2f2c4627..126c74f9 100644 --- a/util.c +++ b/util.c @@ -839,3 +839,17 @@ UTI_DecodePasswordFromText(char *key) return len; } } + +/* ================================================== */ + +int +UTI_SetQuitSignalsHandler(void (*handler)(int)) +{ + signal(SIGINT, handler); + signal(SIGTERM, handler); +#if !defined(WINNT) + signal(SIGQUIT, handler); + signal(SIGHUP, handler); +#endif /* WINNT */ + return 1; +} diff --git a/util.h b/util.h index cb084ed7..68afb78b 100644 --- a/util.h +++ b/util.h @@ -127,4 +127,6 @@ extern int UTI_CheckNTPAuth(int hash_id, const unsigned char *key, int key_len, /* Decode password encoded in ASCII or HEX */ extern int UTI_DecodePasswordFromText(char *key); +extern int UTI_SetQuitSignalsHandler(void (*handler)(int)); + #endif /* GOT_UTIL_H */