提交 edda0791 编写于 作者: S Sergey Popovich 提交者: Jozsef Kadlecsik

netfilter: ipset: Use SET_WITH_*() helpers to test set extensions

Signed-off-by: NSergey Popovich <popovich_sergei@mail.ua>
Signed-off-by: NJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
上级 aaeb6e24
...@@ -390,12 +390,12 @@ ip_set_get_extensions(struct ip_set *set, struct nlattr *tb[], ...@@ -390,12 +390,12 @@ ip_set_get_extensions(struct ip_set *set, struct nlattr *tb[],
{ {
u64 fullmark; u64 fullmark;
if (tb[IPSET_ATTR_TIMEOUT]) { if (tb[IPSET_ATTR_TIMEOUT]) {
if (!(set->extensions & IPSET_EXT_TIMEOUT)) if (!SET_WITH_TIMEOUT(set))
return -IPSET_ERR_TIMEOUT; return -IPSET_ERR_TIMEOUT;
ext->timeout = ip_set_timeout_uget(tb[IPSET_ATTR_TIMEOUT]); ext->timeout = ip_set_timeout_uget(tb[IPSET_ATTR_TIMEOUT]);
} }
if (tb[IPSET_ATTR_BYTES] || tb[IPSET_ATTR_PACKETS]) { if (tb[IPSET_ATTR_BYTES] || tb[IPSET_ATTR_PACKETS]) {
if (!(set->extensions & IPSET_EXT_COUNTER)) if (!SET_WITH_COUNTER(set))
return -IPSET_ERR_COUNTER; return -IPSET_ERR_COUNTER;
if (tb[IPSET_ATTR_BYTES]) if (tb[IPSET_ATTR_BYTES])
ext->bytes = be64_to_cpu(nla_get_be64( ext->bytes = be64_to_cpu(nla_get_be64(
...@@ -405,25 +405,25 @@ ip_set_get_extensions(struct ip_set *set, struct nlattr *tb[], ...@@ -405,25 +405,25 @@ ip_set_get_extensions(struct ip_set *set, struct nlattr *tb[],
tb[IPSET_ATTR_PACKETS])); tb[IPSET_ATTR_PACKETS]));
} }
if (tb[IPSET_ATTR_COMMENT]) { if (tb[IPSET_ATTR_COMMENT]) {
if (!(set->extensions & IPSET_EXT_COMMENT)) if (!SET_WITH_COMMENT(set))
return -IPSET_ERR_COMMENT; return -IPSET_ERR_COMMENT;
ext->comment = ip_set_comment_uget(tb[IPSET_ATTR_COMMENT]); ext->comment = ip_set_comment_uget(tb[IPSET_ATTR_COMMENT]);
} }
if (tb[IPSET_ATTR_SKBMARK]) { if (tb[IPSET_ATTR_SKBMARK]) {
if (!(set->extensions & IPSET_EXT_SKBINFO)) if (!SET_WITH_SKBINFO(set))
return -IPSET_ERR_SKBINFO; return -IPSET_ERR_SKBINFO;
fullmark = be64_to_cpu(nla_get_be64(tb[IPSET_ATTR_SKBMARK])); fullmark = be64_to_cpu(nla_get_be64(tb[IPSET_ATTR_SKBMARK]));
ext->skbmark = fullmark >> 32; ext->skbmark = fullmark >> 32;
ext->skbmarkmask = fullmark & 0xffffffff; ext->skbmarkmask = fullmark & 0xffffffff;
} }
if (tb[IPSET_ATTR_SKBPRIO]) { if (tb[IPSET_ATTR_SKBPRIO]) {
if (!(set->extensions & IPSET_EXT_SKBINFO)) if (!SET_WITH_SKBINFO(set))
return -IPSET_ERR_SKBINFO; return -IPSET_ERR_SKBINFO;
ext->skbprio = be32_to_cpu(nla_get_be32( ext->skbprio = be32_to_cpu(nla_get_be32(
tb[IPSET_ATTR_SKBPRIO])); tb[IPSET_ATTR_SKBPRIO]));
} }
if (tb[IPSET_ATTR_SKBQUEUE]) { if (tb[IPSET_ATTR_SKBQUEUE]) {
if (!(set->extensions & IPSET_EXT_SKBINFO)) if (!SET_WITH_SKBINFO(set))
return -IPSET_ERR_SKBINFO; return -IPSET_ERR_SKBINFO;
ext->skbqueue = be16_to_cpu(nla_get_be16( ext->skbqueue = be16_to_cpu(nla_get_be16(
tb[IPSET_ATTR_SKBQUEUE])); tb[IPSET_ATTR_SKBQUEUE]));
......
...@@ -431,7 +431,7 @@ mtype_destroy(struct ip_set *set) ...@@ -431,7 +431,7 @@ mtype_destroy(struct ip_set *set)
{ {
struct htype *h = set->data; struct htype *h = set->data;
if (set->extensions & IPSET_EXT_TIMEOUT) if (SET_WITH_TIMEOUT(set))
del_timer_sync(&h->gc); del_timer_sync(&h->gc);
mtype_ahash_destroy(set, rcu_dereference_bh_nfnl(h->table), true); mtype_ahash_destroy(set, rcu_dereference_bh_nfnl(h->table), true);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册