diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-07-26 15:56:37 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-07-26 16:15:51 +0200 |
commit | 2d16da839c46428c546d3ff372d919236920ead1 (patch) | |
tree | fd92c20dae6f07eb6f62493f15cda3dc5d44f899 /src/table.c | |
parent | 44928cd546f00a73797a570dcaee44f0bfe5bea7 (diff) |
src: remove version from XML and JSON representations
This patch removes the version XML node and the version JSON field
in all our existing objects. The current versioning approach
consists of adding a version field to every object representation
in XML and JSON. While listing my entire rule-set, one can notice
that this approach is too bloated.
Once the library enters stable stage, if we need to obsolete a XML
node and a JSON field, we can follow this procedure:
1) Remove the XML node and the JSON field from the output, so fresh
outputs will not contain the old ones anymore.
2) Do not remove the parsing of the old XML node and the JSON field
inmediately. We have to keep supporting the parsing for a while
to avoid breaking the interpretion of old XML/JSON files. We can
spot a warning to warn about it, so users generate a fresh
output again.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/table.c')
-rw-r--r-- | src/table.c | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/src/table.c b/src/table.c index 1d17d3b..1f4fe76 100644 --- a/src/table.c +++ b/src/table.c @@ -223,8 +223,6 @@ static int nft_table_xml_parse(struct nft_table *t, char *xml) #ifdef XML_PARSING mxml_node_t *tree = NULL; mxml_node_t *node = NULL; - char *endptr = NULL; - int64_t stmp; int family; /* NOTE: all XML nodes are mandatory */ @@ -234,18 +232,6 @@ static int nft_table_xml_parse(struct nft_table *t, char *xml) if (tree == NULL) return -1; - /* Check the version of the XML */ - if (mxmlElementGetAttr(tree, "version") == NULL) { - mxmlDelete(tree); - return -1; - } - - stmp = strtoll(mxmlElementGetAttr(tree, "version"), &endptr, 10); - if (stmp == LLONG_MAX || *endptr || stmp != NFT_TABLE_XML_VERSION) { - mxmlDelete(tree); - return -1; - } - /* Get and set the name of the table */ if (mxmlElementGetAttr(tree, "name") == NULL) { mxmlDelete(tree); @@ -300,7 +286,6 @@ static int nft_table_json_parse(struct nft_table *t, char *json) #ifdef JSON_PARSING json_t *root; json_error_t error; - uint64_t version; uint32_t table_flag; const char *str; int family; @@ -317,15 +302,6 @@ static int nft_table_json_parse(struct nft_table *t, char *json) goto err; } - if (nft_jansson_value_parse_val(root, "version", - NFT_TYPE_U64, &version) == -1) - goto err; - - if (version != NFT_TABLE_JSON_VERSION) { - errno = EINVAL; - goto err; - } - str = nft_jansson_value_parse_str(root, "name"); if (str == NULL) goto err; @@ -392,27 +368,24 @@ static int nft_table_snprintf_json(char *buf, size_t size, struct nft_table *t) return snprintf(buf, size, "{\"table\" : {" "\"name\" : \"%s\"," - "\"version\" : %d," "\"properties\" : {" "\"family\" : \"%s\"," "\"table_flags\" : %d" "}" "}" "}" , - t->name, NFT_TABLE_JSON_VERSION, - nft_family2str(t->family), t->table_flags); + t->name, nft_family2str(t->family), t->table_flags); } static int nft_table_snprintf_xml(char *buf, size_t size, struct nft_table *t) { - return snprintf(buf, size, "<table name=\"%s\" version=\"%d\">" + return snprintf(buf, size, "<table name=\"%s\">" "<properties>" "<family>%s</family>" "<table_flags>%d</table_flags>" "</properties>" "</table>", - t->name, NFT_TABLE_XML_VERSION, - nft_family2str(t->family), t->table_flags); + t->name, nft_family2str(t->family), t->table_flags); } static int nft_table_snprintf_default(char *buf, size_t size, struct nft_table *t) |