/*
* 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];
SIGINT, SIGQUIT, SIGTERM, SIGHUP, SIGCHLD, SIGUSR1, SIGUSR2
};
-
#ifdef DEBUG
static void
#endif
-
static void
Signal_Block(int sig)
{
#endif
}
-
static void
Signal_Unblock(int sig)
{
#endif
}
-
/**
* Reload the server configuration file.
*/
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;
/* 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( );
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
Signal_Block(Signal);
} /* Signal_Handler */
-
/**
* Signal processing handler of ngIRCd.
* This function is called from the main conn event loop in (io_dispatch)
Signal_Unblock(Signal);
}
-
static void
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)
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