Browse code

print warnings and errors in single call to write

git-svn: trunk@1584

Tomasz Kojm authored on 2005/05/26 10:51:21
Showing 2 changed files
... ...
@@ -1,3 +1,8 @@
1
+Thu May 26 03:20:44 CEST 2005 (tk)
2
+----------------------------------
3
+  * libclamav/others.c: print warnings and errors in single call to write
4
+			(thanks to Denis Vlasenko <vda*ilport.com.ua>)
5
+
1 6
 Wed May 25 20:41:40 BST 2005 (njh)
2 7
 ----------------------------------
3 8
   * clamav-milter:	When not in external mode, TEMPFAIL when loading a new
... ...
@@ -80,38 +80,51 @@ short cli_debug_flag = 0, cli_leavetemps_flag = 0;
80 80
 
81 81
 static unsigned char name_salt[16] = { 16, 38, 97, 12, 8, 4, 72, 196, 217, 144, 33, 124, 18, 11, 17, 253 };
82 82
 
83
+
83 84
 void cli_warnmsg(const char *str, ...)
84 85
 {
85 86
 	va_list args;
87
+	int sz = sizeof("LibClamAV Warning: ") - 1;
88
+	char buff[256];
86 89
 
90
+    strncpy(buff, "LibClamAV Warning: ", sz);
87 91
     va_start(args, str);
88
-    fprintf(stderr, "LibClamAV Warning: ");
89
-    vfprintf(stderr, str, args);
92
+    vsnprintf(buff + sz, sizeof(buff) - sz, str, args);
93
+    buff[sizeof(buff) - 1] = '\0';
94
+    fputs(buff, stderr);
90 95
     va_end(args);
91 96
 }
92 97
 
93 98
 void cli_errmsg(const char *str, ...)
94 99
 {
95 100
 	va_list args;
101
+	int sz = sizeof("LibClamAV Error: ") - 1;
102
+	char buff[256];
96 103
 
104
+    strncpy(buff, "LibClamAV Error: ", sz);
97 105
     va_start(args, str);
98
-    fprintf(stderr, "LibClamAV Error: ");
99
-    vfprintf(stderr, str, args);
106
+    vsnprintf(buff + sz, sizeof(buff) - sz, str, args);
107
+    buff[sizeof(buff) - 1] = '\0';
108
+    fputs(buff, stderr);
100 109
     va_end(args);
101 110
 }
102 111
 
103 112
 void cli_dbgmsg(const char *str, ...)
104 113
 {
105
-	va_list args;
106 114
 
107 115
     if(cli_debug_flag) {
116
+	    va_list args;
117
+	    int sz = sizeof("LibClamAV debug: ") - 1;
118
+	    char buff[256];
119
+
120
+	memcpy(buff, "LibClamAV debug: ", sz);
108 121
 	va_start(args, str);
109
-	fprintf(stderr, "LibClamAV debug: ");
110
-	vfprintf(stderr, str, args);
122
+	vsnprintf(buff + sz, sizeof(buff) - sz, str, args);
123
+	buff[sizeof(buff) - 1] = '\0';
124
+	fputs(buff, stderr);
111 125
 	va_end(args);
112 126
     } else
113 127
 	return;
114
-
115 128
 }
116 129
 
117 130
 void cl_debug(void)