--- include/proto/log.h | 12 ++++++++++++ src/log.c | 35 ++++++++++++++++++++++++++++------- 2 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/include/proto/log.h b/include/proto/log.h index f2ecf0b..45bec88 100644 --- a/include/proto/log.h +++ b/include/proto/log.h @@ -25,6 +25,7 @@ #include <stdio.h> #include <syslog.h> +#include <stdarg.h> #include <common/config.h> #include <common/memory.h> @@ -38,12 +39,23 @@ extern struct pool_head *pool2_requri; * Displays the message on stderr with the date and pid. Overrides the quiet * mode during startup. */ +void vAlert(const char *fmt, va_list argp); + +/* + * Displays the message on stderr with the date and pid. Overrides the quiet + * mode during startup. + */ void Alert(const char *fmt, ...) __attribute__ ((format(printf, 1, 2))); /* * Displays the message on stderr with the date and pid. */ +void vWarning(const char *fmt, va_list argp); + +/* + * Displays the message on stderr with the date and pid. + */ void Warning(const char *fmt, ...) __attribute__ ((format(printf, 1, 2))); diff --git a/src/log.c b/src/log.c index 119536c..4cd3b55 100644 --- a/src/log.c +++ b/src/log.c @@ -91,6 +91,17 @@ static void __Alert(int send_log, const char *fmt, va_list argp) * with a priority of LOG_ERR. * Overrides the quiet mode during startup. */ +void vAlert(const char *fmt, va_list argp) +{ + __Alert(1, fmt, argp); +} + +/* + * Displays the message on stderr with the date and pid. + * Also logs the same message using the prevailing logger, if any, + * with a priority of LOG_ERR. + * Overrides the quiet mode during startup. + */ void Alert(const char *fmt, ...) { va_list argp; @@ -116,27 +127,37 @@ static void Alert_no_send_log(const char *fmt, ...) /* * Displays the message on stderr with the date and pid. */ -void Warning(const char *fmt, ...) +void vWarning(const char *fmt, va_list argp) { - va_list argp; + va_list argp2; struct tm tm; if (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) { - va_start(argp, fmt); - vsend_log(NULL, LOG_WARNING, fmt, argp); - va_end(argp); + va_copy(argp2, argp); + vsend_log(NULL, LOG_WARNING, fmt, argp2); + va_end(argp2); - va_start(argp, fmt); get_localtime(date.tv_sec, &tm); fprintf(stderr, "[WARNING] %03d/%02d%02d%02d (%d) : ", tm.tm_yday, tm.tm_hour, tm.tm_min, tm.tm_sec, (int)getpid()); vfprintf(stderr, fmt, argp); fflush(stderr); - va_end(argp); } } /* + * Displays the message on stderr with the date and pid. + */ +void Warning(const char *fmt, ...) +{ + va_list argp; + + va_start(argp, fmt); + vWarning(fmt, argp); + va_end(argp); +} + +/* * Displays the message on <out> only if quiet mode is not set. */ void qfprintf(FILE *out, const char *fmt, ...) -- 1.7.2.3