Adding support for debug groups in libstrongswan's logger.
authorTobias Brunner <tobias@strongswan.org>
Wed, 31 Mar 2010 15:26:39 +0000 (17:26 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 6 Apr 2010 10:47:40 +0000 (12:47 +0200)
src/charon/charon.c
src/libcharon/daemon.c
src/libstrongswan/debug.c
src/libstrongswan/debug.h
src/pluto/log.c

index 888eb1b..9b552fb 100644 (file)
 /**
  * hook in library for debugging messages
  */
-extern void (*dbg) (int level, char *fmt, ...);
+extern void (*dbg) (debug_t group, level_t level, char *fmt, ...);
 
 /**
  * Logging hook for library logs, using stderr output
  */
-static void dbg_stderr(int level, char *fmt, ...)
+static void dbg_stderr(debug_t group, level_t level, char *fmt, ...)
 {
        va_list args;
 
        if (level <= 1)
        {
                va_start(args, fmt);
-               fprintf(stderr, "00[LIB] ");
+               fprintf(stderr, "00[%N] ", debug_names, group);
                vfprintf(stderr, fmt, args);
                fprintf(stderr, "\n");
                va_end(args);
@@ -284,14 +284,14 @@ int main(int argc, char *argv[])
        if (lib->integrity &&
                !lib->integrity->check_file(lib->integrity, "charon", argv[0]))
        {
-               dbg_stderr(1, "integrity check of charon failed");
+               dbg_stderr(DBG_DMN, 1, "integrity check of charon failed");
                library_deinit();
                exit(SS_RC_DAEMON_INTEGRITY);
        }
 
        if (!libhydra_init("charon"))
        {
-               dbg_stderr(1, "initialization failed - aborting charon");
+               dbg_stderr(DBG_DMN, 1, "initialization failed - aborting charon");
                libhydra_deinit();
                library_deinit();
                exit(SS_RC_INITIALIZATION_FAILED);
@@ -299,7 +299,7 @@ int main(int argc, char *argv[])
 
        if (!libcharon_init())
        {
-               dbg_stderr(1, "initialization failed - aborting charon");
+               dbg_stderr(DBG_DMN, 1, "initialization failed - aborting charon");
                goto deinit;
        }
 
@@ -358,7 +358,7 @@ int main(int argc, char *argv[])
 
        if (!lookup_uid_gid())
        {
-               dbg_stderr(1, "invalid uid/gid - aborting charon");
+               dbg_stderr(DBG_DMN, 1, "invalid uid/gid - aborting charon");
                goto deinit;
        }
 
index 3b8c8e6..11c94be 100644 (file)
@@ -62,22 +62,22 @@ daemon_t *charon;
 /**
  * hook in library for debugging messages
  */
-extern void (*dbg) (int level, char *fmt, ...);
+extern void (*dbg) (debug_t group, level_t level, char *fmt, ...);
 
 /**
  * we store the previous debug function so we can reset it
  */
-static void (*dbg_old) (int level, char *fmt, ...);
+static void (*dbg_old) (debug_t group, level_t level, char *fmt, ...);
 
 /**
  * Logging hook for library logs, spreads debug message over bus
  */
-static void dbg_bus(int level, char *fmt, ...)
+static void dbg_bus(debug_t group, level_t level, char *fmt, ...)
 {
        va_list args;
 
        va_start(args, fmt);
-       charon->bus->vlog(charon->bus, DBG_LIB, level, fmt, args);
+       charon->bus->vlog(charon->bus, group, level, fmt, args);
        va_end(args);
 }
 
@@ -435,7 +435,7 @@ bool libcharon_init()
        if (lib->integrity &&
                !lib->integrity->check(lib->integrity, "libcharon", libcharon_init))
        {
-               dbg(1, "integrity check of libcharon failed");
+               dbg(DBG_DMN, 1, "integrity check of libcharon failed");
                return FALSE;
        }
 
index d098259..21a7e63 100644 (file)
@@ -46,7 +46,7 @@ ENUM(debug_lower_names, DBG_DMN, DBG_LIB,
 /**
  * level logged by the default logger
  */
-static int default_level = 1;
+static level_t default_level = 1;
 
 /**
  * stream logged to by the default logger
@@ -56,7 +56,7 @@ static FILE *default_stream = NULL;
 /**
  * default dbg function which printf all to stderr
  */
-void dbg_default(int level, char *fmt, ...)
+void dbg_default(debug_t group, level_t level, char *fmt, ...)
 {
        if (!default_stream)
        {
@@ -76,7 +76,7 @@ void dbg_default(int level, char *fmt, ...)
 /**
  * set the level logged by the default stderr logger
  */
-void dbg_default_set_level(int level)
+void dbg_default_set_level(level_t level)
 {
        default_level = level;
 }
@@ -92,5 +92,5 @@ void dbg_default_set_stream(FILE *stream)
 /**
  * The registered debug hook.
  */
-void (*dbg) (int level, char *fmt, ...) = dbg_default;
+void (*dbg) (debug_t group, level_t level, char *fmt, ...) = dbg_default;
 
index b0d820f..9794f7e 100644 (file)
@@ -91,17 +91,20 @@ enum level_t {
 #endif /* DEBUG_LEVEL */
 
 /** debug macros, they call the dbg function hook */
+#if DEBUG_LEVEL >= 0
+# define DBG0(group, fmt, ...) dbg(group, 0, fmt, ##__VA_ARGS__)
+#endif /* DEBUG_LEVEL */
 #if DEBUG_LEVEL >= 1
-# define DBG1(fmt, ...) dbg(1, fmt, ##__VA_ARGS__)
+# define DBG1(group, fmt, ...) dbg(group, 1, fmt, ##__VA_ARGS__)
 #endif /* DEBUG_LEVEL */
 #if DEBUG_LEVEL >= 2
-# define DBG2(fmt, ...) dbg(2, fmt, ##__VA_ARGS__)
+# define DBG2(group, fmt, ...) dbg(group, 2, fmt, ##__VA_ARGS__)
 #endif /* DEBUG_LEVEL */
 #if DEBUG_LEVEL >= 3
-# define DBG3(fmt, ...) dbg(3, fmt, ##__VA_ARGS__)
+# define DBG3(group, fmt, ...) dbg(group, 3, fmt, ##__VA_ARGS__)
 #endif /* DEBUG_LEVEL */
 #if DEBUG_LEVEL >= 4
-# define DBG4(fmt, ...) dbg(4, fmt, ##__VA_ARGS__)
+# define DBG4(group, fmt, ...) dbg(group, 4, fmt, ##__VA_ARGS__)
 #endif /* DEBUG_LEVEL */
 
 #ifndef DBG0
@@ -121,13 +124,13 @@ enum level_t {
 #endif
 
 /** dbg function hook, uses dbg_default() by default */
-extern void (*dbg) (int level, char *fmt, ...);
+extern void (*dbg) (debug_t group, level_t level, char *fmt, ...);
 
 /** default logging function */
-void dbg_default(int level, char *fmt, ...);
+void dbg_default(debug_t group, level_t level, char *fmt, ...);
 
 /** set the level logged by dbg_default() */
-void dbg_default_set_level(int level);
+void dbg_default_set_level(level_t level);
 
 /** set the stream logged by dbg_default() to */
 void dbg_default_set_stream(FILE *stream);
index 2f3536f..7f1d2ed 100644 (file)
@@ -85,7 +85,7 @@ u_int16_t cur_from_port;        /* host order */
 /**
  * pluto dbg function for libstrongswan
  */
-static void pluto_dbg(int level, char *fmt, ...)
+static void pluto_dbg(debug_t group, level_t level, char *fmt, ...)
 {
        int priority = LOG_INFO;
        int debug_level;