X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Flogger.c;h=5de88bdeb5a9321eb09bd3182904de80ec54f0a3;hp=cc47a4a1cbfdedeb05e30b29e9a6dcc5d1cd2ee5;hb=ff306f0cdaedb50de1472e7c1fb55de922a6ca60;hpb=19be9cf7150858311f7898fa3fb525d692d02f64 diff --git a/src/logger.c b/src/logger.c index cc47a4a1..5de88bde 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,7 +140,8 @@ 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) { + for(list_node_t *node = connection_list->head, *next; node; node = next) { + next = node->next; connection_t *c = node->data; if(!c->status.log) continue;