summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlvaro Neira <alvaroneay@gmail.com>2015-03-16 16:06:09 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2015-03-17 11:47:44 +0100
commit8b2d59dadb920ed45dd347e2962ef4cf216d0c57 (patch)
tree487a2483cff5917ca892ae963690c1f11faadfca
parentd27456460a2867d69a6bbed8aa0019f65ab42eac (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.h1
-rw-r--r--src/common.c12
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);
}