summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>2013-08-05 14:01:28 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-08-05 14:29:14 +0200
commitb3e73fda10db2b1aa2ef26690bf285839e4ea22a (patch)
tree698e12091152ab0e59047566e50233c63cb0fbf6
parentd7d29351d57864c2d71a5d83f9d7aae092e2b9e4 (diff)
src: xml: table/chain delete properties
This patch deletes the <properties> node in chain and table XML objects. For this to work, the first tree search with MXML_DESCEND_FIRST flag is moved to the next node. Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/chain.c18
-rw-r--r--src/table.c17
-rw-r--r--tests/xmlfiles/01-table.xml6
-rw-r--r--tests/xmlfiles/02-table.xml6
-rw-r--r--tests/xmlfiles/10-chain.xml16
-rw-r--r--tests/xmlfiles/11-chain.xml16
-rw-r--r--tests/xmlfiles/12-chain.xml16
7 files changed, 35 insertions, 60 deletions
diff --git a/src/chain.c b/src/chain.c
index c24aeb0..1964353 100644
--- a/src/chain.c
+++ b/src/chain.c
@@ -648,12 +648,9 @@ static int nft_chain_xml_parse(struct nft_chain *c, char *xml)
c->packets = utmp;
c->flags |= (1 << NFT_CHAIN_ATTR_PACKETS);
- /* Ignore <properties> node */
- node = mxmlFindElement(tree, tree, "properties", NULL, NULL,
- MXML_DESCEND_FIRST);
-
/* Get and set <type> */
- node = mxmlFindElement(tree, tree, "type", NULL, NULL, MXML_DESCEND);
+ node = mxmlFindElement(tree, tree, "type", NULL, NULL,
+ MXML_DESCEND_FIRST);
if (node == NULL) {
mxmlDelete(tree);
return -1;
@@ -820,12 +817,8 @@ static int nft_chain_snprintf_xml(char *buf, size_t size, struct nft_chain *c)
ret = snprintf(buf, size,
"<chain name=\"%s\" handle=\"%"PRIu64"\""
" bytes=\"%"PRIu64"\" packets=\"%"PRIu64"\">"
- "<properties>"
- "<type>%s</type>"
- "<table>%s</table>"
- "<prio>%d</prio>"
- "<use>%d</use>"
- "<hooknum>%s</hooknum>",
+ "<type>%s</type><table>%s</table><prio>%d</prio>"
+ "<use>%d</use><hooknum>%s</hooknum>",
c->name, c->handle, c->bytes, c->packets,
c->type, c->table,
c->prio, c->use, hooknum2str_array[c->hooknum]);
@@ -842,8 +835,7 @@ static int nft_chain_snprintf_xml(char *buf, size_t size, struct nft_chain *c)
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
}
- ret = snprintf(buf+offset, size, "<family>%s</family>"
- "</properties></chain>",
+ ret = snprintf(buf+offset, size, "<family>%s</family></chain>",
nft_family2str(c->family));
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
diff --git a/src/table.c b/src/table.c
index 402e8c1..76a1b4b 100644
--- a/src/table.c
+++ b/src/table.c
@@ -244,12 +244,9 @@ static int nft_table_xml_parse(struct nft_table *t, char *xml)
t->name = strdup(mxmlElementGetAttr(tree, "name"));
t->flags |= (1 << NFT_TABLE_ATTR_NAME);
- /* Ignore <properties> node */
- node = mxmlFindElement(tree, tree, "properties", NULL, NULL,
- MXML_DESCEND_FIRST);
-
/* Get the and set <family> node */
- node = mxmlFindElement(tree, tree, "family", NULL, NULL, MXML_DESCEND);
+ node = mxmlFindElement(tree, tree, "family", NULL, NULL,
+ MXML_DESCEND_FIRST);
if (node == NULL) {
mxmlDelete(tree);
return -1;
@@ -363,13 +360,9 @@ static int nft_table_snprintf_json(char *buf, size_t size, struct nft_table *t)
static int nft_table_snprintf_xml(char *buf, size_t size, struct nft_table *t)
{
- return snprintf(buf, size, "<table name=\"%s\">"
- "<properties>"
- "<family>%s</family>"
- "<table_flags>%d</table_flags>"
- "</properties>"
- "</table>",
- t->name, nft_family2str(t->family), t->table_flags);
+ return snprintf(buf, size, "<table name=\"%s\"><family>%s</family>"
+ "<table_flags>%d</table_flags></table>",
+ t->name, nft_family2str(t->family), t->table_flags);
}
static int nft_table_snprintf_default(char *buf, size_t size, struct nft_table *t)
diff --git a/tests/xmlfiles/01-table.xml b/tests/xmlfiles/01-table.xml
index 133041d..2e33354 100644
--- a/tests/xmlfiles/01-table.xml
+++ b/tests/xmlfiles/01-table.xml
@@ -1,6 +1,4 @@
<table name="filter">
- <properties>
- <family>ip</family>
- <table_flags>0</table_flags>
- </properties>
+ <family>ip</family>
+ <table_flags>0</table_flags>
</table>
diff --git a/tests/xmlfiles/02-table.xml b/tests/xmlfiles/02-table.xml
index 0aef342..27d0208 100644
--- a/tests/xmlfiles/02-table.xml
+++ b/tests/xmlfiles/02-table.xml
@@ -1,6 +1,4 @@
<table name="nat">
- <properties>
- <family>ip6</family>
- <table_flags>0</table_flags>
- </properties>
+ <family>ip6</family>
+ <table_flags>0</table_flags>
</table>
diff --git a/tests/xmlfiles/10-chain.xml b/tests/xmlfiles/10-chain.xml
index 4de1020..6d1875e 100644
--- a/tests/xmlfiles/10-chain.xml
+++ b/tests/xmlfiles/10-chain.xml
@@ -1,11 +1,9 @@
<chain name="test" handle="0" bytes="0" packets="0">
- <properties>
- <type>filter</type>
- <table>filter</table>
- <prio>0</prio>
- <use>1</use>
- <hooknum>NF_INET_LOCAL_IN</hooknum>
- <policy>accept</policy>
- <family>ip</family>
- </properties>
+ <type>filter</type>
+ <table>filter</table>
+ <prio>0</prio>
+ <use>1</use>
+ <hooknum>NF_INET_LOCAL_IN</hooknum>
+ <policy>accept</policy>
+ <family>ip</family>
</chain>
diff --git a/tests/xmlfiles/11-chain.xml b/tests/xmlfiles/11-chain.xml
index 310aeaa..986cd81 100644
--- a/tests/xmlfiles/11-chain.xml
+++ b/tests/xmlfiles/11-chain.xml
@@ -1,11 +1,9 @@
<chain name="test" handle="0" bytes="59" packets="1">
- <properties>
- <type>filter</type>
- <table>filter</table>
- <prio>0</prio>
- <use>1</use>
- <hooknum>NF_INET_FORWARD</hooknum>
- <policy>drop</policy>
- <family>ip6</family>
- </properties>
+ <type>filter</type>
+ <table>filter</table>
+ <prio>0</prio>
+ <use>1</use>
+ <hooknum>NF_INET_FORWARD</hooknum>
+ <policy>drop</policy>
+ <family>ip6</family>
</chain>
diff --git a/tests/xmlfiles/12-chain.xml b/tests/xmlfiles/12-chain.xml
index 20ee2a8..23fef8c 100644
--- a/tests/xmlfiles/12-chain.xml
+++ b/tests/xmlfiles/12-chain.xml
@@ -1,11 +1,9 @@
<chain name="foo" handle="100" bytes="59264154979" packets="2548796325">
- <properties>
- <type>nat</type>
- <table>nat</table>
- <prio>0</prio>
- <use>1</use>
- <hooknum>NF_INET_POST_ROUTING</hooknum>
- <policy>accept</policy>
- <family>ip</family>
- </properties>
+ <type>nat</type>
+ <table>nat</table>
+ <prio>0</prio>
+ <use>1</use>
+ <hooknum>NF_INET_POST_ROUTING</hooknum>
+ <policy>accept</policy>
+ <family>ip</family>
</chain>