site logging: introduce vslog
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 11 May 2014 17:26:14 +0000 (18:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 15 May 2014 01:02:14 +0000 (02:02 +0100)
No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
site.c

diff --git a/site.c b/site.c
index e8dba87..d65784b 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;
     uint32_t class;
 
     class=event_log_priority(st, event);
     if (class) {
-       va_start(ap,msg);
        slilog_part(st->log,class,"%s: ",st->tunname);
        vslilog_part(st->log,class,msg,ap);
        slilog_part(st->log,class,"\n");
-       va_end(ap);
     }
 }
 
+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,