]> git.ipfire.org Git - thirdparty/ulogd2.git/commitdiff
This patch adds plist a linked list to the pluginstance
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>
Tue, 25 Mar 2008 09:57:12 +0000 (09:57 +0000)
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>
Tue, 25 Mar 2008 09:57:12 +0000 (09:57 +0000)
structure. It can be used by input modules to duplicate an
entry. This solves the issue of not being able to use the same
plugin instance twice.

Signed-off-by: Eric Leblond <eric@inl.fr>
include/ulogd/ulogd.h
src/ulogd.c

index 39ac4642d50bb86ae2e821478b2fc149d5f8a26f..73a1711cf1fd63a35fe9d986ab6e4a15dd5332d4 100644 (file)
@@ -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 */
index 7a779e64ffaf34f88518d9fd8205bdcc07f8426c..ef1c191abb6ec19a370bb156ae9fb57235a2beb3 100644 (file)
@@ -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;
                        }
                }