]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/netfilter/xt_CONNMARK.c
[NETFILTER]: conntrack: introduce connection mark event
[linux-2.6-omap-h63xx.git] / net / netfilter / xt_CONNMARK.c
index 60c375d36f017c49b78fe41eb10509a7bdec1e7b..784482b74e58abef09addfb10878a4df3f2edeca 100644 (file)
@@ -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;