diff options
Diffstat (limited to 'src/expression.c')
-rw-r--r-- | src/expression.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/expression.c b/src/expression.c index 273038e6..393c1b2b 100644 --- a/src/expression.c +++ b/src/expression.c @@ -600,6 +600,19 @@ struct expr *relational_expr_alloc(const struct location *loc, enum ops op, return expr; } +void relational_expr_pctx_update(struct proto_ctx *ctx, + const struct expr *expr) +{ + const struct expr *left = expr->left; + + assert(expr->ops->type == EXPR_RELATIONAL); + assert(expr->op == OP_EQ); + + if (left->ops->pctx_update && + (left->flags & EXPR_F_PROTOCOL)) + left->ops->pctx_update(ctx, expr); +} + static void range_expr_print(const struct expr *expr, struct output_ctx *octx) { octx->numeric += NFT_NUMERIC_ALL + 1; |