diff options
-rw-r--r-- | src/conntrack/compare.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/conntrack/compare.c b/src/conntrack/compare.c index 0792a8a..a5c66e2 100644 --- a/src/conntrack/compare.c +++ b/src/conntrack/compare.c @@ -46,6 +46,18 @@ int __compare(const struct nf_conntrack *ct1, ct2->tuple[__DIR_REPL].l3protonum) return 0; + if (test_bit(ATTR_ORIG_L4PROTO, ct1->set) && + test_bit(ATTR_ORIG_L4PROTO, ct2->set) && + ct1->tuple[__DIR_ORIG].protonum != + ct2->tuple[__DIR_ORIG].protonum) + return 0; + + if (test_bit(ATTR_REPL_L4PROTO, ct1->set) && + test_bit(ATTR_REPL_L4PROTO, ct2->set) && + ct1->tuple[__DIR_REPL].protonum != + ct2->tuple[__DIR_REPL].protonum) + return 0; + if (test_bit(ATTR_ORIG_IPV4_SRC, ct1->set) && test_bit(ATTR_ORIG_IPV4_SRC, ct2->set) && ct1->tuple[__DIR_ORIG].src.v4 != |