Currently all implicitly declared sets are marked as constant. The flow
statement needs to implicitly declare non-constant sets, so instead of
unconditionally marking the set as constant, only do so if the declaring
expression is itself a constant set.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
struct handle h;
set = set_alloc(&expr->location);
- set->flags = SET_F_CONSTANT | SET_F_ANONYMOUS | expr->set_flags;
+ set->flags = SET_F_ANONYMOUS | expr->set_flags;
set->handle.set = xstrdup(set->flags & SET_F_MAP ? "map%d" : "set%d");
set->keytype = keytype;
set->keylen = keylen;
set->set_flags |= SET_F_INTERVAL;
}
+ set->set_flags |= SET_F_CONSTANT;
+
set->dtype = ctx->ectx.dtype;
set->len = ctx->ectx.len;
set->flags |= EXPR_F_CONSTANT;