From 51370f0eedb1c8167ab2c340d2a53f0d9f02509c Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Thu, 23 May 2013 12:03:04 +0200 Subject: src: add support for XML parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch adds capabilities for parsing a XML table/chain/rule. Some comments: * The XML data is case sensitive (so asd != ASD != asd) * All exported functions receive XML and return an object (table|chain|rule). * To compile the lib with XML parsing support, run './configure --with-xml-parsing' * XML parsing is done with libmxml (http://minixml.org). XML parsing depends on this external lib, this dependency is optional at compile time. NOTE: expr/target and expr/match binary data are exported. [ Fixed to compile without --with-xml-parsing --pablo ] Signed-off-by: Arturo Borrero González --- include/libnftables/table.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/libnftables/table.h') diff --git a/include/libnftables/table.h b/include/libnftables/table.h index 55096f8..658230c 100644 --- a/include/libnftables/table.h +++ b/include/libnftables/table.h @@ -33,6 +33,13 @@ enum { NFT_TABLE_O_XML, }; +enum nft_table_parse_type { + NFT_TABLE_PARSE_NONE = 0, + NFT_TABLE_PARSE_XML, + NFT_TABLE_PARSE_MAX, +}; + +int nft_table_parse(struct nft_table *t, enum nft_table_parse_type type, char *data); int nft_table_snprintf(char *buf, size_t size, struct nft_table *t, uint32_t type, uint32_t flags); struct nlmsghdr *nft_table_nlmsg_build_hdr(char *buf, uint16_t cmd, uint16_t family, uint16_t type, uint32_t seq); -- cgit v1.2.3