]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
expr: limit: Use nft_rule_expr_set_* in the xml parsing code
authorAna Rey <anarey@gmail.com>
Mon, 16 Jun 2014 09:10:15 +0000 (11:10 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 16 Jun 2014 10:29:22 +0000 (12:29 +0200)
Code refactoring to use nft_rule_expr_set_* in parse functions.

Signed-off-by: Ana Rey <anarey@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/expr/limit.c

index 2ea1e4bae534b940f6b9f969a5b4c9f563f64d5f..35b0c0153e39459b5c9599678bf6948de9cc405a 100644 (file)
@@ -146,21 +146,19 @@ static int nft_rule_expr_limit_xml_parse(struct nft_rule_expr *e,
                                         struct nft_parse_err *err)
 {
 #ifdef XML_PARSING
-       struct nft_expr_limit *limit = nft_expr_data(e);
+       uint64_t rate, unit;
 
        if (nft_mxml_num_parse(tree, "rate", MXML_DESCEND_FIRST, BASE_DEC,
-                              &limit->rate, NFT_TYPE_U64, NFT_XML_MAND,
-                              err) != 0)
+                              &rate, NFT_TYPE_U64, NFT_XML_MAND,
+                              err) < 0)
                return -1;
-
-       e->flags |= (1 << NFT_EXPR_LIMIT_RATE);
+       nft_rule_expr_set_u64(e, NFT_EXPR_LIMIT_RATE, rate);
 
        if (nft_mxml_num_parse(tree, "unit", MXML_DESCEND_FIRST, BASE_DEC,
-                              &limit->unit, NFT_TYPE_U64, NFT_XML_MAND,
-                              err) != 0)
+                              &unit, NFT_TYPE_U64, NFT_XML_MAND,
+                              err) < 0)
                return -1;
-
-       e->flags |= (1 << NFT_EXPR_LIMIT_UNIT);
+       nft_rule_expr_set_u64(e, NFT_EXPR_LIMIT_UNIT, unit);
 
        return 0;
 #else