]> arthur.barton.de Git - netatalk.git/commitdiff
netatalk: fix SIGHUP handling, bug #579
authorRalph Boehme <rb@sernet.de>
Wed, 17 Sep 2014 22:19:43 +0000 (00:19 +0200)
committerRalph Boehme <rb@sernet.de>
Wed, 17 Sep 2014 22:19:43 +0000 (00:19 +0200)
Signed-off-by: Ralph Boehme <rb@sernet.de>
NEWS
etc/netatalk/netatalk.c

diff --git a/NEWS b/NEWS
index 6ab9cc131af9b2d2302f54468624ebf91eec50fe..1aca7b8fa0a25d1ac3c29b284ef12d5ce0d82b7a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ Changes in 3.1.7
 * UPD: Spotlight: enhance behaviour for long running queries, client
        will now show "progress wheel" while waiting for first results.
 * FIX: netatalk: fix a crash on Solaris when registering with mDNS
+* FIX: netatalk: SIGHUP would kill the process instead of being resent
+       to the other Netatalk processes, bug #579
 
 Changes in 3.1.6
 ================
index 1956ac58a820734447dfd9b340e5521890acb133..a806d50ae32a7b9b8811901c70bf15b59e79321a 100644 (file)
@@ -65,7 +65,7 @@ static pid_t cnid_metad_pid = NETATALK_SRV_NEEDED;
 static pid_t dbus_pid = NETATALK_SRV_OPTIONAL;
 static uint afpd_restarts, cnid_metad_restarts, dbus_restarts;
 static struct event_base *base;
-struct event *sigterm_ev, *sigquit_ev, *sigchld_ev, *timer_ev;
+struct event *sigterm_ev, *sigquit_ev, *sigchld_ev, *sighup_ev, *timer_ev;
 static int in_shutdown;
 static const char *dbus_path;
 
@@ -401,7 +401,7 @@ int main(int argc, char **argv)
 
     sigterm_ev = event_new(base, SIGTERM, EV_SIGNAL, sigterm_cb, NULL);
     sigquit_ev = event_new(base, SIGQUIT, EV_SIGNAL | EV_PERSIST, sigquit_cb, NULL);
-    sigquit_ev = event_new(base, SIGHUP,  EV_SIGNAL | EV_PERSIST, sighup_cb, NULL);
+    sighup_ev = event_new(base, SIGHUP,  EV_SIGNAL | EV_PERSIST, sighup_cb, NULL);
     sigchld_ev = event_new(base, SIGCHLD, EV_SIGNAL | EV_PERSIST, sigchld_cb, NULL);
     timer_ev = event_new(base, -1, EV_PERSIST, timer_cb, NULL);
 
@@ -411,6 +411,7 @@ int main(int argc, char **argv)
     event_add(sigterm_ev, NULL);
     event_add(sigquit_ev, NULL);
     event_add(sigchld_ev, NULL);
+    event_add(sighup_ev, NULL);
     event_add(timer_ev, &tv);
 
     sigfillset(&blocksigs);