From e87d2f9ef8a4a298de5514b30ec2d43d3c90a644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Neira=20Ayuso?= Date: Mon, 6 Jan 2014 00:51:14 +0100 Subject: src: new error reporting approach for XML/JSON parsers I have added a new structure for reporting some errors in parser that we can't cover with errno. In this patch, we have three errors that we can't cover with errno: NFT_PARSE_EBADINPUT : Bad XML/JSON format in the input NFT_PARSE_EMISSINGNODE : Missing node in our input NFT_PARSE_EBADTYPE : Wrong type value in a node Signed-off-by: Alvaro Neira Ayuso Signed-off-by: Pablo Neira Ayuso --- include/libnftables/ruleset.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/libnftables/ruleset.h') diff --git a/include/libnftables/ruleset.h b/include/libnftables/ruleset.h index 1ec3059..b523346 100644 --- a/include/libnftables/ruleset.h +++ b/include/libnftables/ruleset.h @@ -30,7 +30,8 @@ void nft_ruleset_attr_unset(struct nft_ruleset *r, uint16_t attr); void nft_ruleset_attr_set(struct nft_ruleset *r, uint16_t attr, void *data); const void *nft_ruleset_attr_get(const struct nft_ruleset *r, uint16_t attr); -int nft_ruleset_parse(struct nft_ruleset *rs, enum nft_parse_type type, const char *data); +int nft_ruleset_parse(struct nft_ruleset *rs, enum nft_parse_type type, + const char *data, struct nft_parse_err *err); int nft_ruleset_snprintf(char *buf, size_t size, const struct nft_ruleset *rs, uint32_t type, uint32_t flags); int nft_ruleset_fprintf(FILE *fp, const struct nft_ruleset *rs, uint32_t type, uint32_t flags); -- cgit v1.2.3 From d34f0c0508f08a84f4351f2a9369e85ccccfe5a0 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Date: Thu, 9 Jan 2014 12:19:12 +0100 Subject: src: add interface to parse from file This patch adds a new API to parse rule-set expressed in XML/JSON from a file. A new enum nft_parse_input type is added for this purpose. Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso --- include/libnftables/ruleset.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/libnftables/ruleset.h') diff --git a/include/libnftables/ruleset.h b/include/libnftables/ruleset.h index b523346..f916fba 100644 --- a/include/libnftables/ruleset.h +++ b/include/libnftables/ruleset.h @@ -32,6 +32,8 @@ const void *nft_ruleset_attr_get(const struct nft_ruleset *r, uint16_t attr); int nft_ruleset_parse(struct nft_ruleset *rs, enum nft_parse_type type, const char *data, struct nft_parse_err *err); +int nft_ruleset_parse_file(struct nft_ruleset *rs, enum nft_parse_type type, + FILE *fp, struct nft_parse_err *err); int nft_ruleset_snprintf(char *buf, size_t size, const struct nft_ruleset *rs, uint32_t type, uint32_t flags); int nft_ruleset_fprintf(FILE *fp, const struct nft_ruleset *rs, uint32_t type, uint32_t flags); -- cgit v1.2.3 From 59e949294f4688bafe44b7def2972987224520c8 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 20 Jan 2014 10:26:57 +0100 Subject: rename library to libnftnl We plan to use this library name for the higher layer library. Signed-off-by: Pablo Neira Ayuso --- include/libnftables/ruleset.h | 44 ------------------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 include/libnftables/ruleset.h (limited to 'include/libnftables/ruleset.h') diff --git a/include/libnftables/ruleset.h b/include/libnftables/ruleset.h deleted file mode 100644 index f916fba..0000000 --- a/include/libnftables/ruleset.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _LIBNFTABLES_RULESET_H_ -#define _LIBNFTABLES_RULESET_H_ - -#include - -#include -#include -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct nft_ruleset; - -struct nft_ruleset *nft_ruleset_alloc(void); -void nft_ruleset_free(struct nft_ruleset *r); - -enum { - NFT_RULESET_ATTR_TABLELIST = 0, - NFT_RULESET_ATTR_CHAINLIST, - NFT_RULESET_ATTR_SETLIST, - NFT_RULESET_ATTR_RULELIST, -}; - -bool nft_ruleset_attr_is_set(const struct nft_ruleset *r, uint16_t attr); -void nft_ruleset_attr_unset(struct nft_ruleset *r, uint16_t attr); -void nft_ruleset_attr_set(struct nft_ruleset *r, uint16_t attr, void *data); -const void *nft_ruleset_attr_get(const struct nft_ruleset *r, uint16_t attr); - -int nft_ruleset_parse(struct nft_ruleset *rs, enum nft_parse_type type, - const char *data, struct nft_parse_err *err); -int nft_ruleset_parse_file(struct nft_ruleset *rs, enum nft_parse_type type, - FILE *fp, struct nft_parse_err *err); -int nft_ruleset_snprintf(char *buf, size_t size, const struct nft_ruleset *rs, uint32_t type, uint32_t flags); -int nft_ruleset_fprintf(FILE *fp, const struct nft_ruleset *rs, uint32_t type, uint32_t flags); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* _LIBNFTABLES_RULESET_H_ */ -- cgit v1.2.3