diff --git a/man/ngircd.8.tmpl b/man/ngircd.8.tmpl index d9c0f528..d9657362 100644 --- a/man/ngircd.8.tmpl +++ b/man/ngircd.8.tmpl @@ -53,6 +53,9 @@ Don't fork a child and don't detach from controlling terminal. All log messages go to the console and you can use CTRL-C to terminate the server. .TP +\fB\-y\fR, \fB\-\-syslog\fR +Write log messages to the syslog even when running in the foreground. +.TP \fB\-p\fR, \fB\-\-passive\fR Disable automatic connections to other servers. You can use the IRC command CONNECT later on as IRC Operator to link this ngIRCd to other servers. diff --git a/src/ngircd/log.c b/src/ngircd/log.c index e036b015..dae53f9f 100644 --- a/src/ngircd/log.c +++ b/src/ngircd/log.c @@ -39,13 +39,13 @@ #include "log.h" -static bool Is_Daemon; +static bool Use_Syslog; static void Log_Message(int Level, const char *msg) { - if (!Is_Daemon) { + if (!Use_Syslog) { /* log to console */ fprintf(stdout, "[%ld:%d %4ld] %s\n", (long)getpid(), Level, (long)(time(NULL) - NGIRCd_Start), msg); @@ -63,12 +63,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. + * @param Syslog_Mode Set to true if ngIRCd is configured to log to the syslog. */ GLOBAL void -Log_Init(bool Daemon_Mode) +Log_Init(bool Syslog_Mode) { - Is_Daemon = Daemon_Mode; + Use_Syslog = Syslog_Mode; #ifdef SYSLOG #ifndef LOG_CONS /* Kludge: mips-dec-ultrix4.5 has no LOG_CONS */ diff --git a/src/ngircd/log.h b/src/ngircd/log.h index 85d00d9f..0ac4c4d9 100644 --- a/src/ngircd/log.h +++ b/src/ngircd/log.h @@ -32,7 +32,7 @@ #define LOG_snotice 1024 -GLOBAL void Log_Init PARAMS(( bool Daemon_Mode )); +GLOBAL void Log_Init PARAMS(( bool Syslog_Mode )); GLOBAL void Log_Exit PARAMS(( void )); GLOBAL void Log PARAMS(( int Level, const char *Format, ... )); diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 47f6092e..fd919e34 100644 --- a/src/ngircd/ngircd.c +++ b/src/ngircd/ngircd.c @@ -74,7 +74,7 @@ GLOBAL int main(int argc, const char *argv[]) { bool ok, configtest = false; - bool NGIRCd_NoDaemon = false; + bool NGIRCd_NoDaemon = false, NGIRCd_NoSyslog = false; int i; size_t n; @@ -126,6 +126,7 @@ main(int argc, const char *argv[]) } if (strcmp(argv[i], "--nodaemon") == 0) { NGIRCd_NoDaemon = true; + NGIRCd_NoSyslog = true; ok = true; } if (strcmp(argv[i], "--passive") == 0) { @@ -137,6 +138,12 @@ main(int argc, const char *argv[]) NGIRCd_Sniffer = true; ok = true; } +#endif +#ifdef SYSLOG + if (strcmp(argv[i], "--syslog") == 0) { + NGIRCd_NoSyslog = false; + ok = true; + } #endif if (strcmp(argv[i], "--version") == 0) { Show_Version(); @@ -172,6 +179,7 @@ main(int argc, const char *argv[]) if (argv[i][n] == 'n') { NGIRCd_NoDaemon = true; + NGIRCd_NoSyslog = true; ok = true; } if (argv[i][n] == 'p') { @@ -193,6 +201,12 @@ main(int argc, const char *argv[]) Show_Version(); exit(1); } +#ifdef SYSLOG + if (argv[i][n] == 'y') { + NGIRCd_NoSyslog = false; + ok = true; + } +#endif if (!ok) { fprintf(stderr, @@ -241,7 +255,7 @@ main(int argc, const char *argv[]) NGIRCd_SignalRestart = false; NGIRCd_SignalQuit = false; - Log_Init(!NGIRCd_NoDaemon); + Log_Init(!NGIRCd_NoSyslog); Random_Init(); Conf_Init(); Log_ReInit(); @@ -467,6 +481,9 @@ Show_Help( void ) #endif puts( " -t, --configtest read, validate and display configuration; then exit" ); puts( " -V, --version output version information and exit" ); +#ifdef SYSLOG + puts( " -y, --syslog log to syslog even when running in the foreground (-n)" ); +#endif puts( " -h, --help display this help and exit" ); } /* Show_Help */