From b7d5e00d658a59fda315fff07c3b35037eb1ad85 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 29 Jul 2024 10:33:34 -0400 Subject: [PATCH] MT#55283 add pretty_print method Change-Id: Ibcc16385f9a988b949ead2f544732474b87e3a2c --- daemon/control_ng.c | 16 ++++++++++------ include/control_ng.h | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/daemon/control_ng.c b/daemon/control_ng.c index 5bacccfb5..179e36d2e 100644 --- a/daemon/control_ng.c +++ b/daemon/control_ng.c @@ -137,6 +137,8 @@ static bencode_item_t *__bencode_list(ng_parser_ctx_t *ctx) { return bencode_list(&ctx->ngbuf->buffer); } +static void bencode_pretty_print(bencode_item_t *el, GString *s); + const ng_parser_t ng_parser_native = { .collapse = bencode_collapse_str, .dict_iter = bencode_dict_iter, @@ -160,6 +162,7 @@ const ng_parser_t ng_parser_native = { .list_add = bencode_list_add, .list_add_dict = bencode_list_add_dictionary, .list_add_string = bencode_list_add_string, + .pretty_print = bencode_pretty_print, }; const ng_parser_t ng_parser_json = { .collapse = bencode_collapse_str_json, @@ -184,6 +187,7 @@ const ng_parser_t ng_parser_json = { .list_add = bencode_list_add, .list_add_dict = bencode_list_add_dictionary, .list_add_string = bencode_list_add_string, + .pretty_print = bencode_pretty_print, }; @@ -235,7 +239,7 @@ static void homer_trace_msg_out(ng_ctx *hctx, str *data) { } } -static void pretty_print(bencode_item_t *el, GString *s) { +static void bencode_pretty_print(bencode_item_t *el, GString *s) { bencode_item_t *chld; const char *sep; @@ -255,7 +259,7 @@ static void pretty_print(bencode_item_t *el, GString *s) { sep = ""; for (chld = el->child; chld; chld = chld->sibling) { g_string_append(s, sep); - pretty_print(chld, s); + bencode_pretty_print(chld, s); sep = ", "; } g_string_append(s, " ]"); @@ -266,10 +270,10 @@ static void pretty_print(bencode_item_t *el, GString *s) { sep = ""; for (chld = el->child; chld; chld = chld->sibling) { g_string_append(s, sep); - pretty_print(chld, s); + bencode_pretty_print(chld, s); g_string_append(s, ": "); chld = chld->sibling; - pretty_print(chld, s); + bencode_pretty_print(chld, s); sep = ", "; } g_string_append(s, " }"); @@ -390,7 +394,7 @@ static void control_ng_process_payload(ng_ctx *hctx, str *reply, str *data, cons log_str = g_string_sized_new(256); g_string_append_printf(log_str, "Dump for '"STR_FORMAT"' from %s: %s", STR_FMT(&cmd), addr, rtpe_config.common.log_mark_prefix); - pretty_print(parser_ctx.req, log_str); + parser_ctx.parser->pretty_print(parser_ctx.req, log_str); g_string_append(log_str, rtpe_config.common.log_mark_suffix); ilogs(control, LOG_DEBUG, "%.*s", (int) log_str->len, log_str->str); g_string_free(log_str, TRUE); @@ -562,7 +566,7 @@ send_resp: g_string_append_printf(log_str, "Response dump for '"STR_FORMAT"' to %s: %s", STR_FMT(&cmd), addr, rtpe_config.common.log_mark_prefix); - pretty_print(parser_ctx.req, log_str); + parser_ctx.parser->pretty_print(parser_ctx.req, log_str); g_string_append(log_str, rtpe_config.common.log_mark_suffix); ilogs(control, LOG_DEBUG, "%.*s", (int) log_str->len, log_str->str); g_string_free(log_str, TRUE); diff --git a/include/control_ng.h b/include/control_ng.h index 4c80063ba..db0145057 100644 --- a/include/control_ng.h +++ b/include/control_ng.h @@ -139,6 +139,7 @@ struct ng_parser { bencode_item_t *(*list_add)(bencode_item_t *, bencode_item_t *); bencode_item_t *(*list_add_dict)(bencode_item_t *); void (*list_add_string)(bencode_item_t *, const char *); + void (*pretty_print)(bencode_item_t *, GString *); }; struct ng_parser_ctx { const ng_parser_t *parser;