diff options
author | Alvaro Neira <alvaroneay@gmail.com> | 2015-03-16 16:06:09 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-03-17 11:47:44 +0100 |
commit | 8b2d59dadb920ed45dd347e2962ef4cf216d0c57 (patch) | |
tree | 487a2483cff5917ca892ae963690c1f11faadfca | |
parent | d27456460a2867d69a6bbed8aa0019f65ab42eac (diff) |
parser: Add operation not supported error message
If we try to import a ruleset in json or xml and the library was not
compile with support for those, this shows a misleading error.
To resolve this problem, this patch sets up EOPNOTSUPP by default when
we create the nft_parse_err structure.
Signed-off-by: Alvaro Neira Ayuso <alvaroneay@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | include/libnftnl/common.h | 1 | ||||
-rw-r--r-- | src/common.c | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/include/libnftnl/common.h b/include/libnftnl/common.h index f8f1304..14db823 100644 --- a/include/libnftnl/common.h +++ b/include/libnftnl/common.h @@ -7,6 +7,7 @@ enum { NFT_PARSE_EBADINPUT = 0, NFT_PARSE_EMISSINGNODE, NFT_PARSE_EBADTYPE, + NFT_PARSE_EOPNOTSUPP, }; enum nft_output_type { diff --git a/src/common.c b/src/common.c index 7fce48e..d69b522 100644 --- a/src/common.c +++ b/src/common.c @@ -44,7 +44,15 @@ EXPORT_SYMBOL(nft_nlmsg_build_hdr); struct nft_parse_err *nft_parse_err_alloc(void) { - return calloc(1, sizeof(struct nft_parse_err)); + struct nft_parse_err *err; + + err = calloc(1, sizeof(struct nft_parse_err)); + if (err == NULL) + return NULL; + + err->error = NFT_PARSE_EOPNOTSUPP; + + return err; } EXPORT_SYMBOL(nft_parse_err_alloc); @@ -66,6 +74,8 @@ int nft_parse_perror(const char *msg, struct nft_parse_err *err) case NFT_PARSE_EBADTYPE: return fprintf(stderr, "%s: Invalid type in node \"%s\"\n", msg, err->node_name); + case NFT_PARSE_EOPNOTSUPP: + return fprintf(stderr, "%s: Operation not supported\n", msg); default: return fprintf(stderr, "%s: Undefined error\n", msg); } |