#include <errno.h>
#include <fcntl.h>
+#include <signal.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/un.h>
msg(L_INFO, "Listening on %s", socket_path);
}
+static void sig_term(struct main_signal *ms UNUSED)
+{
+ msg(L_INFO, "Shutting down");
+ main_shut_down();
+}
+
+static void init_signals(void)
+{
+ static struct main_signal ms_sigterm = {
+ .signum = SIGTERM,
+ .handler = sig_term,
+ };
+ signal_add(&ms_sigterm);
+}
+
static char *zone_commit(void *z_)
{
struct auth_zone *z = z_;
temp_init();
main_init();
init_socket();
+ init_signals();
main_loop();
return 0;