You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
commit 79dac5ac16ffe102b120c00600fb97653fe49c4b |
|
Author: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> |
|
Date: Tue Feb 28 11:34:29 2017 +0900 |
|
|
|
conntrack: revert getobjopt_is_nat() condition |
|
|
|
getobjopt_is_nat() used to work even if no status bits where set, by |
|
checking if addresses don't match. Restore this behaviour for |
|
compatibility reasons. |
|
|
|
Fixes: 73ad642ba462 ("src: add support for IPv6 NAT") |
|
Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> |
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
|
|
|
diff --git a/src/conntrack/objopt.c b/src/conntrack/objopt.c |
|
index fb43d6c..1581480 100644 |
|
--- a/src/conntrack/objopt.c |
|
+++ b/src/conntrack/objopt.c |
|
@@ -144,10 +144,8 @@ int __setobjopt(struct nf_conntrack *ct, unsigned int option) |
|
|
|
static int getobjopt_is_snat(const struct nf_conntrack *ct) |
|
{ |
|
- if (!(test_bit(ATTR_STATUS, ct->head.set))) |
|
- return 0; |
|
- |
|
- if (!(ct->status & IPS_SRC_NAT_DONE)) |
|
+ if (test_bit(ATTR_STATUS, ct->head.set) && |
|
+ !(ct->status & IPS_SRC_NAT_DONE)) |
|
return 0; |
|
|
|
switch (ct->head.orig.l3protonum) { |
|
@@ -166,10 +164,8 @@ static int getobjopt_is_snat(const struct nf_conntrack *ct) |
|
|
|
static int getobjopt_is_dnat(const struct nf_conntrack *ct) |
|
{ |
|
- if (!(test_bit(ATTR_STATUS, ct->head.set))) |
|
- return 0; |
|
- |
|
- if (!(ct->status & IPS_DST_NAT_DONE)) |
|
+ if (test_bit(ATTR_STATUS, ct->head.set) && |
|
+ !(ct->status & IPS_DST_NAT_DONE)) |
|
return 0; |
|
|
|
switch (ct->head.orig.l3protonum) {
|
|
|