From 735ab8daa6d0b11b66032290a8f2ef194dbcbd87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 26 Jan 2019 14:54:04 +0100 Subject: [PATCH] log: always log to both console and syslog --- log.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/log.c b/log.c index f0287e4..ff7346f 100644 --- a/log.c +++ b/log.c @@ -107,28 +107,37 @@ void log_msg(enum log_class log_class, const char *module, const char *file, int lineno, const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - _log(log_class, module, file, lineno, fmt, 0, ap); - va_end(ap); + va_list ap1, ap2; + va_start(ap1, fmt); + va_copy(ap2, ap1); + _log(log_class, module, file, lineno, fmt, 0, ap1); + _sys_log(log_class, module, file, lineno, fmt, 0, ap2); + va_end(ap1); + va_end(ap2); } void log_errno(enum log_class log_class, const char *module, const char *file, int lineno, const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - _log(log_class, module, file, lineno, fmt, errno, ap); - va_end(ap); + va_list ap1, ap2; + va_start(ap1, fmt); + va_copy(ap2, ap1); + _log(log_class, module, file, lineno, fmt, errno, ap1); + _sys_log(log_class, module, file, lineno, fmt, errno, ap2); + va_end(ap1); + va_end(ap2); } void log_errno_provided(enum log_class log_class, const char *module, const char *file, int lineno, int _errno, const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - _log(log_class, module, file, lineno, fmt, _errno, ap); - va_end(ap); + va_list ap1, ap2; + va_start(ap1, fmt); + va_copy(ap2, ap1); + _log(log_class, module, file, lineno, fmt, _errno, ap1); + _sys_log(log_class, module, file, lineno, fmt, _errno, ap2); + va_end(ap1); + va_end(ap2); }