]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
optimize: add hash expression support
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 17 Jun 2022 16:05:15 +0000 (18:05 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 23 Jun 2022 17:00:02 +0000 (19:00 +0200)
Extend expr_cmp() to compare hash expressions used in relational.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/optimize.c

index 1fa46cb6a663f0d6affea50b6a0a43918a3c5b58..abd0b72f90d373477697243907b68ecb9d03098f 100644 (file)
@@ -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: