summaryrefslogtreecommitdiffstats
path: root/src/expression.c
diff options
context:
space:
mode:
authorPablo Neira <pablo@netfilter.org>2014-01-13 13:39:16 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2014-01-16 18:04:15 +0100
commit734eed347ff1b648b57940af482452d09337282c (patch)
tree464c0b31a22e6eb03599fa0134a4afba800e1ef7 /src/expression.c
parent3bbc269d4acc803b82190ad5f0c6de06609f51b3 (diff)
expression: fix output of verdict maps
% nft list table filter table ip filter { ... chain output { ... ip saddr map { 1.1.1.1 => accept} } } It displays 'map' instead of 'vmap'. Fix it by checking the mapping type in map_expr_print(). Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expression.c')
-rw-r--r--src/expression.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/expression.c b/src/expression.c
index 518f71c8..a12133c8 100644
--- a/src/expression.c
+++ b/src/expression.c
@@ -691,7 +691,11 @@ struct expr *mapping_expr_alloc(const struct location *loc,
static void map_expr_print(const struct expr *expr)
{
expr_print(expr->map);
- printf(" map ");
+ if (expr->mappings->ops->type == EXPR_SET_REF &&
+ expr->mappings->set->datatype->type == TYPE_VERDICT)
+ printf(" vmap ");
+ else
+ printf(" map ");
expr_print(expr->mappings);
}