X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Flogger.c;h=184ba35940c7eebdfd6c9577f3c676fea583fd2f;hb=0b8b23e0dd7219344543f135ca0aeba8a4a42d48;hp=cc47a4a1cbfdedeb05e30b29e9a6dcc5d1cd2ee5;hpb=19be9cf7150858311f7898fa3fb525d692d02f64;p=tinc diff --git a/src/logger.c b/src/logger.c index cc47a4a1..184ba359 100644 --- a/src/logger.c +++ b/src/logger.c @@ -88,6 +88,7 @@ void reopenlogger() { void logger(int level, int priority, const char *format, ...) { va_list ap; + int len; char timestr[32] = ""; char message[1024] = ""; time_t now; @@ -101,9 +102,12 @@ void logger(int level, int priority, const char *format, ...) { return; va_start(ap, format); - vsnprintf(message, sizeof message, format, ap); + len = vsnprintf(message, sizeof message, format, ap); va_end(ap); + if(len > 0 && len < sizeof message && message[len - 1] == '\n') + message[len - 1] = 0; + if(level <= debug_level) { switch(logmode) { case LOGMODE_STDERR: @@ -136,8 +140,7 @@ void logger(int level, int priority, const char *format, ...) { if(logcontrol) { suppress = true; logcontrol = false; - for(splay_node_t *node = connection_tree->head; node; node = node->next) { - connection_t *c = node->data; + for list_each(connection_t, c, connection_list) { if(!c->status.log) continue; logcontrol = true;