From 17f018e2cfc08146f427b82740c686f4a5024272 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Fri, 28 May 2010 14:58:08 +0200 Subject: * debug.c (debugerrno): New function. (debugerrnox): New function. * radsecproxy.c: Use debugerrno() and debugerrnox() when appropriate. --- debug.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'debug.c') diff --git a/debug.c b/debug.c index b8c7ed1..a01c2dc 100644 --- a/debug.c +++ b/debug.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "debug.h" #include "util.h" @@ -178,6 +179,33 @@ void debugx(int status, uint8_t level, char *format, ...) { exit(status); } +void debugerrno(int err, uint8_t level, char *format, ...) { + if (level >= debug_level) { + va_list ap; + size_t len = strlen(format); + char *tmp = malloc(len + 1024 + 2); + assert(tmp); + strcpy(tmp, format); + tmp[len++] = ':'; + tmp[len++] = ' '; + if (strerror_r(err, tmp + len, 1024)) + tmp = format; + va_start(ap, format); + debug_logit(level, tmp, ap); + va_end(ap); + } +} + +void debugerrnox(int err, uint8_t level, char *format, ...) { + if (level >= debug_level) { + va_list ap; + va_start(ap, format); + debugerrno(err, level, format, ap); + va_end(ap); + } + exit(err); +} + /* Local Variables: */ /* c-file-style: "stroustrup" */ /* End: */ -- cgit v1.1