diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-06-22 21:38:18 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-06-23 13:04:24 +0200 |
commit | dd084d6bfc32ce492084bed9d5e90aeef171503a (patch) | |
tree | 9a0f85bb3842845a97589ec189f8033968f2b65e /tests/shell/testcases/maps/0004interval_map_create_once_0 | |
parent | f8bf621362cc7fa45731c87ef485f7fb298e1e13 (diff) |
evaluate: fix maps with key and data concatenations
expr_evaluate_concat() is overloaded, it deals with two cases:
#1 set key and data definitions, this case uses the special
dynamically created concatenation datatype which is taken
from the context.
#2 set elements, this case iterates over the set key and data
expressions that are components of the concatenation tuple,
to fetch the corresponding datatype.
Add a new function to deal with case #1 specifically.
This patch is implicitly fixing up map that include arbitrary
concatenations. This is failing with a spurious error report such as:
# cat bug.nft
table x {
map test {
type ipv4_addr . inet_proto . inet_service : ipv4_addr . inet_service
}
}
# nft -f bug.nft
bug.nft:3:48-71: Error: datatype mismatch, expected concatenation of (IPv4 address, Internet protocol, internet network service), expression has type concatenation of (IPv4 address, internet network service)
type ipv4_addr . inet_proto . inet_service : ipv4_addr . inet_service
^^^^^^^^^^^^^^^^^^^^^^^^
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'tests/shell/testcases/maps/0004interval_map_create_once_0')
0 files changed, 0 insertions, 0 deletions