From 09b3dd4093b8a5413b4347bfb3d2943562b1051e Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 1 Apr 2008 08:03:00 +0000
Subject: [PATCH] Replace \r and \n with spaces in syslog() output.

---
 src/sbbs3/sexyz.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c
index 7060228e37..a923ff2730 100644
--- a/src/sbbs3/sexyz.c
+++ b/src/sbbs3/sexyz.c
@@ -164,6 +164,7 @@ static BOOL winsock_startup(void)
 static int lputs(void* unused, int level, const char* str)
 {
 	FILE*	fp=statfp;
+	int		ret;
 
 #if defined(_WIN32) && defined(_DEBUG)
 	if(log_level==LOG_DEBUG)
@@ -173,11 +174,6 @@ static int lputs(void* unused, int level, const char* str)
 	if(level>log_level)
 		return 0;
 
-#if defined(__unix__)
-	if(use_syslog)
-		syslog(level,"%s",str);
-#endif
-
     if(level<LOG_NOTICE)
 		fp=errfp;
 
@@ -186,9 +182,24 @@ static int lputs(void* unused, int level, const char* str)
 		newline=TRUE;
 	}
 	if(level<LOG_NOTICE)
-		return fprintf(fp,"!%s\n",str);
+		ret=fprintf(fp,"!%s\n",str);
 	else
-		return fprintf(fp,"%s\n",str);
+		ret=fprintf(fp,"%s\n",str);
+
+#if defined(__unix__)
+	if(use_syslog) {
+		char*	msg;
+		char*	p;
+		if((msg=strdup(str))!=NULL) {
+			REPLACE_CHARS(msg,'\r',' ',p);
+			REPLACE_CHARS(msg,'\n',' ',p);
+			syslog(level,"%s",msg);
+			free(msg);
+		}
+	}
+#endif
+
+	return ret;
 }
 
 static int lprintf(int level, const char *fmt, ...)
-- 
GitLab