chiark / gitweb /
site logging: introduce vslog
[secnet.git] / site.c
diff --git a/site.c b/site.c
index c2dd9d2e241bba3f9a14802224b7152e71841078..d65784bf9c926a2e4d7b422fc98933f11010f22b 100644 (file)
--- a/site.c
+++ b/site.c
@@ -319,23 +319,30 @@ static uint32_t event_log_priority(struct site *st, uint32_t event)
     }
 }
 
-static void slog(struct site *st, uint32_t event, cstring_t msg, ...)
-FORMAT(printf,3,4);
-static void slog(struct site *st, uint32_t event, cstring_t msg, ...)
+static void vslog(struct site *st, uint32_t event, cstring_t msg, va_list ap)
+FORMAT(printf,3,0);
+static void vslog(struct site *st, uint32_t event, cstring_t msg, va_list ap)
 {
-    va_list ap;
-    char buf[240];
     uint32_t class;
 
     class=event_log_priority(st, event);
     if (class) {
-       va_start(ap,msg);
-       vsnprintf(buf,sizeof(buf),msg,ap);
-       slilog(st->log,class,"%s: %s",st->tunname,buf);
-       va_end(ap);
+       slilog_part(st->log,class,"%s: ",st->tunname);
+       vslilog_part(st->log,class,msg,ap);
+       slilog_part(st->log,class,"\n");
     }
 }
 
+static void slog(struct site *st, uint32_t event, cstring_t msg, ...)
+FORMAT(printf,3,4);
+static void slog(struct site *st, uint32_t event, cstring_t msg, ...)
+{
+    va_list ap;
+    va_start(ap,msg);
+    vslog(st,event,msg,ap);
+    va_end(ap);
+}
+
 static void set_link_quality(struct site *st);
 static void delete_keys(struct site *st, cstring_t reason, uint32_t loglevel);
 static void delete_one_key(struct site *st, struct data_key *key,