chiark / gitweb /
comm: Introduce comm_addr_to_string
[secnet.git] / site.c
diff --git a/site.c b/site.c
index e8dba8734861280a200b71c0aeb5653ecc01dc96..1d8c77788d532968f8cae245450fa16e2be46f3f 100644 (file)
--- a/site.c
+++ b/site.c
@@ -319,23 +319,40 @@ 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 logtimeout(struct site *st, const char *fmt, ...)
+FORMAT(printf,2,3);
+static void logtimeout(struct site *st, const char *fmt, ...)
+{
+    va_list ap;
+    va_start(ap,fmt);
+    vslog(st,LOG_SETUP_TIMEOUT,fmt,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,
@@ -1082,7 +1099,7 @@ static bool_t send_msg(struct site *st)
        st->retries--;
        return True;
     } else if (st->state==SITE_SENTMSG5) {
-       slog(st,LOG_SETUP_TIMEOUT,"timed out sending MSG5, stashing new key");
+       logtimeout(st,"timed out sending MSG5, stashing new key");
        /* We stash the key we have produced, in case it turns out that
         * our peer did see our MSG5 after all and starts using it. */
        /* This is a bit like some of activate_new_key */
@@ -1100,7 +1117,7 @@ static bool_t send_msg(struct site *st)
        enter_state_wait(st);
        return False;
     } else {
-       slog(st,LOG_SETUP_TIMEOUT,"timed out sending key setup packet "
+       logtimeout(st,"timed out sending key setup packet "
            "(in state %s)",state_name(st->state));
        enter_state_wait(st);
        return False;
@@ -1916,14 +1933,14 @@ static void transport_peers_debug(struct site *st, transport_peers *dst,
         i++, (argp+=stride?stride:sizeof(*args))) {
        const struct comm_addr *ca=(void*)argp;
        slog(st, LOG_PEER_ADDRS, " args: addrs[%d]=%s",
-            i, ca->comm->addr_to_string(ca->comm->st,ca));
+            i, comm_addr_to_string(ca));
     }
     for (i=0; i<dst->npeers; i++) {
        struct timeval diff;
        timersub(tv_now,&dst->peers[i].last,&diff);
        const struct comm_addr *ca=&dst->peers[i].addr;
        slog(st, LOG_PEER_ADDRS, " peers: addrs[%d]=%s T-%ld.%06ld",
-            i, ca->comm->addr_to_string(ca->comm->st,ca),
+            i, comm_addr_to_string(ca),
             (unsigned long)diff.tv_sec, (unsigned long)diff.tv_usec);
     }
 }