summaryrefslogtreecommitdiffstats
path: root/src/ct.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ct.c')
-rw-r--r--src/ct.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/ct.c b/src/ct.c
index 99f450a7..3a6a4e57 100644
--- a/src/ct.c
+++ b/src/ct.c
@@ -238,22 +238,27 @@ static const struct ct_template ct_templates[] = {
BYTEORDER_HOST_ENDIAN, 16),
};
-static void ct_expr_print(const struct expr *expr)
+static void ct_print(enum nft_ct_keys key, int8_t dir)
{
const struct symbolic_constant *s;
printf("ct ");
- if (expr->ct.direction < 0)
+ if (dir < 0)
goto done;
for (s = ct_dir_tbl.symbols; s->identifier != NULL; s++) {
- if (expr->ct.direction == (int) s->value) {
+ if (dir == (int)s->value) {
printf("%s ", s->identifier);
break;
}
}
done:
- printf("%s", ct_templates[expr->ct.key].token);
+ printf("%s", ct_templates[key].token);
+}
+
+static void ct_expr_print(const struct expr *expr)
+{
+ ct_print(expr->ct.key, expr->ct.direction);
}
static bool ct_expr_cmp(const struct expr *e1, const struct expr *e2)