diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-07-15 08:26:43 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-07-16 19:53:43 +0200 |
commit | 0fd53234e360d4dde8aa53dbcaad89495a4fab7f (patch) | |
tree | 8b8626a93e422f8d107a689c39407d15c91cb5e0 /src/netlink.c | |
parent | 28f22b78f7738a66f88089ecab135242c4c9156d (diff) |
src: add set_is_datamap(), set_is_objmap() and set_is_map() helpers
Two map types are currently possible:
* data maps, ie. set_is_datamap().
* object maps, ie. set_is_objmap().
This patch adds helper functions to check for the map type.
set_is_map() allows you to check for either map type.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/netlink.c')
-rw-r--r-- | src/netlink.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/netlink.c b/src/netlink.c index 97eb082c..0374c39a 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -146,7 +146,7 @@ static struct nftnl_set_elem *alloc_nftnl_setelem(const struct expr *set, nftnl_udata_buf_len(udbuf)); nftnl_udata_buf_free(udbuf); } - if (set->set_flags & NFT_SET_MAP && data != NULL) { + if (set_is_datamap(set->set_flags) && data != NULL) { netlink_gen_data(data, &nld); switch (data->etype) { case EXPR_VERDICT: @@ -165,7 +165,7 @@ static struct nftnl_set_elem *alloc_nftnl_setelem(const struct expr *set, break; } } - if (set->set_flags & NFT_SET_OBJECT && data != NULL) { + if (set_is_objmap(set->set_flags) && data != NULL) { netlink_gen_data(data, &nld); nftnl_set_elem_set(nlse, NFTNL_SET_ELEM_OBJREF, nld.value, nld.len); @@ -581,7 +581,7 @@ struct set *netlink_delinearize_set(struct netlink_ctx *ctx, } flags = nftnl_set_get_u32(nls, NFTNL_SET_FLAGS); - if (flags & NFT_SET_MAP) { + if (set_is_datamap(flags)) { data = nftnl_set_get_u32(nls, NFTNL_SET_DATA_TYPE); datatype = dtype_map_from_kernel(data); if (datatype == NULL) { @@ -593,7 +593,7 @@ struct set *netlink_delinearize_set(struct netlink_ctx *ctx, } else datatype = NULL; - if (flags & NFT_SET_OBJECT) { + if (set_is_objmap(flags)) { objtype = nftnl_set_get_u32(nls, NFTNL_SET_OBJ_TYPE); datatype = &string_type; } @@ -795,7 +795,7 @@ int netlink_delinearize_setelem(struct nftnl_set_elem *nlse, if (flags & NFT_SET_ELEM_INTERVAL_END) expr->flags |= EXPR_F_INTERVAL_END; - if (set->flags & NFT_SET_MAP) { + if (set_is_datamap(set->flags)) { if (nftnl_set_elem_is_set(nlse, NFTNL_SET_ELEM_DATA)) { nld.value = nftnl_set_elem_get(nlse, NFTNL_SET_ELEM_DATA, &nld.len); @@ -817,7 +817,7 @@ int netlink_delinearize_setelem(struct nftnl_set_elem *nlse, expr = mapping_expr_alloc(&netlink_location, expr, data); } - if (set->flags & NFT_SET_OBJECT) { + if (set_is_objmap(set->flags)) { if (nftnl_set_elem_is_set(nlse, NFTNL_SET_ELEM_OBJREF)) { nld.value = nftnl_set_elem_get(nlse, NFTNL_SET_ELEM_OBJREF, |