diff options
author | Tobias Brunner <tobias@strongswan.org> | 2011-05-03 10:50:28 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2011-05-03 10:50:28 +0200 |
commit | b4c9ab9c79f1f0c4c6e191f14ab2547c743b337c (patch) | |
tree | fdb6d221ab78d7536c9fb0a65ce6a88fb78060be /src | |
parent | b7cb8100c499a898d9dd67da788ca443ebf52f25 (diff) | |
download | strongswan-b4c9ab9c79f1f0c4c6e191f14ab2547c743b337c.tar.bz2 strongswan-b4c9ab9c79f1f0c4c6e191f14ab2547c743b337c.tar.xz |
Cache group name in sys_logger_t to avoid problems with Vstr.
Because syslog(3) is not replaced when using the Vstr wrapper, %N can
not be resolved properly.
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/bus/listeners/sys_logger.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libcharon/bus/listeners/sys_logger.c b/src/libcharon/bus/listeners/sys_logger.c index 1e80387da..c29c9f2e4 100644 --- a/src/libcharon/bus/listeners/sys_logger.c +++ b/src/libcharon/bus/listeners/sys_logger.c @@ -54,11 +54,13 @@ METHOD(listener_t, log_, bool, { if (level <= this->levels[group]) { - char buffer[8192], namestr[128] = ""; + char buffer[8192], groupstr[4], namestr[128] = ""; char *current = buffer, *next; /* write in memory buffer first */ vsnprintf(buffer, sizeof(buffer), format, args); + /* cache group name */ + snprintf(groupstr, sizeof(groupstr), "%N", debug_names, group); if (this->ike_name && ike_sa) { @@ -82,8 +84,8 @@ METHOD(listener_t, log_, bool, { *(next++) = '\0'; } - syslog(this->facility|LOG_INFO, "%.2d[%N]%s %s\n", - thread, debug_names, group, namestr, current); + syslog(this->facility|LOG_INFO, "%.2d[%s]%s %s\n", + thread, groupstr, namestr, current); current = next; } } |