Commit ef1d20e0 authored by Pablo Neira Ayuso's avatar Pablo Neira Ayuso

netfilter: nft_rbtree: introduce nft_rbtree_interval_end() helper

Add this new nft_rbtree_interval_end() helper function to check in the
end interval is set.
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 3971ca14
...@@ -29,6 +29,11 @@ struct nft_rbtree_elem { ...@@ -29,6 +29,11 @@ struct nft_rbtree_elem {
struct nft_set_ext ext; struct nft_set_ext ext;
}; };
static bool nft_rbtree_interval_end(const struct nft_rbtree_elem *rbe)
{
return nft_set_ext_exists(&rbe->ext, NFT_SET_EXT_FLAGS) &&
(*nft_set_ext_flags(&rbe->ext) & NFT_SET_ELEM_INTERVAL_END);
}
static bool nft_rbtree_lookup(const struct nft_set *set, const u32 *key, static bool nft_rbtree_lookup(const struct nft_set *set, const u32 *key,
const struct nft_set_ext **ext) const struct nft_set_ext **ext)
...@@ -56,9 +61,7 @@ static bool nft_rbtree_lookup(const struct nft_set *set, const u32 *key, ...@@ -56,9 +61,7 @@ static bool nft_rbtree_lookup(const struct nft_set *set, const u32 *key,
parent = parent->rb_left; parent = parent->rb_left;
continue; continue;
} }
if (nft_set_ext_exists(&rbe->ext, NFT_SET_EXT_FLAGS) && if (nft_rbtree_interval_end(rbe))
*nft_set_ext_flags(&rbe->ext) &
NFT_SET_ELEM_INTERVAL_END)
goto out; goto out;
spin_unlock_bh(&nft_rbtree_lock); spin_unlock_bh(&nft_rbtree_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment