diff options
author | Phil Sutter <phil@nwl.cc> | 2017-10-23 17:33:16 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-10-24 15:23:52 +0200 |
commit | 49900d448ac95ecabd038a9936d467d6e37aacec (patch) | |
tree | 9094e69039de82336c70e466e60f21daf0a8972f /include/nftables | |
parent | d4210b372ac78c8e85ecc6e2317b76daafba15c9 (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')
-rw-r--r-- | include/nftables/Makefile.am | 1 | ||||
-rw-r--r-- | include/nftables/nftables.h | 58 |
2 files changed, 59 insertions, 0 deletions
diff --git a/include/nftables/Makefile.am b/include/nftables/Makefile.am new file mode 100644 index 00000000..9e31d519 --- /dev/null +++ b/include/nftables/Makefile.am @@ -0,0 +1 @@ +noinst_HEADERS = nftables.h 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 */ |