summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2018-10-10 19:19:18 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-10-10 19:21:13 +0200
commit8ef0efb97006081e7f6054a950cb3614dd57729f (patch)
tree010f330a6b146750c26f44213c4ab3764f59e106 /src
parent98b047f231215817d87a49dfffbe7b4c0dc29b57 (diff)
segtree: set proper error cause on existing elements
Adding new elements result in a confusing "Success" error message. # nft add element x y { 0-3 } [...] Error: Could not process rule: Success add element x y { 0-3 } ^^^^^^^^^^^^^^^^^^^^^^^^ after this patch, this reports: Error: Could not process rule: File exists add element x y { 0-3 } ^^^^^^^^^^^^^^^^^^^^^^^^ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/segtree.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/segtree.c b/src/segtree.c
index 4ee09884..5685618b 100644
--- a/src/segtree.c
+++ b/src/segtree.c
@@ -270,6 +270,7 @@ static int ei_insert(struct list_head *msgs, struct seg_tree *tree,
return 0;
err:
+ errno = EEXIST;
return expr_binary_error(msgs, lei->expr, new->expr,
"conflicting intervals specified");
}
@@ -371,6 +372,7 @@ static int set_overlap(struct list_head *msgs, const struct set *set,
expr_error(msgs, new_intervals[i]->expr,
"interval overlaps with an existing one");
+ errno = EEXIST;
ret = -1;
goto out;
}