summaryrefslogtreecommitdiffstats
path: root/src/evaluate.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2019-03-06 11:56:59 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2019-03-06 12:01:42 +0100
commitd34a6bacc6be36388a72350fe3c9e0d9ce81ac5a (patch)
tree573207e9594c53a8846e1e99adc38ab5ba19f2b3 /src/evaluate.c
parentb1436403417697b8647956ff91d40a5982aba477 (diff)
evaluate: misleading error reporting with sets and maps
When trying to list a map content, if set is used, nft reports: # nft list set filter group_7933 Error: No such file or directory; did you mean set ‘group_7933’ in table ip ‘filter’? list set filter group_7933 ^^^^^^^^^^ Which is confusing in case user wants to list an existing map: # nft list map filter group_7933 table ip filter { map group_7933 { type ipv4_addr : classid flags interval elements = { 10.4.22.0/24 : 1:c7cb } } } Instead, give a hint to user that probably wants to list a map, not a set: # nft list set filter group_7933 Error: No such file or directory; did you mean map ‘group_7933’ in table ip ‘filter’? list set filter group_7933 ^^^^^^^^^^ Fixes: 285bb67a11ad ("src: introduce simple hints on incorrect set") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/evaluate.c')
-rw-r--r--src/evaluate.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 29c436cd..54afc334 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -209,10 +209,12 @@ static int set_not_found(struct eval_ctx *ctx, const struct location *loc,
return cmd_error(ctx, loc, "%s", strerror(ENOENT));
return cmd_error(ctx, loc,
- "%s; did you mean set ‘%s’ in table %s ‘%s’?",
- strerror(ENOENT), set->handle.set.name,
- family2str(set->handle.family),
- table->handle.table.name);
+ "%s; did you mean %s ‘%s’ in table %s ‘%s’?",
+ strerror(ENOENT),
+ set->flags & NFT_SET_MAP ? "map" : "set",
+ set->handle.set.name,
+ family2str(set->handle.family),
+ table->handle.table.name);
}
/*