diff options
author | Alvaro Neira <alvaroneay@gmail.com> | 2015-01-12 14:46:15 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-01-15 13:09:07 +0100 |
commit | dbdf25c7c95969431b0c45cc2dd165021d6a05cc (patch) | |
tree | 69424ada6a1f510937a038ffe37d7c8f5eb7991e | |
parent | 1fc12719b6d878622e25825ef32615f281bb5e4d (diff) |
ruleset: refactor nft_ruleset_*_parse_ruleset()
Refactor the parsing ruleset element functions calls in xml/json to do
that calls in the functions nft_ruleset_*_parse_ruleset. This patch is
used in follow up patches.
Signed-off-by: Alvaro Neira Ayuso <alvaroneay@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | src/ruleset.c | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/src/ruleset.c b/src/ruleset.c index a397824..c29c307 100644 --- a/src/ruleset.c +++ b/src/ruleset.c @@ -330,6 +330,23 @@ err: return -1; } +static int nft_ruleset_json_parse_ruleset(struct nft_ruleset *rs, json_t *array, + struct nft_parse_err *err) +{ + if (nft_ruleset_json_parse_tables(rs, array, err) != 0) + return -1; + + if (nft_ruleset_json_parse_chains(rs, array, err) != 0) + return -1; + + if (nft_ruleset_json_parse_sets(rs, array, err) != 0) + return -1; + + if (nft_ruleset_json_parse_rules(rs, array, err) != 0) + return -1; + + return 0; +} #endif static int nft_ruleset_json_parse(struct nft_ruleset *rs, const void *json, @@ -349,16 +366,7 @@ static int nft_ruleset_json_parse(struct nft_ruleset *rs, const void *json, goto err; } - if (nft_ruleset_json_parse_tables(rs, array, err) != 0) - goto err; - - if (nft_ruleset_json_parse_chains(rs, array, err) != 0) - goto err; - - if (nft_ruleset_json_parse_sets(rs, array, err) != 0) - goto err; - - if (nft_ruleset_json_parse_rules(rs, array, err) != 0) + if (nft_ruleset_json_parse_ruleset(rs, array, err) != 0) goto err; nft_jansson_free_root(root); @@ -537,6 +545,25 @@ err_free: nft_rule_list_free(rule_list); return -1; } + +static int nft_ruleset_xml_parse_ruleset(struct nft_ruleset *rs, + mxml_node_t *tree, + struct nft_parse_err *err) +{ + if (nft_ruleset_xml_parse_tables(rs, tree, err) != 0) + return -1; + + if (nft_ruleset_xml_parse_chains(rs, tree, err) != 0) + return -1; + + if (nft_ruleset_xml_parse_sets(rs, tree, err) != 0) + return -1; + + if (nft_ruleset_xml_parse_rules(rs, tree, err, rs->set_list) != 0) + return -1; + + return 0; +} #endif static int nft_ruleset_xml_parse(struct nft_ruleset *rs, const void *xml, @@ -549,16 +576,7 @@ static int nft_ruleset_xml_parse(struct nft_ruleset *rs, const void *xml, if (tree == NULL) return -1; - if (nft_ruleset_xml_parse_tables(rs, tree, err) != 0) - goto err; - - if (nft_ruleset_xml_parse_chains(rs, tree, err) != 0) - goto err; - - if (nft_ruleset_xml_parse_sets(rs, tree, err) != 0) - goto err; - - if (nft_ruleset_xml_parse_rules(rs, tree, err, rs->set_list) != 0) + if (nft_ruleset_xml_parse_ruleset(rs, tree, err) != 0) goto err; mxmlDelete(tree); |