summaryrefslogtreecommitdiffstats
path: root/src/evaluate.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2019-08-07 23:51:18 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2019-08-08 12:03:26 +0200
commita805eab34e34aaf2f08c607e770ec0b8df992f4a (patch)
tree20cbd71040e52ee4d4fe3dc450e5d9d6eeb71d1d /src/evaluate.c
parente8417f7bcbfe20524307557f8687bdd3a665f73e (diff)
src: add parse_ctx object
This object stores the dynamic symbol tables that are loaded from files. Pass this object to datatype parse functions, although this new parameter is not used yet, this is just a preparation patch. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/evaluate.c')
-rw-r--r--src/evaluate.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 48c65cd2..df8e808f 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -223,6 +223,7 @@ static int set_not_found(struct eval_ctx *ctx, const struct location *loc,
*/
static int expr_evaluate_symbol(struct eval_ctx *ctx, struct expr **expr)
{
+ struct parse_ctx parse_ctx = { .tbl = &ctx->nft->output.tbl, };
struct error_record *erec;
struct table *table;
struct set *set;
@@ -231,7 +232,7 @@ static int expr_evaluate_symbol(struct eval_ctx *ctx, struct expr **expr)
switch ((*expr)->symtype) {
case SYMBOL_VALUE:
datatype_set(*expr, ctx->ectx.dtype);
- erec = symbol_parse(*expr, &new);
+ erec = symbol_parse(&parse_ctx, *expr, &new);
if (erec != NULL) {
erec_queue(erec, ctx->msgs);
return -1;
@@ -2541,10 +2542,11 @@ static int stmt_evaluate_reject_default(struct eval_ctx *ctx,
static int stmt_evaluate_reject_icmp(struct eval_ctx *ctx, struct stmt *stmt)
{
+ struct parse_ctx parse_ctx = { .tbl = &ctx->nft->output.tbl, };
struct error_record *erec;
struct expr *code;
- erec = symbol_parse(stmt->reject.expr, &code);
+ erec = symbol_parse(&parse_ctx, stmt->reject.expr, &code);
if (erec != NULL) {
erec_queue(erec, ctx->msgs);
return -1;