Hi Steven,

the patch in attachment fixes the problem reported by Ryan of logfiles
not having newlines and skip an unnecessary if ...

the problem was a misplaced set of () in the output filter check on all
3 destinations that did allow debug to send output even to un-configured
targets.

the check around adding a new line is probably more expensive than just
setting the newline.

Fabio
Index: exec/logsys.c
===================================================================
--- exec/logsys.c	(revision 2100)
+++ exec/logsys.c	(working copy)
@@ -386,27 +386,25 @@
 	/*
 	 * Output to syslog
 	 */
-	if (((logsys_loggers[subsysid].mode & LOGSYS_MODE_OUTPUT_SYSLOG) &&
-	     (level <= logsys_loggers[subsysid].syslog_priority)) || 
-	     (logsys_loggers[subsysid].debug != 0)) {
+	if ((logsys_loggers[subsysid].mode & LOGSYS_MODE_OUTPUT_SYSLOG) &&
+	     ((level <= logsys_loggers[subsysid].syslog_priority) || 
+	     (logsys_loggers[subsysid].debug != 0))) {
 		syslog (level | logsys_loggers[subsysid].syslog_facility, "%s", output_buffer);
 	}
 
 	/*
 	 * Terminate string with \n \0
 	 */
-	if (logsys_loggers[subsysid].mode & (LOGSYS_MODE_OUTPUT_FILE|LOGSYS_MODE_OUTPUT_STDERR)) {
-		output_buffer[output_buffer_idx++] = '\n';
-		output_buffer[output_buffer_idx] = '\0';
-	}
+	output_buffer[output_buffer_idx++] = '\n';
+	output_buffer[output_buffer_idx] = '\0';
 
 	/*
 	 * Output to configured file
 	 */
 	if (((logsys_loggers[subsysid].mode & LOGSYS_MODE_OUTPUT_FILE) &&
-	      logsys_loggers[subsysid].logfile_fp &&
-	     (level <= logsys_loggers[subsysid].logfile_priority)) ||
-	     (logsys_loggers[subsysid].debug != 0)) {
+	     (logsys_loggers[subsysid].logfile_fp != NULL)) &&
+	    ((level <= logsys_loggers[subsysid].logfile_priority) ||
+	     (logsys_loggers[subsysid].debug != 0))) {
 		/*
 		 * Output to a file
 		 */
@@ -436,9 +434,9 @@
 	/*
 	 * Output to stderr
 	 */
-	if (((logsys_loggers[subsysid].mode & LOGSYS_MODE_OUTPUT_STDERR) &&
-	     (level <= logsys_loggers[subsysid].logfile_priority)) ||
-	     (logsys_loggers[subsysid].debug != 0)) {
+	if ((logsys_loggers[subsysid].mode & LOGSYS_MODE_OUTPUT_STDERR) &&
+	     ((level <= logsys_loggers[subsysid].logfile_priority) ||
+	     (logsys_loggers[subsysid].debug != 0))) {
 		if (write (STDERR_FILENO, output_buffer, strlen (output_buffer)) < 0) {
 			char tmpbuffer[1024];
 			/*
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to