summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2022-06-17 18:05:15 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2022-06-23 19:00:02 +0200
commit8f61a69e035d04834937fc28a42cf1841d825054 (patch)
tree624e94701337ad494594da1f5c23c80b1552b935 /src
parentca8fd77a723e5813f93e0f9b1c473c7efca39d4d (diff)
optimize: add hash expression support
Extend expr_cmp() to compare hash expressions used in relational. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/optimize.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/optimize.c b/src/optimize.c
index 1fa46cb6..abd0b72f 100644
--- a/src/optimize.c
+++ b/src/optimize.c
@@ -107,6 +107,18 @@ static bool __expr_cmp(const struct expr *expr_a, const struct expr *expr_b)
if (expr_a->numgen.offset != expr_b->numgen.offset)
return false;
break;
+ case EXPR_HASH:
+ if (expr_a->hash.mod != expr_b->hash.mod)
+ return false;
+ if (expr_a->hash.seed_set != expr_b->hash.seed_set)
+ return false;
+ if (expr_a->hash.seed != expr_b->hash.seed)
+ return false;
+ if (expr_a->hash.offset != expr_b->hash.offset)
+ return false;
+ if (expr_a->hash.type != expr_b->hash.type)
+ return false;
+ break;
case EXPR_BINOP:
return __expr_cmp(expr_a->left, expr_b->left);
default: