summaryrefslogtreecommitdiffstats
path: root/include/nftables/nftables.h
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2017-10-23 17:33:16 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2017-10-24 15:23:52 +0200
commit49900d448ac95ecabd038a9936d467d6e37aacec (patch)
tree9094e69039de82336c70e466e60f21daf0a8972f /include/nftables/nftables.h
parentd4210b372ac78c8e85ecc6e2317b76daafba15c9 (diff)
libnftables: Move library stuff out of main.c
This creates src/libnftables.c and include/nftables/nftables.h which will become the central elements of libnftables. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/nftables/nftables.h')
-rw-r--r--include/nftables/nftables.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/include/nftables/nftables.h b/include/nftables/nftables.h
new file mode 100644
index 00000000..44d3e95d
--- /dev/null
+++ b/include/nftables/nftables.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2017 Eric Leblond <eric@regit.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+#ifndef LIB_NFTABLES_H
+#define LIB_NFTABLES_H
+
+#define _GNU_SOURCE
+#include <stdint.h>
+#include <stdio.h>
+#include <stdbool.h>
+
+struct nft_ctx;
+
+enum debug_level {
+ DEBUG_SCANNER = 0x1,
+ DEBUG_PARSER = 0x2,
+ DEBUG_EVALUATION = 0x4,
+ DEBUG_NETLINK = 0x8,
+ DEBUG_MNL = 0x10,
+ DEBUG_PROTO_CTX = 0x20,
+ DEBUG_SEGTREE = 0x40,
+};
+
+enum numeric_level {
+ NUMERIC_NONE,
+ NUMERIC_ADDR,
+ NUMERIC_PORT,
+ NUMERIC_ALL,
+};
+
+/**
+ * Possible flags to pass to nft_ctx_new()
+ */
+#define NFT_CTX_DEFAULT 0
+
+/**
+ * Exit codes returned by nft_run_cmd_from_*()
+ */
+enum nftables_exit_codes {
+ NFT_EXIT_SUCCESS = 0,
+ NFT_EXIT_FAILURE = 1,
+ NFT_EXIT_NOMEM = 2,
+ NFT_EXIT_NONL = 3,
+};
+
+struct nft_ctx *nft_ctx_new(uint32_t flags);
+void nft_ctx_free(struct nft_ctx *ctx);
+FILE *nft_ctx_set_output(struct nft_ctx *ctx, FILE *fp);
+
+int nft_run_cmd_from_buffer(struct nft_ctx *nft, char *buf, size_t buflen);
+int nft_run_cmd_from_filename(struct nft_ctx *nft, const char *filename);
+
+#endif /* LIB_NFTABLES_H */