summaryrefslogtreecommitdiffstats
path: root/src/utils.c
diff options
context:
space:
mode:
authorArturo Borrero <arturo.borrero.glez@gmail.com>2013-07-25 22:20:33 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-25 22:28:53 +0200
commit4b71a4e268409990b32f57adc8a39ce623755f23 (patch)
tree11d06d27b20f9b8f01f2902a01d4023eca00913f /src/utils.c
parentf1427774b505e49c381fe51bde58a1cb431a1f70 (diff)
src: utils: add verdict2str and use it
Add verdict2str() and str2verdict() helper functions and use in XML. While at it, I've fixed a small style issue in the data_reg JSON output and a bug in the data_reg XML parser: The parser walked the top level tree, instead of single <data_reg> node. Introduced in (51370f0 src: add support for XML parsing). Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 4a0bb9c..7b5b974 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -17,6 +17,9 @@
#include <errno.h>
#include <inttypes.h>
+#include <linux/netfilter.h>
+#include <linux/netfilter/nf_tables.h>
+
const char *nft_family2str(uint32_t family)
{
switch (family) {
@@ -117,3 +120,37 @@ int nft_strtoi(const char *string, int base, void *out, enum nft_type type)
return 0;
}
+
+const char *nft_verdict2str(uint32_t verdict)
+{
+ switch (verdict) {
+ case NF_ACCEPT:
+ return "accept";
+ case NF_DROP:
+ return "drop";
+ case NFT_RETURN:
+ return "return";
+ case NFT_JUMP:
+ return "jump";
+ case NFT_GOTO:
+ return "goto";
+ default:
+ return "unknown";
+ }
+}
+
+int nft_str2verdict(const char *verdict)
+{
+ if (strcmp(verdict, "accept") == 0)
+ return NF_ACCEPT;
+ else if (strcmp(verdict, "drop") == 0)
+ return NF_DROP;
+ else if (strcmp(verdict, "return") == 0)
+ return NFT_RETURN;
+ else if (strcmp(verdict, "jump") == 0)
+ return NFT_JUMP;
+ else if (strcmp(verdict, "goto") == 0)
+ return NFT_GOTO;
+
+ return -1;
+}