diff options
author | Eric Leblond <eric@regit.org> | 2013-09-29 11:53:29 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-09-30 12:51:48 +0200 |
commit | 18c9e8963f2d26f67fa48f3fab2a0bad2c256dd4 (patch) | |
tree | 5285f5a8451f92797bed977232f6ab55637efd68 /src/evaluate.c | |
parent | 820708960357014cd68766c75fe07d34c6aef2b1 (diff) |
src: Add support for IPv6 NAT
This patch adds support for IPv6 NAT. It adds IPv6 support in
evaluation and in delinearization which were the only missing parts.
Signed-off-by: Eric Leblond <eric@regit.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/evaluate.c')
-rw-r--r-- | src/evaluate.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index 29fa32bd..94fee64b 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1121,8 +1121,12 @@ static int stmt_evaluate_nat(struct eval_ctx *ctx, struct stmt *stmt) int err; if (stmt->nat.addr != NULL) { - expr_set_context(&ctx->ectx, &ipaddr_type, - 4 * BITS_PER_BYTE); + if (pctx && (pctx->family == AF_INET)) + expr_set_context(&ctx->ectx, &ipaddr_type, + 4 * BITS_PER_BYTE); + else + expr_set_context(&ctx->ectx, &ip6addr_type, + 16 * BITS_PER_BYTE); err = expr_evaluate(ctx, &stmt->nat.addr); if (err < 0) return err; |