summaryrefslogtreecommitdiffstats
path: root/src/rule.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2016-04-18 15:06:09 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2016-04-25 15:48:23 +0200
commit4935a0d561b57f46cdd0649b3bb1063f7e897f00 (patch)
tree2f8b2c2f593d0291fc20a209249ce3ef793be1ba /src/rule.c
parent13aa334805c461a57ce70f6bf15ca8b2ea4c8473 (diff)
segtree: special handling for the first non-matching segment
Add the first non-matching segment if the set is empty or if the set becomes empty after the element removal. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/rule.c')
-rw-r--r--src/rule.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rule.c b/src/rule.c
index 4b112d21..b2f58f43 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -878,7 +878,7 @@ static int __do_add_setelems(struct netlink_ctx *ctx, const struct handle *h,
struct set *set, struct expr *expr)
{
if (set->flags & SET_F_INTERVAL &&
- set_to_intervals(ctx->msgs, set, expr) < 0)
+ set_to_intervals(ctx->msgs, set, expr, true) < 0)
return -1;
if (netlink_add_setelems(ctx, h, expr) < 0)
@@ -995,7 +995,7 @@ static int do_delete_setelems(struct netlink_ctx *ctx, const struct handle *h,
set = set_lookup(table, h->set);
if (set->flags & SET_F_INTERVAL &&
- set_to_intervals(ctx->msgs, set, expr) < 0)
+ set_to_intervals(ctx->msgs, set, expr, false) < 0)
return -1;
if (netlink_delete_setelems(ctx, h, expr) < 0)