summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2017-09-04 09:55:57 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2017-09-04 22:30:02 +0200
commite787d9852c563bf9ebd53f560da83403f6d35b4c (patch)
tree1bc8feda1186b177a17c6a45e355a3f713a429de /src
parentc0697eabe832d0aed974e7a72000c58b954dfe71 (diff)
src: add flags fo nft_ctx_new
By adding flags to nft_ctx_new, we will have a minimum capabilities of changing the way the nft_ctx is created. For now, this patch uses a simple value that allow the user to specify that he will handle netlink by himself. Signed-off-by: Eric Leblond <eric@regit.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/main.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/main.c b/src/main.c
index fce9bfec..702ef302 100644
--- a/src/main.c
+++ b/src/main.c
@@ -281,7 +281,12 @@ static void nft_exit(void)
mark_table_exit();
}
-static struct nft_ctx *nft_ctx_new(void)
+static void nft_ctx_netlink_init(struct nft_ctx *ctx)
+{
+ ctx->nf_sock = netlink_open_sock();
+}
+
+static struct nft_ctx *nft_ctx_new(uint32_t flags)
{
struct nft_ctx *ctx;
@@ -292,6 +297,10 @@ static struct nft_ctx *nft_ctx_new(void)
ctx->num_include_paths = 1;
ctx->parser_max_errors = 10;
init_list_head(&ctx->cache.list);
+ ctx->flags = flags;
+
+ if (flags == NFT_CTX_DEFAULT)
+ nft_ctx_netlink_init(ctx);
return ctx;
}
@@ -307,11 +316,6 @@ static void nft_ctx_free(const struct nft_ctx *ctx)
nft_exit();
}
-static void nft_ctx_netlink_init(struct nft_ctx *ctx)
-{
- ctx->nf_sock = netlink_open_sock();
-}
-
static int nft_run_cmd_from_buffer(struct nft_ctx *nft,
char *buf, size_t buflen)
{
@@ -367,9 +371,7 @@ int main(int argc, char * const *argv)
struct parser_state state;
int i, val, rc;
- nft = nft_ctx_new();
-
- nft_ctx_netlink_init(nft);
+ nft = nft_ctx_new(NFT_CTX_DEFAULT);
while (1) {
val = getopt_long(argc, argv, OPTSTRING, options, NULL);