MT#55283 add pretty_print method

Change-Id: Ibcc16385f9a988b949ead2f544732474b87e3a2c
pull/1848/head
Richard Fuchs 10 months ago
parent c437c0a706
commit b7d5e00d65

@ -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);

@ -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;

Loading…
Cancel
Save