diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-06-17 18:05:15 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-06-23 19:00:02 +0200 |
commit | 8f61a69e035d04834937fc28a42cf1841d825054 (patch) | |
tree | 624e94701337ad494594da1f5c23c80b1552b935 | |
parent | ca8fd77a723e5813f93e0f9b1c473c7efca39d4d (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>
-rw-r--r-- | src/optimize.c | 12 |
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: |