Remove newlines at end of log messages.
[tinc] / src / logger.c
index 028cbae..56bee84 100644 (file)
@@ -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: