diff options
| author | Alexander Barton <alex@barton.de> | 2023-09-17 21:37:45 +0200 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2023-09-17 21:37:45 +0200 |
| commit | 8fdb8f90b1756520f173a0dc11a2320cb63c0a4e (patch) | |
| tree | ca15f9f8d07938c65e5c1564fda70ef828040bb5 | |
| parent | a106d18d7d4b33e1dc93367f9f0c0181003c4e74 (diff) | |
| parent | dc412a450ef14b424f8e581c933663d9bcf9ebcc (diff) | |
| download | ngircd-8fdb8f90b1756520f173a0dc11a2320cb63c0a4e.tar.gz ngircd-8fdb8f90b1756520f173a0dc11a2320cb63c0a4e.zip | |
Merge branch 'katp32/master'
Thanks Katherine Peeters for the patch and pull request! Closes #294. * katp32/master: Improve documentation for --syslog Added command line flag to enable syslog Split NoSyslog from behaviour of NoDaemon
| -rw-r--r-- | man/ngircd.8.tmpl | 3 | ||||
| -rw-r--r-- | src/ngircd/log.c | 10 | ||||
| -rw-r--r-- | src/ngircd/log.h | 2 | ||||
| -rw-r--r-- | src/ngircd/ngircd.c | 21 |
4 files changed, 28 insertions, 8 deletions
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) { @@ -138,6 +139,12 @@ main(int argc, const char *argv[]) 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(); exit(0); @@ -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 */ |