]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - src/log.c
Fix indentation of LOG() calls.
[tlsproxy/tlsproxy.git] / src / log.c
index e00a08d8aa77f9a2914ce39fee3821c97bd87e97..a791450da0a4bba518ca3a7969e05b786d9cf738 100644 (file)
--- a/src/log.c
+++ b/src/log.c
 #include "tlsproxy.h"
 #include "log.h"
 
-/* va_*() */
-#include <stdarg.h>
-/* pthread_self() */
 #include <pthread.h>
+#include <stdarg.h>
 
 
 void log_message(int level, const char *file, int line, const char *format, ...) {
@@ -47,8 +45,10 @@ void log_message(int level, const char *file, int line, const char *format, ...)
     (void)line;
 #endif
 
-    va_start(ap, format);
-    fprintf(stdout,
+    /* Prevent another thread from interrupting the two printfs(). */
+    flockfile(stderr);
+
+    fprintf(stderr,
 #ifdef DEBUG
             "%-12s:%-3d "
 #endif
@@ -57,7 +57,10 @@ void log_message(int level, const char *file, int line, const char *format, ...)
             file, line,
 #endif
             level_string, (int)pthread_self());
-    vfprintf(stdout, format, ap);
-    fprintf(stdout, "\n");
+    va_start(ap, format);
+    vfprintf(stderr, format, ap);
     va_end(ap);
+    fprintf(stderr, "\n");
+
+    funlockfile(stderr);
 }