]> git.meshlink.io Git - catta/blobdiff - avahi-daemon/main.c
daemon: we better stay away from SIGQUIT since it is supposed to cause a core dump
[catta] / avahi-daemon / main.c
index b6962cf557119811d86390864b18a91e38db071a..d46f40a8dddf990f6f5f07766e7e3d01b8f1be08 100644 (file)
@@ -1046,12 +1046,10 @@ static void signal_callback(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AVAHI_GC
 
     switch (sig) {
         case SIGINT:
-        case SIGQUIT:
         case SIGTERM:
             avahi_log_info(
                     "Got %s, quitting.",
-                    sig == SIGINT ? "SIGINT" :
-                    (sig == SIGQUIT ? "SIGQUIT" : "SIGTERM"));
+                    sig == SIGINT ? "SIGINT" : "SIGTERM");
             avahi_simple_poll_quit(simple_poll_api);
             break;
 
@@ -1113,7 +1111,7 @@ static int run_server(DaemonConfig *c) {
 
     poll_api = avahi_simple_poll_get(simple_poll_api);
 
-    if (daemon_signal_init(SIGINT, SIGQUIT, SIGHUP, SIGTERM, SIGUSR1, 0) < 0) {
+    if (daemon_signal_init(SIGINT, SIGHUP, SIGTERM, SIGUSR1, 0) < 0) {
         avahi_log_error("Could not register signal handlers (%s).", strerror(errno));
         goto finish;
     }
@@ -1229,6 +1227,7 @@ static int run_server(DaemonConfig *c) {
             break;
     }
 
+    r = 0;
 
 finish:
 
@@ -1585,6 +1584,9 @@ int main(int argc, char *argv[]) {
             if (daemon_close_all(-1) < 0)
                 avahi_log_warn("Failed to close all remaining file descriptors: %s", strerror(errno));
 
+        daemon_reset_sigs(-1);
+        daemon_unblock_sigs(-1);
+
         if (make_runtime_dir() < 0)
             goto finish;
 
@@ -1632,6 +1634,9 @@ int main(int argc, char *argv[]) {
 
         if (run_server(&config) == 0)
             r = 0;
+
+        avahi_log_info("%s "PACKAGE_VERSION" exiting.", argv0);
+        sd_notifyf(0, "STATUS=%s "PACKAGE_VERSION" exiting.", argv0);
     }
 
 finish: