summaryrefslogtreecommitdiffstats
path: root/input/packet
diff options
context:
space:
mode:
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>2008-03-25 10:01:34 +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>2008-03-25 10:01:34 +0000
commitcbf07cbdc9bd4976c525c83c52f966d957ffe55b (patch)
treeef9289c9ff29a156adc93cf4a4bee0996b1b603b /input/packet
parenta13c6d27770a1fbc6fba1ffcd9d88681b581a01e (diff)
An instance of NFLOG can now be use in multiple stacks. This is done
by duplicating the interpretation of the message. Signed-off-by: Eric Leblond <eric@inl.fr>
Diffstat (limited to 'input/packet')
-rw-r--r--input/packet/ulogd_inppkt_NFLOG.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c
index e0e8554..802e417 100644
--- a/input/packet/ulogd_inppkt_NFLOG.c
+++ b/input/packet/ulogd_inppkt_NFLOG.c
@@ -370,7 +370,16 @@ static int msg_cb(struct nflog_g_handle *gh, struct nfgenmsg *nfmsg,
struct nflog_data *nfa, void *data)
{
struct ulogd_pluginstance *upi = data;
-
+ struct ulogd_pluginstance *npi = NULL;
+ int ret = 0;
+
+ /* 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 = interp_packet(npi, nfa);
+ if (ret != 0)
+ return ret;
+ }
return interp_packet(upi, nfa);
}