From db5d7dc2bd113dd9c15e83b2e59cb3e4d54c922b Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 10 Jan 2020 11:53:22 +0100 Subject: evaluate: better error notice when interval flag is not set on Users get confused with the existing error notice, let's try a different one: # nft add element x y { 1.1.1.0/24 } Error: You must add 'flags interval' to your set declaration if you want to add prefix elements add element x y { 1.1.1.0/24 } ^^^^^^^^^^ Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1380 Signed-off-by: Pablo Neira Ayuso Acked-by: Phil Sutter --- src/evaluate.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/evaluate.c b/src/evaluate.c index 34e4473e..e7881543 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1299,13 +1299,10 @@ static int expr_evaluate_set_elem(struct eval_ctx *ctx, struct expr **expr) !(ctx->set->flags & (NFT_SET_ANONYMOUS | NFT_SET_INTERVAL))) { switch (elem->key->etype) { case EXPR_PREFIX: - return expr_error(ctx->msgs, elem, - "Set member cannot be prefix, " - "missing interval flag on declaration"); case EXPR_RANGE: return expr_error(ctx->msgs, elem, - "Set member cannot be range, " - "missing interval flag on declaration"); + "You must add 'flags interval' to your %s declaration if you want to add %s elements", + set_is_map(ctx->set->flags) ? "map" : "set", expr_name(elem->key)); default: break; } -- cgit v1.2.3