X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=site.c;h=1d8c77788d532968f8cae245450fa16e2be46f3f;hb=1a448682f9a56b3e33e24fc07767a07e40feaec7;hp=c2dd9d2e241bba3f9a14802224b7152e71841078;hpb=8368df34a6dc7aefae44459cefae1178e58f8dae;p=secnet.git diff --git a/site.c b/site.c index c2dd9d2..1d8c777 100644 --- 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; - 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 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; inpeers; 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); } }