aboutsummaryrefslogtreecommitdiff
path: root/net/netfilter/nf_conntrack_netlink.c
diff options
context:
space:
mode:
authorGravatar Pablo Neira Ayuso <pablo@netfilter.org> 2009-02-09 14:33:57 -0800
committerGravatar David S. Miller <davem@davemloft.net> 2009-02-09 14:33:57 -0800
commitc969aa7d2cd5621ad4129dae6b6551af422944c6 (patch)
treec100f3e21e1a2f073dfabe03e941669d4c5c449a /net/netfilter/nf_conntrack_netlink.c
parentnetfilter: nf_conntrack_ipv6: don't track ICMPv6 negotiation message (diff)
downloadlinux-c969aa7d2cd5621ad4129dae6b6551af422944c6.tar.gz
linux-c969aa7d2cd5621ad4129dae6b6551af422944c6.tar.bz2
linux-c969aa7d2cd5621ad4129dae6b6551af422944c6.zip
netfilter: ctnetlink: allow changing NAT sequence adjustment in creation
This patch fixes an inconsistency in the current ctnetlink code since NAT sequence adjustment bit can only be updated but not set in the conntrack entry creation. This patch is used by conntrackd to successfully recover newly created entries that represent connections with helpers and NAT payload mangling. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter/nf_conntrack_netlink.c')
-rw-r--r--net/netfilter/nf_conntrack_netlink.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index c32a7e8e3a1b..9051bb4f81da 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -1215,6 +1215,16 @@ ctnetlink_create_conntrack(struct nlattr *cda[],
}
}
+#ifdef CONFIG_NF_NAT_NEEDED
+ if (cda[CTA_NAT_SEQ_ADJ_ORIG] || cda[CTA_NAT_SEQ_ADJ_REPLY]) {
+ err = ctnetlink_change_nat_seq_adj(ct, cda);
+ if (err < 0) {
+ rcu_read_unlock();
+ goto err;
+ }
+ }
+#endif
+
if (cda[CTA_PROTOINFO]) {
err = ctnetlink_change_protoinfo(ct, cda);
if (err < 0) {