Port ospf6d to sigevent and rename signal handling functions in vtysh not to
conflict the ones in lib/sigevent.c. Fixes compiling with --disable-shared.
diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 0d5ea9a..b9181d0 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,3 +1,7 @@
+2004-08-28  Hasso Tepper  <hasso at quagga.net>
+
+	* ospf6_main.c: Modify for sigevents.
+
 2004-08-26  Hasso Tepper  <hasso@estpak.ee>
 
 	* ospf6_interface.c, ospf6_top.c, ospf6d.c: for vtysh.
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index 2a0b2dc..b5e6403 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -33,6 +33,7 @@
 #include "prefix.h"
 #include "plist.h"
 #include "privs.h"
+#include "sigevent.h"
 
 #include "ospf6d.h"
 
@@ -119,14 +120,14 @@
 
 /* SIGHUP handler. */
 void 
-sighup (int sig)
+sighup (void)
 {
   zlog_info ("SIGHUP received");
 }
 
 /* SIGINT handler. */
 void
-sigint (int sig)
+sigint (void)
 {
   zlog_info ("SIGINT received");
   exit (0);
@@ -134,7 +135,7 @@
 
 /* SIGTERM handler. */
 void
-sigterm (int sig)
+sigterm (void)
 {
   zlog_info ("SIGTERM received");
   exit (0);
@@ -142,54 +143,31 @@
 
 /* SIGUSR1 handler. */
 void
-sigusr1 (int sig)
+sigusr1 (void)
 {
   zlog_info ("SIGUSR1 received");
   zlog_rotate (NULL);
 }
 
-/* Signale wrapper. */
-RETSIGTYPE *
-signal_set (int signo, void (*func)(int))
+struct quagga_signal_t ospf6_signals[] =
 {
-  int ret;
-  struct sigaction sig;
-  struct sigaction osig;
-
-  sig.sa_handler = func;
-  sigemptyset (&sig.sa_mask);
-  sig.sa_flags = 0;
-#ifdef SA_RESTART
-  sig.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
-
-  ret = sigaction (signo, &sig, &osig);
-
-  if (ret < 0) 
-    return (SIG_ERR);
-  else
-    return (osig.sa_handler);
-}
-
-/* Initialization of signal handles. */
-void
-signal_init ()
-{
-  signal_set (SIGHUP, sighup);
-  signal_set (SIGINT, sigint);
-  signal_set (SIGTERM, sigterm);
-  signal_set (SIGPIPE, SIG_IGN);
-#ifdef SIGTSTP
-  signal_set (SIGTSTP, SIG_IGN);
-#endif
-#ifdef SIGTTIN
-  signal_set (SIGTTIN, SIG_IGN);
-#endif
-#ifdef SIGTTOU
-  signal_set (SIGTTOU, SIG_IGN);
-#endif
-  signal_set (SIGUSR1, sigusr1);
-}
+  {
+    .signal = SIGHUP,
+    .handler = &sighup,
+  },
+  {
+    .signal = SIGINT,
+    .handler = &sigint,
+  },
+  {
+    .signal = SIGTERM,
+    .handler = &sigterm,
+  },
+  {
+    .signal = SIGUSR1,
+    .handler = &sigusr1,
+  },
+};
 
 /* Main routine of ospf6d. Treatment of argument and starting ospf finite
    state machine is handled here. */
@@ -275,7 +253,7 @@
                            LOG_DAEMON);
   zprivs_init (&ospf6d_privs);
   /* initialize zebra libraries */
-  signal_init ();
+  signal_init (master, Q_SIGC(ospf6_signals), ospf6_signals);
   cmd_init (1);
   vty_init (master);
   memory_init ();
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
index aab737b..0dbcb0d 100644
--- a/vtysh/ChangeLog
+++ b/vtysh/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-28 Hasso Tepper <hasso at quagga.net>
+
+	* vtysh_main.c: Rename signal handling functions not to conflict
+	  with functions from lib/sigevent.c.
+
 2004-08-27 Hasso Tepper <hasso at quagga.net>
 
 	* vtysh.c: Make "terminal length <0-512>" command work in vtysh.
diff --git a/vtysh/vtysh_main.c b/vtysh/vtysh_main.c
index e862efd..223f0c6 100644
--- a/vtysh/vtysh_main.c
+++ b/vtysh/vtysh_main.c
@@ -99,9 +99,10 @@
     }
 }
 
-/* Signale wrapper. */
+/* Signale wrapper for vtysh. We don't use sigevent because
+ * vtysh doesn't use threads. TODO */
 RETSIGTYPE *
-signal_set (int signo, void (*func)(int))
+vtysh_signal_set (int signo, void (*func)(int))
 {
   int ret;
   struct sigaction sig;
@@ -124,11 +125,11 @@
 
 /* Initialization of signal handles. */
 void
-signal_init ()
+vtysh_signal_init ()
 {
-  signal_set (SIGINT, sigint);
-  signal_set (SIGTSTP, sigtstp);
-  signal_set (SIGPIPE, SIG_IGN);
+  vtysh_signal_set (SIGINT, sigint);
+  vtysh_signal_set (SIGTSTP, sigtstp);
+  vtysh_signal_set (SIGPIPE, SIG_IGN);
 }
 
 /* Help information display. */
@@ -243,7 +244,7 @@
   line_read = NULL;
 
   /* Signal and others. */
-  signal_init ();
+  vtysh_signal_init ();
 
   /* Make vty structure and register commands. */
   vtysh_init_vty ();