From fc53d1b6b93d9ca194334c43931753e19bcb127b Mon Sep 17 00:00:00 2001 From: Arturo Borrero Date: Fri, 3 Oct 2014 14:46:41 +0200 Subject: src: add nat persistent and random options This patch adds more configuration options to the nat expression. The syntax is as follow: % nft add rule nat postrouting [flags] Flags are: random, persistent, random-fully. Example: % nft add rule nat postrouting dnat 1.1.1.1 random,persistent A requirement is to cache some [recent] copies of kernel headers. Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso --- src/netlink_delinearize.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/netlink_delinearize.c') diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 397b65c0..4bb4697c 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -501,6 +501,10 @@ static void netlink_parse_nat(struct netlink_parse_ctx *ctx, family = nft_rule_expr_get_u32(nle, NFT_EXPR_NAT_FAMILY); + if (nft_rule_expr_is_set(nle, NFT_EXPR_NAT_FLAGS)) + stmt->nat.flags = nft_rule_expr_get_u32(nle, + NFT_EXPR_NAT_FLAGS); + reg1 = nft_rule_expr_get_u32(nle, NFT_EXPR_NAT_REG_ADDR_MIN); if (reg1) { addr = netlink_get_register(ctx, loc, reg1); -- cgit v1.2.3