Hi there,

I've spotted the following in ripd.c

signal_set(&ev_sigchld, SIGINT, main_sig_handler, NULL);

should be SIGCHLD correct ? main_sig_handler handles it with
check_child();

That line is there since rev 1.1, so looks like SIGCHLD was never
handled.

Index: ripd.c
===================================================================
RCS file: /cvs/src/usr.sbin/ripd/ripd.c,v
retrieving revision 1.19
diff -d -u -p -w ripd.c
--- ripd.c      2 Nov 2009 20:28:49 -0000       1.19
+++ ripd.c      30 Jan 2010 17:56:00 -0000
@@ -232,7 +232,7 @@ main(int argc, char *argv[])
        /* setup signal handler */
        signal_set(&ev_sigint, SIGINT, main_sig_handler, NULL);
        signal_set(&ev_sigterm, SIGTERM, main_sig_handler, NULL);
-       signal_set(&ev_sigchld, SIGINT, main_sig_handler, NULL);
+       signal_set(&ev_sigchld, SIGCHLD, main_sig_handler, NULL);
        signal_set(&ev_sighup, SIGHUP, main_sig_handler, NULL);
        signal_add(&ev_sigint, NULL);
        signal_add(&ev_sigterm, NULL);

Reply via email to