vici: Avoid recursive control log invocations

This commit is contained in:
Martin Willi
2014-05-07 14:13:35 +02:00
parent 993bfe95fb
commit 3b5808a0f6
@@ -49,6 +49,8 @@ typedef struct {
u_int id; u_int id;
/** loglevel */ /** loglevel */
level_t level; level_t level;
/** prevent recursive log */
u_int recursive;
} log_info_t; } log_info_t;
/** /**
@@ -58,6 +60,8 @@ static bool log_vici(log_info_t *info, debug_t group, level_t level,
ike_sa_t *ike_sa, char *text) ike_sa_t *ike_sa, char *text)
{ {
if (level <= info->level) if (level <= info->level)
{
if (info->recursive++ == 0)
{ {
vici_message_t *message; vici_message_t *message;
vici_builder_t *builder; vici_builder_t *builder;
@@ -81,6 +85,8 @@ static bool log_vici(log_info_t *info, debug_t group, level_t level,
info->id, message); info->id, message);
} }
} }
info->recursive--;
}
return TRUE; return TRUE;
} }