From 2a4a5a2c8ae21f2bcf7e81b5eafea91d799ee88a Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Wed, 29 Aug 2018 16:23:22 +0200 Subject: JSON: Make meta statement/expression extensible Lessons learned from fwd statement: We must not assume a given statement/expression may not receive further properties in the future. Therefore make meta value an object with a property "key" instead of just a string containing the key name. Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso --- src/json.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/json.c') diff --git a/src/json.c b/src/json.c index e8870a13..0c708c7d 100644 --- a/src/json.c +++ b/src/json.c @@ -409,7 +409,8 @@ json_t *range_expr_json(const struct expr *expr, struct output_ctx *octx) json_t *meta_expr_json(const struct expr *expr, struct output_ctx *octx) { - return json_pack("{s:s}", "meta", meta_templates[expr->meta.key].token); + return json_pack("{s:{s:s}}", "meta", + "key", meta_templates[expr->meta.key].token); } json_t *payload_expr_json(const struct expr *expr, struct output_ctx *octx) @@ -1049,7 +1050,8 @@ json_t *meta_stmt_json(const struct stmt *stmt, struct output_ctx *octx) { json_t *root; - root = json_pack("{s:s}", "meta", meta_templates[stmt->meta.key].token); + root = json_pack("{s:{s:s}}", "meta", + "key", meta_templates[stmt->meta.key].token); root = json_pack("{s:o, s:o}", "left", root, "right", expr_print_json(stmt->meta.expr, octx)); -- cgit v1.2.3