summaryrefslogtreecommitdiffstats
path: root/src/conntrack/copy.c
diff options
context:
space:
mode:
authorArturo Borrero <arturo.borrero.glez@gmail.com>2016-05-18 10:56:36 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2016-05-20 11:35:50 +0200
commit73ad642ba462d0992e1903012eee4ebfec89ed69 (patch)
treec7ec2b1f6ac71053124e32d3cc8cfb0489512a28 /src/conntrack/copy.c
parentf5e51ad64d9e5597e8880b652abe261585c2563d (diff)
src: add support for IPv6 NAT
The conntrackd daemon lacks support for syncing IPv6 NATed connections. This patch adds support for managing the IPv6 part of struct __nfct_nat, also updating the corresponsing symbols. Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/conntrack/copy.c')
-rw-r--r--src/conntrack/copy.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/conntrack/copy.c b/src/conntrack/copy.c
index eac977b..e6e4f7a 100644
--- a/src/conntrack/copy.c
+++ b/src/conntrack/copy.c
@@ -296,6 +296,20 @@ static void copy_attr_dnat_ipv4(struct nf_conntrack *dest,
dest->dnat.min_ip.v4 = orig->dnat.min_ip.v4;
}
+static void copy_attr_snat_ipv6(struct nf_conntrack *dest,
+ const struct nf_conntrack *orig)
+{
+ memcpy(&dest->snat.min_ip.v6, &orig->snat.min_ip.v6,
+ sizeof(struct in6_addr));
+}
+
+static void copy_attr_dnat_ipv6(struct nf_conntrack *dest,
+ const struct nf_conntrack *orig)
+{
+ memcpy(&dest->dnat.min_ip.v6, &orig->dnat.min_ip.v6,
+ sizeof(struct in6_addr));
+}
+
static void copy_attr_snat_port(struct nf_conntrack *dest,
const struct nf_conntrack *orig)
{
@@ -555,6 +569,8 @@ const copy_attr copy_attr_array[ATTR_MAX] = {
[ATTR_HELPER_INFO] = copy_attr_help_info,
[ATTR_CONNLABELS] = copy_attr_connlabels,
[ATTR_CONNLABELS_MASK] = copy_attr_connlabels_mask,
+ [ATTR_SNAT_IPV6] = copy_attr_snat_ipv6,
+ [ATTR_DNAT_IPV6] = copy_attr_dnat_ipv6,
};
/* this is used by nfct_copy() with the NFCT_CP_OVERRIDE flag set. */