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
|
* 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
|
* 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;
|
va_list args;
|
||||||
|
|
||||||
if (level <= 1)
|
if (level <= 1)
|
||||||
{
|
{
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
fprintf(stderr, "00[LIB] ");
|
fprintf(stderr, "00[%N] ", debug_names, group);
|
||||||
vfprintf(stderr, fmt, args);
|
vfprintf(stderr, fmt, args);
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
va_end(args);
|
va_end(args);
|
||||||
@@ -284,14 +284,14 @@ int main(int argc, char *argv[])
|
|||||||
if (lib->integrity &&
|
if (lib->integrity &&
|
||||||
!lib->integrity->check_file(lib->integrity, "charon", argv[0]))
|
!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();
|
library_deinit();
|
||||||
exit(SS_RC_DAEMON_INTEGRITY);
|
exit(SS_RC_DAEMON_INTEGRITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!libhydra_init("charon"))
|
if (!libhydra_init("charon"))
|
||||||
{
|
{
|
||||||
dbg_stderr(1, "initialization failed - aborting charon");
|
dbg_stderr(DBG_DMN, 1, "initialization failed - aborting charon");
|
||||||
libhydra_deinit();
|
libhydra_deinit();
|
||||||
library_deinit();
|
library_deinit();
|
||||||
exit(SS_RC_INITIALIZATION_FAILED);
|
exit(SS_RC_INITIALIZATION_FAILED);
|
||||||
@@ -299,7 +299,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (!libcharon_init())
|
if (!libcharon_init())
|
||||||
{
|
{
|
||||||
dbg_stderr(1, "initialization failed - aborting charon");
|
dbg_stderr(DBG_DMN, 1, "initialization failed - aborting charon");
|
||||||
goto deinit;
|
goto deinit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,7 +358,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (!lookup_uid_gid())
|
if (!lookup_uid_gid())
|
||||||
{
|
{
|
||||||
dbg_stderr(1, "invalid uid/gid - aborting charon");
|
dbg_stderr(DBG_DMN, 1, "invalid uid/gid - aborting charon");
|
||||||
goto deinit;
|
goto deinit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,22 +62,22 @@ daemon_t *charon;
|
|||||||
/**
|
/**
|
||||||
* hook in library for debugging messages
|
* 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
|
* 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
|
* 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_list args;
|
||||||
|
|
||||||
va_start(args, fmt);
|
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);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -435,7 +435,7 @@ bool libcharon_init()
|
|||||||
if (lib->integrity &&
|
if (lib->integrity &&
|
||||||
!lib->integrity->check(lib->integrity, "libcharon", libcharon_init))
|
!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;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ENUM(debug_lower_names, DBG_DMN, DBG_LIB,
|
|||||||
/**
|
/**
|
||||||
* level logged by the default logger
|
* level logged by the default logger
|
||||||
*/
|
*/
|
||||||
static int default_level = 1;
|
static level_t default_level = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* stream logged to by the default logger
|
* stream logged to by the default logger
|
||||||
@@ -56,7 +56,7 @@ static FILE *default_stream = NULL;
|
|||||||
/**
|
/**
|
||||||
* default dbg function which printf all to stderr
|
* 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)
|
if (!default_stream)
|
||||||
{
|
{
|
||||||
@@ -76,7 +76,7 @@ void dbg_default(int level, char *fmt, ...)
|
|||||||
/**
|
/**
|
||||||
* set the level logged by the default stderr logger
|
* 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;
|
default_level = level;
|
||||||
}
|
}
|
||||||
@@ -92,5 +92,5 @@ void dbg_default_set_stream(FILE *stream)
|
|||||||
/**
|
/**
|
||||||
* The registered debug hook.
|
* 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 */
|
#endif /* DEBUG_LEVEL */
|
||||||
|
|
||||||
/** debug macros, they call the dbg function hook */
|
/** 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
|
#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 */
|
#endif /* DEBUG_LEVEL */
|
||||||
#if DEBUG_LEVEL >= 2
|
#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 */
|
#endif /* DEBUG_LEVEL */
|
||||||
#if DEBUG_LEVEL >= 3
|
#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 */
|
#endif /* DEBUG_LEVEL */
|
||||||
#if DEBUG_LEVEL >= 4
|
#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 */
|
#endif /* DEBUG_LEVEL */
|
||||||
|
|
||||||
#ifndef DBG0
|
#ifndef DBG0
|
||||||
@@ -121,13 +124,13 @@ enum level_t {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** dbg function hook, uses dbg_default() by default */
|
/** 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 */
|
/** 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() */
|
/** 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 */
|
/** set the stream logged by dbg_default() to */
|
||||||
void dbg_default_set_stream(FILE *stream);
|
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
|
* 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 priority = LOG_INFO;
|
||||||
int debug_level;
|
int debug_level;
|
||||||
|
|||||||
Reference in New Issue
Block a user