]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/sighandlers.c
Streamline DEBUG_ARRAY, DEBUG_BUFFER, DEBUG_IO, DEBUG_ZIP
[ngircd-alex.git] / src / ngircd / sighandlers.c
index efb41bcd8465147ff68fff0f70afcac1452cdba9..5cde24b066af392e125aefa893f15a68b92ccda9 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
+ * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #include <signal.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <time.h>
 
-#include "imp.h"
 #include "conn.h"
-#include "conf-ssl.h"
 #include "channel.h"
 #include "conf.h"
 #include "io.h"
 #include "log.h"
 #include "ngircd.h"
+
 #include "sighandlers.h"
 
 static int signalpipe[2];
@@ -40,7 +41,6 @@ static const int signals_catch[] = {
        SIGINT, SIGQUIT, SIGTERM, SIGHUP, SIGCHLD, SIGUSR1, SIGUSR2
 };
 
-
 #ifdef DEBUG
 
 static void
@@ -57,7 +57,6 @@ Dump_State(void)
 
 #endif
 
-
 static void
 Signal_Block(int sig)
 {
@@ -73,7 +72,6 @@ Signal_Block(int sig)
 #endif
 }
 
-
 static void
 Signal_Unblock(int sig)
 {
@@ -90,7 +88,6 @@ Signal_Unblock(int sig)
 #endif
 }
 
-
 /**
  * Reload the server configuration file.
  */
@@ -102,7 +99,7 @@ Rehash(void)
 
        Log( LOG_NOTICE|LOG_snotice, "Re-reading configuration NOW!" );
 
-       /* Remember old server name and nick name length */
+       /* Remember old server name and nickname length */
        strlcpy( old_name, Conf_ServerName, sizeof old_name );
        old_nicklen = Conf_MaxNickLength;
 
@@ -113,22 +110,25 @@ Rehash(void)
        /* Close down all listening sockets */
        Conn_ExitListeners( );
 
-       /* Recover old server name and nick name length: these values can't
+       /* Recover old server name and nickname length: these values can't
         * be changed during run-time */
        if (strcmp(old_name, Conf_ServerName) != 0 ) {
                strlcpy(Conf_ServerName, old_name, sizeof Conf_ServerName);
-               Log(LOG_ERR, "Can't change \"ServerName\" on runtime! Ignored new name.");
+               Log(LOG_ERR,
+                   "Can't change \"ServerName\" on runtime! Ignored new name.");
        }
        if (old_nicklen != Conf_MaxNickLength) {
                Conf_MaxNickLength = old_nicklen;
-               Log(LOG_ERR, "Can't change \"MaxNickLength\" on runtime! Ignored new value.");
+               Log(LOG_ERR,
+                   "Can't change \"MaxNickLength\" on runtime! Ignored new value.");
        }
 
        /* Create new pre-defined channels */
        Channel_InitPredefined( );
 
        if (!ConnSSL_InitLibrary())
-               Log(LOG_WARNING, "Re-Initializing SSL failed, using old keys");
+               Log(LOG_WARNING,
+                   "Re-Initializing of SSL failed, using old keys!");
 
        /* Start listening on sockets */
        Conn_InitListeners( );
@@ -139,7 +139,6 @@ Rehash(void)
        Log( LOG_NOTICE|LOG_snotice, "Re-reading of configuration done." );
 } /* Rehash */
 
-
 /**
  * Signal handler of ngIRCd.
  * This function is called whenever ngIRCd catches a signal sent by the
@@ -198,7 +197,6 @@ Signal_Handler(int Signal)
                Signal_Block(Signal);
 } /* Signal_Handler */
 
-
 /**
  * Signal processing handler of ngIRCd.
  * This function is called from the main conn event loop in (io_dispatch)
@@ -231,7 +229,6 @@ Signal_Handler_BH(int Signal)
        Signal_Unblock(Signal);
 }
 
-
 static void
 Signal_Callback(int fd, short UNUSED what)
 {
@@ -248,19 +245,19 @@ Signal_Callback(int fd, short UNUSED what)
                if (errno == EAGAIN || errno == EINTR)
                        return;
 
-               Log(LOG_EMERG, "read from signal pipe: %s", strerror(errno));
+               Log(LOG_EMERG, "Read from signal pipe: %s - Exiting!",
+                   strerror(errno));
                exit(1);
        }
 
-       Log(LOG_EMERG, "EOF on signal pipe");
+       Log(LOG_EMERG, "EOF on signal pipe!? - Exiting!");
        exit(1);
 }
 
-
 /**
  * Initialize the signal handlers, catch
  * those signals we are interested in and sets SIGPIPE to be ignored.
- * @return true if initialization was sucessful.
+ * @return true if initialization was successful.
  */
 bool
 Signals_Init(void)
@@ -306,9 +303,8 @@ Signals_Init(void)
        return io_event_create(signalpipe[0], IO_WANTREAD, Signal_Callback);
 } /* Signals_Init */
 
-
 /**
- * Restores signals to their default behaviour.
+ * Restores signals to their default behavior.
  *
  * This should be called after a fork() in the new
  * child prodcess, especially when we are about to call
@@ -334,6 +330,7 @@ Signals_Exit(void)
 #endif
        close(signalpipe[1]);
        close(signalpipe[0]);
+       signalpipe[0] = signalpipe[1] = 0;
 }
 
 /* -eof- */