summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2018-04-13 16:52:35 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-04-14 13:53:02 +0200
commit2b8f691bd43db5ee120d3d73b1bac6643773b7dc (patch)
tree37c5cbcbb3e05862bf1a9075fc74356b3624f386
parent778de37d82e7bc90b4ba2abdfb0ebc8ddb2e7302 (diff)
parser_bison: Pass struct nft_ctx to parser_init()
Signature of parser_init() got quite huge, so simply pass the whole context pointer to it - most of the parameters are just taken from there anyway. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--include/parser.h6
-rw-r--r--src/libnftables.c6
-rw-r--r--src/parser_bison.y14
3 files changed, 10 insertions, 16 deletions
diff --git a/include/parser.h b/include/parser.h
index 79612757..ea41ca03 100644
--- a/include/parser.h
+++ b/include/parser.h
@@ -31,10 +31,8 @@ struct parser_state {
struct mnl_socket;
-extern void parser_init(struct mnl_socket *nf_sock, struct nft_cache *cache,
- struct parser_state *state, struct list_head *msgs,
- struct list_head *cmds, unsigned int debug_level,
- struct output_ctx *octx);
+extern void parser_init(struct nft_ctx *nft, struct parser_state *state,
+ struct list_head *msgs, struct list_head *cmds);
extern int nft_parse(struct nft_ctx *ctx, void *, struct parser_state *state);
extern void *scanner_init(struct parser_state *state);
diff --git a/src/libnftables.c b/src/libnftables.c
index 56a98ab1..f336dbc3 100644
--- a/src/libnftables.c
+++ b/src/libnftables.c
@@ -408,8 +408,7 @@ int nft_run_cmd_from_buffer(struct nft_ctx *nft, char *buf, size_t buflen)
nlbuf = xzalloc(nlbuflen);
snprintf(nlbuf, nlbuflen, "%s\n", buf);
- parser_init(nft->nf_sock, &nft->cache, &state,
- &msgs, &cmds, nft->debug_mask, &nft->output);
+ parser_init(nft, &state, &msgs, &cmds);
scanner = scanner_init(&state);
scanner_push_buffer(scanner, &indesc_cmdline, nlbuf);
@@ -445,8 +444,7 @@ int nft_run_cmd_from_filename(struct nft_ctx *nft, const char *filename)
if (!strcmp(filename, "-"))
filename = "/dev/stdin";
- parser_init(nft->nf_sock, &nft->cache, &state,
- &msgs, &cmds, nft->debug_mask, &nft->output);
+ parser_init(nft, &state, &msgs, &cmds);
scanner = scanner_init(&state);
if (scanner_read_file(scanner, filename, &internal_location) < 0) {
rc = -1;
diff --git a/src/parser_bison.y b/src/parser_bison.y
index 1ca5d404..e2440be1 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -36,21 +36,19 @@
#include "parser_bison.h"
-void parser_init(struct mnl_socket *nf_sock, struct nft_cache *cache,
- struct parser_state *state, struct list_head *msgs,
- struct list_head *cmds, unsigned int debug_mask,
- struct output_ctx *octx)
+void parser_init(struct nft_ctx *nft, struct parser_state *state,
+ struct list_head *msgs, struct list_head *cmds)
{
memset(state, 0, sizeof(*state));
init_list_head(&state->top_scope.symbols);
state->msgs = msgs;
state->cmds = cmds;
state->scopes[0] = scope_init(&state->top_scope, NULL);
- state->ectx.cache = cache;
+ state->ectx.cache = &nft->cache;
state->ectx.msgs = msgs;
- state->ectx.nf_sock = nf_sock;
- state->ectx.debug_mask = debug_mask;
- state->ectx.octx = octx;
+ state->ectx.nf_sock = nft->nf_sock;
+ state->ectx.debug_mask = nft->debug_mask;
+ state->ectx.octx = &nft->output;
}
static void yyerror(struct location *loc, struct nft_ctx *nft, void *scanner,