aboutsummaryrefslogtreecommitdiff
path: root/net/netfilter/xt_CONNMARK.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/netfilter/xt_CONNMARK.c')
-rw-r--r--net/netfilter/xt_CONNMARK.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/net/netfilter/xt_CONNMARK.c b/net/netfilter/xt_CONNMARK.c
index 60c375d36f0..784482b74e5 100644
--- a/net/netfilter/xt_CONNMARK.c
+++ b/net/netfilter/xt_CONNMARK.c
@@ -52,13 +52,25 @@ target(struct sk_buff **pskb,
switch(markinfo->mode) {
case XT_CONNMARK_SET:
newmark = (*ctmark & ~markinfo->mask) | markinfo->mark;
- if (newmark != *ctmark)
+ if (newmark != *ctmark) {
*ctmark = newmark;
+#ifdef CONFIG_IP_NF_CONNTRACK_EVENTS
+ ip_conntrack_event_cache(IPCT_MARK, *pskb);
+#else
+ nf_conntrack_event_cache(IPCT_MARK, *pskb);
+#endif
+ }
break;
case XT_CONNMARK_SAVE:
newmark = (*ctmark & ~markinfo->mask) | ((*pskb)->nfmark & markinfo->mask);
- if (*ctmark != newmark)
+ if (*ctmark != newmark) {
*ctmark = newmark;
+#ifdef CONFIG_IP_NF_CONNTRACK_EVENTS
+ ip_conntrack_event_cache(IPCT_MARK, *pskb);
+#else
+ nf_conntrack_event_cache(IPCT_MARK, *pskb);
+#endif
+ }
break;
case XT_CONNMARK_RESTORE:
nfmark = (*pskb)->nfmark;