aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2014-05-14 17:19:41 +0200
committerTobias Brunner <tobias@strongswan.org>2014-05-15 11:28:10 +0200
commitc976cc7d33d6c3aeeb6e2a8a82c10401f629f93c (patch)
treea44c96aa3215533cf3ceb24000c2c46a53b7b179
parent4b670a20a9ee0ac5efd806ff804e75fe00509826 (diff)
downloadstrongswan-c976cc7d33d6c3aeeb6e2a8a82c10401f629f93c.tar.bz2
strongswan-c976cc7d33d6c3aeeb6e2a8a82c10401f629f93c.tar.xz
parser-helper: Make parser_helper_log a function
-rw-r--r--src/libstrongswan/utils/parser_helper.c27
-rw-r--r--src/libstrongswan/utils/parser_helper.h10
2 files changed, 28 insertions, 9 deletions
diff --git a/src/libstrongswan/utils/parser_helper.c b/src/libstrongswan/utils/parser_helper.c
index 509316665..403cca92b 100644
--- a/src/libstrongswan/utils/parser_helper.c
+++ b/src/libstrongswan/utils/parser_helper.c
@@ -15,6 +15,7 @@
#include <limits.h>
#include <ctype.h>
+#include <stdarg.h>
#include "parser_helper.h"
@@ -199,6 +200,32 @@ METHOD(parser_helper_t, destroy, void,
/**
* Described in header
*/
+void parser_helper_log(int level, parser_helper_t *ctx, char *fmt, ...)
+{
+ parser_helper_file_t *file;
+ char msg[8192];
+ va_list args;
+ int line;
+
+ va_start(args, fmt);
+ vsnprintf(msg, sizeof(msg), fmt, args);
+ va_end(args);
+
+ file = ctx->file_current(ctx);
+ line = ctx->get_lineno ? ctx->get_lineno(ctx->scanner) : 0;
+ if (file)
+ {
+ dbg(DBG_CFG, level, "%s:%d: %s", file->name, line, msg);
+ }
+ else
+ {
+ dbg(DBG_CFG, level, "%s", msg);
+ }
+}
+
+/**
+ * Described in header
+ */
parser_helper_t *parser_helper_create(void *context)
{
private_parser_helper_t *this;
diff --git a/src/libstrongswan/utils/parser_helper.h b/src/libstrongswan/utils/parser_helper.h
index 741582d2c..6a2c26c8e 100644
--- a/src/libstrongswan/utils/parser_helper.h
+++ b/src/libstrongswan/utils/parser_helper.h
@@ -148,15 +148,7 @@ struct parser_helper_file_t {
* @param fmt error message format
* @param ... additional arguments
*/
-#define parser_helper_log(level, ctx, fmt, ...) ({ \
- parser_helper_file_t *_file = (ctx)->file_current(ctx); \
- int _line = (ctx)->get_lineno ? (ctx)->get_lineno((ctx)->scanner) : 0; \
- if (_file) {\
- DBG##level(DBG_CFG, "%s:%d: " fmt, _file->name, _line, ##__VA_ARGS__); \
- } else { \
- DBG##level(DBG_CFG, fmt, ##__VA_ARGS__); \
- } \
-})
+void parser_helper_log(int level, parser_helper_t *ctx, char *fmt, ...);
#define PARSER_DBG1(ctx, fmt, ...) parser_helper_log(1, ctx, fmt, ##__VA_ARGS__)
#define PARSER_DBG2(ctx, fmt, ...) parser_helper_log(2, ctx, fmt, ##__VA_ARGS__)