aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2011-05-03 10:50:28 +0200
committerTobias Brunner <tobias@strongswan.org>2011-05-03 10:50:28 +0200
commitb4c9ab9c79f1f0c4c6e191f14ab2547c743b337c (patch)
treefdb6d221ab78d7536c9fb0a65ce6a88fb78060be /src
parentb7cb8100c499a898d9dd67da788ca443ebf52f25 (diff)
downloadstrongswan-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.c8
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;
}
}