]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - src/log.c
verify.c: Increase buffer size for server certificates.
[tlsproxy/tlsproxy.git] / src / log.c
index 5d05e4addf461c05f5cdae8302e2037cd2badd17..05acddfc8b98b5d8fcb37f89f1974b47d32c59b1 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, ...) {
@@ -41,15 +39,28 @@ void log_message(int level, const char *file, int line, const char *format, ...)
         default:                level_string = "UNKNOWN";
     }
 
-    va_start(ap, format);
-#ifdef DEBUG
-    fprintf(stdout, "%-12s:%-3d ", file, line);
-#else
+#ifndef DEBUG
+    /* Prevent warnings. */
     (void)file;
     (void)line;
 #endif
-    fprintf(stdout, "[%s] [%d] ", level_string, (int)pthread_self());
+
+    /* Prevent another thread from interrupting the two printfs(). */
+    flockfile(stdout);
+
+    fprintf(stdout,
+#ifdef DEBUG
+            "%-12s:%-3d "
+#endif
+            "[%s] [%d] ",
+#ifdef DEBUG
+            file, line,
+#endif
+            level_string, (int)pthread_self());
+    va_start(ap, format);
     vfprintf(stdout, format, ap);
-    fprintf(stdout, "\n");
     va_end(ap);
+    fprintf(stdout, "\n");
+
+    funlockfile(stdout);
 }