summaryrefslogtreecommitdiffstats
path: root/src/expr.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-07-21 15:32:21 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-21 15:34:22 +0200
commit3ebc57b84c227fcfc55545af85e246ab4cad2041 (patch)
tree6282fe2013861938b47a1f6d2ccd35407380de94 /src/expr.c
parentcc9573dfa25585a415f6c12950758ce32f337294 (diff)
expr: refactor nft_rule_expr_get
Merge common checking for attribute set in nft_rule_expr_get. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/expr.c b/src/expr.c
index d2d345c..84fd64b 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -102,21 +102,19 @@ nft_rule_expr_set_str(struct nft_rule_expr *expr, uint16_t type, const char *str
}
EXPORT_SYMBOL(nft_rule_expr_set_str);
-const void *nft_rule_expr_get(const struct nft_rule_expr *expr, uint16_t type, size_t *data_len)
+const void *nft_rule_expr_get(const struct nft_rule_expr *expr,
+ uint16_t type, size_t *data_len)
{
- const void *ret = NULL;
+ const void *ret;
+
+ if (!(expr->flags & (1 << type)))
+ return NULL;
switch(type) {
case NFT_RULE_EXPR_ATTR_NAME:
- if (!(expr->flags & (1 << NFT_RULE_EXPR_ATTR_NAME)))
- return NULL;
-
ret = expr->ops->name;
break;
default:
- if (!(expr->flags & (1 << type)))
- return NULL;
-
ret = expr->ops->get(expr, type, data_len);
break;
}