summaryrefslogtreecommitdiffstats
path: root/tests/py/nft-test.py
diff options
context:
space:
mode:
authorAnders K. Pedersen <akp@cohaesio.com>2017-10-04 14:27:45 +0000
committerPablo Neira Ayuso <pablo@netfilter.org>2017-10-06 14:57:47 +0200
commit22d2010109193e6ee201d7cd4e8aaf5cda4539a0 (patch)
treedd2ea386adcc05022d7cc5d847225c66106d40e4 /tests/py/nft-test.py
parent68508628c497be54e935f28fe5b28e87d6d17368 (diff)
netlink_linearize: skip set element expression in set statement key
Before this patch the following fails: # nft add rule ip6 filter x \ set add ip6 saddr . ip6 daddr @test nft: netlink_linearize.c:648: netlink_gen_expr: Assertion `dreg < ctx->reg_low' failed. Aborted This is was previously fixed for flow statements in fbea4a6f4449 ("netlink_linearize: skip set element expression in flow table key"), and this patch implements the same change for set statements by using the set element key in netlink_gen_set_stmt(). nft-test.py is updated to support set types with concatenated data types in order to support testing of this. Signed-off-by: Anders K. Pedersen <akp@cohaesio.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'tests/py/nft-test.py')
-rwxr-xr-xtests/py/nft-test.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py
index 8d099a15..9ad97714 100755
--- a/tests/py/nft-test.py
+++ b/tests/py/nft-test.py
@@ -866,8 +866,13 @@ def set_process(set_line, filename, lineno):
set_name = tokens[0]
set_type = tokens[2]
- if len(tokens) == 5 and tokens[3] == "flags":
- set_flags = tokens[4]
+ i = 3
+ while len(tokens) > i and tokens[i] == ".":
+ set_type += " . " + tokens[i+1]
+ i += 2
+
+ if len(tokens) == i+2 and tokens[i] == "flags":
+ set_flags = tokens[i+1]
else:
set_flags = ""