diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-03-06 11:56:59 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-03-06 12:01:42 +0100 |
commit | d34a6bacc6be36388a72350fe3c9e0d9ce81ac5a (patch) | |
tree | 573207e9594c53a8846e1e99adc38ab5ba19f2b3 /src/evaluate.c | |
parent | b1436403417697b8647956ff91d40a5982aba477 (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.c | 10 |
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); } /* |