bitmask types default to flagcmp now, thus do not suppress OP_EQ. Else,
rule filter output tcp flags syn
rule filter output tcp flags == syn
are both displayed as 'flags syn'.
Signed-off-by: Florian Westphal <fw@strlen.de>
printf(")");
}
+static bool must_print_eq_op(const struct expr *expr)
+{
+ if (expr->right->dtype->basetype != NULL &&
+ expr->right->dtype->basetype->type == TYPE_BITMASK)
+ return true;
+
+ return expr->left->ops->type == EXPR_BINOP;
+}
+
static void binop_expr_print(const struct expr *expr)
{
binop_arg_print(expr, expr->left);
if (expr_op_symbols[expr->op] &&
- (expr->op != OP_EQ ||
- expr->left->ops->type == EXPR_BINOP))
+ (expr->op != OP_EQ || must_print_eq_op(expr)))
printf(" %s ", expr_op_symbols[expr->op]);
else
printf(" ");