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);