From e787d9852c563bf9ebd53f560da83403f6d35b4c Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Mon, 4 Sep 2017 09:55:57 +0200 Subject: 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 Signed-off-by: Pablo Neira Ayuso --- src/main.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src') 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); -- cgit v1.2.3