summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/ulogd/ulogd.h2
-rw-r--r--src/ulogd.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/include/ulogd/ulogd.h b/include/ulogd/ulogd.h
index 39ac464..73a1711 100644
--- a/include/ulogd/ulogd.h
+++ b/include/ulogd/ulogd.h
@@ -168,6 +168,8 @@ struct ulogd_plugin {
struct ulogd_pluginstance {
/* local list of plugins in this stack */
struct llist_head list;
+ /* local list of plugininstance in other stacks */
+ struct llist_head plist;
/* plugin */
struct ulogd_plugin *plugin;
/* stack that we're part of */
diff --git a/src/ulogd.c b/src/ulogd.c
index 7a779e6..ef1c191 100644
--- a/src/ulogd.c
+++ b/src/ulogd.c
@@ -529,6 +529,7 @@ pluginstance_alloc_init(struct ulogd_plugin *pl, char *pi_id,
/* initialize */
memset(pi, 0, size);
INIT_LLIST_HEAD(&pi->list);
+ INIT_LLIST_HEAD(&pi->plist);
pi->plugin = pl;
pi->stack = stack;
memcpy(pi->id, pi_id, sizeof(pi->id));
@@ -721,6 +722,7 @@ static int pluginstance_started(struct ulogd_pluginstance *npi)
if (!strcmp(pi->id, npi->id)) {
ulogd_log(ULOGD_INFO, "%s instance already "
"loaded\n", pi->id);
+ llist_add(&pi->plist, &npi->plist);
return 1;
}
}