summaryrefslogtreecommitdiffstats
path: root/src/expression.c
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2017-09-14 22:59:13 +0200
committerFlorian Westphal <fw@strlen.de>2017-09-27 15:18:14 +0200
commitda06a74244cbe4b02431ea2c34b8299f3562c9ff (patch)
tree5f060ff612d59e67d15b3ac796c9af85d6dd9d14 /src/expression.c
parent027734420b213560ab7e261d6b4b969e16e97343 (diff)
src: store expression as set key instead of data type
Doing so retains legth information in case of unqualified data types, e.g. we now have 'meta iifname' expression instead of an (unqualified) string type. This allows to eventually use iifnames as set keys without adding yet another special data type for them. Signed-off-by: Florian Westphal <fw@strlen.de> Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expression.c')
-rw-r--r--src/expression.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/expression.c b/src/expression.c
index d41ada39..ff3550c7 100644
--- a/src/expression.c
+++ b/src/expression.c
@@ -832,7 +832,7 @@ struct expr *set_expr_alloc(const struct location *loc, const struct set *set)
return set_expr;
set_expr->set_flags = set->flags;
- set_expr->dtype = set->keytype;
+ set_expr->dtype = set->key->dtype;
return set_expr;
}
@@ -960,7 +960,7 @@ struct expr *set_ref_expr_alloc(const struct location *loc, struct set *set)
{
struct expr *expr;
- expr = expr_alloc(loc, &set_ref_expr_ops, set->keytype, 0, 0);
+ expr = expr_alloc(loc, &set_ref_expr_ops, set->key->dtype, 0, 0);
expr->set = set_get(set);
expr->flags |= EXPR_F_CONSTANT;
return expr;