diff options
author | Phil Sutter <phil@nwl.cc> | 2018-06-08 17:27:13 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-06-11 11:31:49 +0200 |
commit | d4bd008be257cc95b2e9625cc5506b9e925c766d (patch) | |
tree | 07582fa8e876be57b0ff350c78fcabf072753308 /src | |
parent | 4e20921ea9200453fbfbec0e9dc891ed37b95a6c (diff) |
JSON: Call verdict maps 'vmap' in JSON as well
This way JSON format is more consistent with the standard one.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/json.c | 8 | ||||
-rw-r--r-- | src/parser_json.c | 2 |
2 files changed, 8 insertions, 2 deletions
@@ -560,7 +560,13 @@ json_t *mapping_expr_json(const struct expr *expr, struct output_ctx *octx) json_t *map_expr_json(const struct expr *expr, struct output_ctx *octx) { - return json_pack("{s:{s:o, s:o}}", "map", + const char *type = "map"; + + if (expr->mappings->ops->type == EXPR_SET_REF && + expr->mappings->set->datatype->type == TYPE_VERDICT) + type = "vmap"; + + return json_pack("{s:{s:o, s:o}}", type, "left", expr_print_json(expr->map, octx), "right", expr_print_json(expr->mappings, octx)); } diff --git a/src/parser_json.c b/src/parser_json.c index 6e14fb72..e340bebc 100644 --- a/src/parser_json.c +++ b/src/parser_json.c @@ -2064,7 +2064,7 @@ static struct stmt *json_parse_stmt(struct json_ctx *ctx, json_t *root) return NULL; /* Yes, verdict_map_stmt is actually an expression */ - if (!strcmp(type, "map")) { + if (!strcmp(type, "vmap")) { struct expr *expr = json_parse_map_expr(ctx, type, tmp); if (!expr) { |