]> git.ipfire.org Git - thirdparty/ulogd2.git/commitdiff
This patch adds support for duplication of the message to be
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 10:09:06 +0000 (10:09 +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 10:09:06 +0000 (10:09 +0000)
able to use multiple time the same instance of NFCT.

Signed-off-by: Eric Leblond <eric@inl.fr>
input/flow/ulogd_inpflow_NFCT.c

index 7d3aa91aef99b711c8144d9c4813e3acee67a38f..fbe98588f76326c4ac4c3c158d719f1d91a49ab7 100644 (file)
@@ -559,8 +559,10 @@ static int event_handler(void *arg, unsigned int flags, int type,
 {
        struct nfct_conntrack *ct = arg;
        struct ulogd_pluginstance *upi = data;
+       struct ulogd_pluginstance *npi = NULL;
        struct nfct_pluginstance *cpi = 
                                (struct nfct_pluginstance *) upi->private;
+       int ret = 0;
 
        if (type == NFCT_MSG_NEW) {
                if (usehash_ce(upi->config_kset).u.value != 0)
@@ -571,6 +573,14 @@ static int event_handler(void *arg, unsigned int flags, int type,
                if (usehash_ce(upi->config_kset).u.value != 0)
                        ts = ct_hash_get(cpi->ct_active, ct->id);
 
+               /* since we support the re-use of one instance in
+                * several different stacks, we duplicate the message
+                * to let them know */
+               llist_for_each_entry(npi, &upi->plist, plist) {
+                       ret = propagate_ct(npi, ct, flags, ts);
+                       if (ret != 0)
+                               return ret;
+               }
                return propagate_ct(upi, ct, flags, ts);
        }
        return 0;