X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Flogger.c;h=e0a42d5b826098153753576fbf9b8afa7d43002c;hb=d917c8cb6b69475d568ccbe82389b9f2b3eb5e80;hp=028cbaef804ba053e285dc4d37b7716ac2d87f51;hpb=8ac096b5bf9da1b3961a3ac4a03d083629222a63;p=tinc diff --git a/src/logger.c b/src/logger.c index 028cbaef..e0a42d5b 100644 --- a/src/logger.c +++ b/src/logger.c @@ -40,7 +40,7 @@ bool logcontrol = false; void openlogger(const char *ident, logmode_t mode) { logident = ident; logmode = mode; - + switch(mode) { case LOGMODE_STDERR: logpid = getpid(); @@ -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,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;