}
newelem->flags |= EXPR_F_INTERVAL_END;
} else {
- flags = NFTNL_SET_ELEM_F_INTERVAL_OPEN;
+ flags = EXPR_F_INTERVAL_OPEN;
}
expr = constant_expr_alloc(&elem->key->location, set->key->dtype,
expr_free(elem->key);
elem->key = expr;
- i->elem_flags |= flags;
+ i->flags |= flags;
init->size++;
list_move_tail(&i->list, &intervals);
{
switch (elem->etype) {
case EXPR_SET_ELEM:
- return elem->elem_flags & NFTNL_SET_ELEM_F_INTERVAL_OPEN;
+ return elem->flags & EXPR_F_INTERVAL_OPEN;
case EXPR_MAPPING:
return set_elem_is_open_interval(elem->left);
default:
netlink_gen_stmt_stateful(stmt));
}
}
- if (elem->comment || expr->elem_flags) {
+ if (elem->comment || expr->flags & EXPR_F_INTERVAL_OPEN) {
udbuf = nftnl_udata_buf_alloc(NFT_USERDATA_MAXLEN);
if (!udbuf)
memory_allocation_error();
elem->comment))
memory_allocation_error();
}
- if (expr->elem_flags) {
+ if (expr->flags & EXPR_F_INTERVAL_OPEN) {
if (!nftnl_udata_put_u32(udbuf, NFTNL_UDATA_SET_ELEM_FLAGS,
- expr->elem_flags))
+ NFTNL_SET_ELEM_F_INTERVAL_OPEN))
memory_allocation_error();
}
if (udbuf) {
if (ud[NFTNL_UDATA_SET_ELEM_COMMENT])
expr->comment =
xstrdup(nftnl_udata_get(ud[NFTNL_UDATA_SET_ELEM_COMMENT]));
- if (ud[NFTNL_UDATA_SET_ELEM_FLAGS])
- expr->elem_flags =
+ if (ud[NFTNL_UDATA_SET_ELEM_FLAGS]) {
+ uint32_t elem_flags;
+
+ elem_flags =
nftnl_udata_get_u32(ud[NFTNL_UDATA_SET_ELEM_FLAGS]);
+ if (elem_flags & NFTNL_SET_ELEM_F_INTERVAL_OPEN)
+ expr->flags |= EXPR_F_INTERVAL_OPEN;
+ }
}
int netlink_delinearize_setelem(struct nftnl_set_elem *nlse,