X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Flogger.c;h=5de88bdeb5a9321eb09bd3182904de80ec54f0a3;hp=028cbaef804ba053e285dc4d37b7716ac2d87f51;hb=ff306f0cdaedb50de1472e7c1fb55de922a6ca60;hpb=8ac096b5bf9da1b3961a3ac4a03d083629222a63 diff --git a/src/logger.c b/src/logger.c index 028cbaef..5de88bde 100644 --- a/src/logger.c +++ b/src/logger.c @@ -79,7 +79,7 @@ void reopenlogger() { fflush(logfile); FILE *newfile = fopen(logfilename, "a"); if(!newfile) { - logger(DEBUG_ALWAYS, LOG_ERR, "Unable to reopen log file %s: %s\n", logfilename, strerror(errno)); + logger(DEBUG_ALWAYS, LOG_ERR, "Unable to reopen log file %s: %s", logfilename, strerror(errno)); return; } fclose(logfile); @@ -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;