]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Correctly re-open syslog logging after reading of configuration
authorAlexander Barton <alex@barton.de>
Tue, 14 Feb 2012 10:01:13 +0000 (11:01 +0100)
committerAlexander Barton <alex@barton.de>
Tue, 14 Feb 2012 10:01:13 +0000 (11:01 +0100)
Syslog logging has been initialized before reading the configuraton
file, so ngIRCd always used the default facility and ignored the
"SyslogFacility" configuration option.

Thanks to Patrik Schindler for reporting this issue!

src/ngircd/log.c
src/ngircd/log.h
src/ngircd/ngircd.c

index 80b2c056001daeb518012a8ce59782ff8e619eac..d81bec2496a8c966b1771926564f26bcf404a2a8 100644 (file)
@@ -64,6 +64,12 @@ Log_Message(int Level, const char *msg)
 }
 
 
+/**
+ * Initialitze logging.
+ * This function is called before the configuration file is read in.
+ *
+ * @param Daemon_Mode Set to true if ngIRCd is running as daemon.
+ */
 GLOBAL void
 Log_Init(bool Daemon_Mode)
 {
@@ -80,6 +86,23 @@ Log_Init(bool Daemon_Mode)
 } /* Log_Init */
 
 
+/**
+ * Re-init logging after reading the configuration file.
+ */
+GLOBAL void
+Log_ReInit(void)
+{
+#ifdef SYSLOG
+#ifndef LOG_CONS     /* Kludge: mips-dec-ultrix4.5 has no LOG_CONS */
+#define LOG_CONS 0
+#endif
+       closelog();
+       openlog(PACKAGE_NAME, LOG_CONS|LOG_PID, Conf_SyslogFacility);
+#endif
+       Log(LOG_NOTICE, "%s started.", NGIRCd_Version);
+}
+
+
 GLOBAL void
 Log_Exit( void )
 {
index 5222b5d29ba7afb1c34868d2831fcb422de4579e..f582e6c85bcda40f9f7524b286311e4bb5f277f8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2010 Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2012 Alexander Barton (alex@barton.de)
  *
  * 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
@@ -36,6 +36,7 @@ GLOBAL void Log_Init PARAMS(( bool Daemon_Mode ));
 GLOBAL void Log_Exit PARAMS(( void ));
 
 GLOBAL void Log PARAMS(( int Level, const char *Format, ... ));
+GLOBAL void Log_ReInit PARAMS((void));
 
 GLOBAL void Log_ServerNotice PARAMS((char UserMode, const char *Format, ...));
 
index 874dfa3f6bb7de2ae9a8bc632a7a65f8ce58b38e..60d15a1f8a7be1afe807d192f52223e4dffac50a 100644 (file)
@@ -255,11 +255,11 @@ main(int argc, const char *argv[])
                NGIRCd_SignalRestart = false;
                NGIRCd_SignalQuit = false;
 
-               Random_Init();
-
                /* Initialize modules, part I */
                Log_Init(!NGIRCd_NoDaemon);
+               Random_Init();
                Conf_Init();
+               Log_ReInit();
 
                /* Initialize the "main program": chroot environment, user and
                 * group ID, ... */