summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2010-09-24 17:39:11 +0200
committerAlexander Barton <alex@barton.de>2010-09-24 17:39:11 +0200
commit5e82a91d1337b78510bc62fe3c7e43f9c0b7d3d1 (patch)
tree506d3626f965399d89a746999d619ee7635ac632
parent4943bbb066bb49603743ae03846689d2f82441b6 (diff)
downloadngircd-5e82a91d1337b78510bc62fe3c7e43f9c0b7d3d1.tar.gz
ngircd-5e82a91d1337b78510bc62fe3c7e43f9c0b7d3d1.zip
New configuration option "SyslogFacility"
The new option "SyslogFacility" deines the syslog "facility" to which
ngIRCd should send log messages.

Possible values are system dependant, but most probably "auth", "daemon",
"user" and "local1" through "local7" are possible values; see syslog(3).
Default is "local5" for historical reasons.
-rw-r--r--ChangeLog5
-rw-r--r--NEWS5
-rw-r--r--doc/sample-ngircd.conf7
-rw-r--r--man/ngircd.conf.5.tmpl7
-rw-r--r--src/ngircd/conf.c19
-rw-r--r--src/ngircd/conf.h7
-rw-r--r--src/ngircd/log.c10
7 files changed, 54 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 73c84734..4402f068 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,11 @@
 
 ngIRCd Release 17
 
+  - New configuration option "SyslogFacility" to define the syslog "facility"
+    (the "target"), to which ngIRCd should send its log messages.
+    Possible values are system dependant, but most probably "auth", "daemon",
+    "user" and "local1" through "local7" are possible values; see syslog(3).
+    Default is "local5" for historical reasons.
   - Dump the "internal server state" (configured servers, established
     connections and known clients) to the console or syslog when receiving
     the SIGUSR2 signal and debug mode is enabled.
diff --git a/NEWS b/NEWS
index d3a600ce..61e8331e 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,11 @@
 
 ngIRCd Release 17
 
+  - New configuration option "SyslogFacility" to define the syslog "facility"
+    (the "target"), to which ngIRCd should send its log messages.
+    Possible values are system dependant, but most probably "auth", "daemon",
+    "user" and "local1" through "local7" are possible values; see syslog(3).
+    Default is "local5" for historical reasons.
   - Dump the "internal server state" (configured servers, established
     connections and known clients) to the console or syslog when receiving
     the SIGUSR2 signal and debug mode is enabled.
diff --git a/doc/sample-ngircd.conf b/doc/sample-ngircd.conf
index fdeed355..a2694f8d 100644
--- a/doc/sample-ngircd.conf
+++ b/doc/sample-ngircd.conf
@@ -68,6 +68,13 @@
 	# so the server listens on all IP addresses of the system by default.
 	;Listen = 127.0.0.1,192.168.0.1
 
+	# Syslog "facility" to which ngIRCd should send log messages.
+	# Possible values are system dependant, but most probably auth, daemon,
+	# user and local1 through local7 are possible values; see syslog(3).
+	# Default is "local5" for historical reasons, you probably want to
+	# change this to "daemon", for example.
+	SyslogFacility = local1
+
 	# Text file with the "message of the day" (MOTD). This message will
 	# be shown to all users connecting to the server:
 	;MotdFile = /usr/local/etc/ngircd.motd
diff --git a/man/ngircd.conf.5.tmpl b/man/ngircd.conf.5.tmpl
index 71aaa1e0..f4f7f6e6 100644
--- a/man/ngircd.conf.5.tmpl
+++ b/man/ngircd.conf.5.tmpl
@@ -116,6 +116,13 @@ If unset, the defaults value is "0.0.0.0" or, if ngIRCd was compiled
 with IPv6 support, "::,0.0.0.0". So the server listens on all configured
 IP addresses and interfaces by default.
 .TP
+\fBSyslogFacility\fR
+Syslog "facility" to which ngIRCd should send log messages. Possible
+values are system dependant, but most probably "auth", "daemon", "user"
+and "local1" through "local7" are possible values; see syslog(3).
+Default is "local5" for historical reasons, you probably want to
+change this to "daemon", for example.
+.TP
 \fBMotdFile\fR
 Text file with the "message of the day" (MOTD). This message will be shown
 to all users connecting to the server. Changes made to this file
diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c
index 5619a6c7..acb40103 100644
--- a/src/ngircd/conf.c
+++ b/src/ngircd/conf.c
@@ -324,6 +324,10 @@ Conf_Test( void )
 		printf("  ServerGID = %s\n", grp->gr_name);
 	else
 		printf("  ServerGID = %ld\n", (long)Conf_GID);
+#ifdef SYSLOG
+	printf("  SyslogFacility = %s\n",
+	       ngt_SyslogFacilityName(Conf_SyslogFacility));
+#endif
 	printf("  PingTimeout = %d\n", Conf_PingTimeout);
 	printf("  PongTimeout = %d\n", Conf_PongTimeout);
 	printf("  ConnectRetry = %d\n", Conf_ConnectRetry);
@@ -600,6 +604,14 @@ Set_Defaults(bool InitServers)
 	Conf_MaxJoins = 10;
 	Conf_MaxNickLength = CLIENT_NICK_LEN_DEFAULT;
 
+#ifdef SYSLOG
+#ifdef LOG_LOCAL5
+	Conf_SyslogFacility = LOG_LOCAL5;
+#else
+	Conf_SyslogFacility = 0;
+#endif
+#endif
+
 	/* Initialize server configuration structures */
 	if (InitServers) {
 		for (i = 0; i < MAX_SERVERS;
@@ -1148,6 +1160,13 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                 return;
         }
 #endif
+#ifdef SYSLOG
+	if (strcasecmp(Var, "SyslogFacility") == 0) {
+		Conf_SyslogFacility = ngt_SyslogFacilityID(Arg,
+							   Conf_SyslogFacility);
+		return;
+	}
+#endif
 	Config_Error(LOG_ERR, "%s, line %d (section \"Global\"): Unknown variable \"%s\"!",
 								NGIRCd_ConfFile, Line, Var);
 } /* Handle_GLOBAL */
diff --git a/src/ngircd/conf.h b/src/ngircd/conf.h
index 5cf5f6b1..ff67dc79 100644
--- a/src/ngircd/conf.h
+++ b/src/ngircd/conf.h
@@ -173,6 +173,13 @@ GLOBAL int Conf_MaxConnectionsIP;
 /* Maximum length of a nick name */
 GLOBAL unsigned int Conf_MaxNickLength;
 
+#ifdef SYSLOG
+
+/* Syslog "facility" */
+GLOBAL int Conf_SyslogFacility;
+
+#endif
+
 GLOBAL void Conf_Init PARAMS((void));
 GLOBAL bool Conf_Rehash PARAMS((void));
 GLOBAL int Conf_Test PARAMS((void));
diff --git a/src/ngircd/log.c b/src/ngircd/log.c
index 0cfe3b71..3710142d 100644
--- a/src/ngircd/log.c
+++ b/src/ngircd/log.c
@@ -36,6 +36,7 @@
 #include "conn.h"
 #include "channel.h"
 #include "irc-write.h"
+#include "conf.h"
 
 #include "exp.h"
 #include "log.h"
@@ -72,13 +73,10 @@ Log_Init( bool Daemon_Mode )
 	Is_Daemon = Daemon_Mode;
 	
 #ifdef SYSLOG
-#ifndef LOG_CONS     /* Kludge: mips-dec-ultrix4.5 has no LOG_CONS/LOG_LOCAL5 */
+#ifndef LOG_CONS     /* Kludge: mips-dec-ultrix4.5 has no LOG_CONS */
 #define LOG_CONS 0
 #endif
-#ifndef LOG_LOCAL5
-#define LOG_LOCAL5 0
-#endif
-	openlog( PACKAGE_NAME, LOG_CONS|LOG_PID, LOG_LOCAL5 );
+	openlog(PACKAGE_NAME, LOG_CONS|LOG_PID, Conf_SyslogFacility);
 #endif
 
 	Log( LOG_NOTICE, "%s started.", NGIRCd_Version );
@@ -267,7 +265,7 @@ GLOBAL void
 Log_Init_Subprocess(char UNUSED *Name)
 {
 #ifdef SYSLOG
-	openlog( PACKAGE_NAME, LOG_CONS|LOG_PID, LOG_LOCAL5 );
+	openlog(PACKAGE_NAME, LOG_CONS|LOG_PID, Conf_SyslogFacility);
 #endif
 #ifdef DEBUG
 	Log_Subprocess(LOG_DEBUG, "%s sub-process starting, PID %ld.",