Adding support for debug groups in libstrongswan's logger.
This commit is contained in:
+7
-7
@@ -46,19 +46,19 @@
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user