From a1e01c6025b8691b42813b1c589ebbae138152be Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 26 Jul 2024 14:25:23 -0400 Subject: [PATCH] MT#55283 add abstract .list_add_dict() Change-Id: I4dfc8c5a52ad9a8df3683788297d73cff0504fd4 --- daemon/call_interfaces.c | 18 +++++++++--------- daemon/control_ng.c | 2 ++ include/control_ng.h | 1 + 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 04069a781..bc9370d31 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -2366,7 +2366,7 @@ static void ng_stats_stream_ssrc(const ng_parser_t *parser, bencode_item_t *dict if (!c) break; - bencode_item_t *ssrc = bencode_list_add_dictionary(list); + bencode_item_t *ssrc = parser->list_add_dict(list); bencode_dictionary_add_integer(ssrc, "SSRC", ssrcs[i]->parent->h.ssrc); bencode_dictionary_add_integer(ssrc, "bytes", atomic64_get_na(&c->stats->bytes)); @@ -2387,7 +2387,7 @@ static void ng_stats_stream(const ng_parser_t *parser, bencode_item_t *list, con if (!list) goto stats; - dict = bencode_list_add_dictionary(list); + dict = parser->list_add_dict(list); if (ps->selected_sfd) { bencode_dictionary_add_integer(dict, "local port", ps->selected_sfd->socket.local.port); @@ -2448,7 +2448,7 @@ static void ng_stats_media(const ng_parser_t *parser, bencode_item_t *list, cons rtp_pt = __rtp_stats_codec((struct call_media *)m); - dict = bencode_list_add_dictionary(list); + dict = parser->list_add_dict(list); bencode_dictionary_add_integer(dict, "index", m->index); parser->dict_add_str(dict, "type", &m->type); @@ -2541,7 +2541,7 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, { struct media_subscription * ms = subscription->data; if (!g_queue_find(&mls_subscriptions, ms->monologue)) { - bencode_item_t *sub1 = bencode_list_add_dictionary(b_subscriptions); + bencode_item_t *sub1 = parser->list_add_dict(b_subscriptions); parser->dict_add_str(sub1, "tag", &ms->monologue->tag); parser->dict_add_string(sub1, "type", ms->attrs.offer_answer ? "offer/answer" : "pub/sub"); g_queue_push_tail(&mls_subscriptions, ms->monologue); @@ -2553,7 +2553,7 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, { struct media_subscription * ms = subscriber->data; if (!g_queue_find(&mls_subscribers, ms->monologue)) { - bencode_item_t *sub1 = bencode_list_add_dictionary(b_subscribers); + bencode_item_t *sub1 = parser->list_add_dict(b_subscribers); parser->dict_add_str(sub1, "tag", &ms->monologue->tag); parser->dict_add_string(sub1, "type", ms->attrs.offer_answer ? "offer/answer" : "pub/sub"); g_queue_push_tail(&mls_subscribers, ms->monologue); @@ -2570,7 +2570,7 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, const struct dtmf_trigger_state *state = &ml->dtmf_trigger_state[i]; if (state->trigger.len == 0) continue; - bencode_item_t *vsc = bencode_list_add_dictionary(list); + bencode_item_t *vsc = parser->list_add_dict(list); const char *type = dtmf_trigger_types[state->type]; if (type) parser->dict_add_string(vsc, "type", type); @@ -2660,7 +2660,7 @@ static void ng_stats_ssrc(const ng_parser_t *parser, bencode_item_t *dict, struc if (sb->reported.tv_sec < next_step) continue; next_step += interval; - bencode_item_t *cent = bencode_list_add_dictionary(entlist); + bencode_item_t *cent = parser->list_add_dict(entlist); ng_stats_ssrc_mos_entry(cent, sb); } } @@ -3762,7 +3762,7 @@ const char *call_subscribe_request_ng(ng_parser_ctx_t *ctx) { struct call_monologue *source_ml = ms->monologue; bencode_list_add_str_dup(from_list, &source_ml->tag); if (tag_medias) { - bencode_item_t *tag_label = bencode_list_add_dictionary(tag_medias); + bencode_item_t *tag_label = ctx->parser->list_add_dict(tag_medias); ctx->parser->dict_add_str(tag_label, "tag", &source_ml->tag); if (source_ml->label.len) ctx->parser->dict_add_str(tag_label, "label", &source_ml->label); @@ -3771,7 +3771,7 @@ const char *call_subscribe_request_ng(ng_parser_ctx_t *ctx) { struct call_media *media = source_ml->medias->pdata[i]; if (!media) continue; - bencode_item_t *med_ent = bencode_list_add_dictionary(medias); + bencode_item_t *med_ent = ctx->parser->list_add_dict(medias); bencode_dictionary_add_integer(med_ent, "index", media->index); ctx->parser->dict_add_str(med_ent, "type", &media->type); ctx->parser->dict_add_str(med_ent, "label", &media->label); diff --git a/daemon/control_ng.c b/daemon/control_ng.c index 5910b2648..0ebe8f821 100644 --- a/daemon/control_ng.c +++ b/daemon/control_ng.c @@ -146,6 +146,7 @@ const ng_parser_t ng_parser_native = { .dict_add_str = bencode_dictionary_add_str, .dict_add_dict = bencode_dictionary_add_dictionary, .dict_add_list = bencode_dictionary_add_list, + .list_add_dict = bencode_list_add_dictionary, }; const ng_parser_t ng_parser_json = { .collapse = bencode_collapse_str_json, @@ -162,6 +163,7 @@ const ng_parser_t ng_parser_json = { .dict_add_str = bencode_dictionary_add_str, .dict_add_dict = bencode_dictionary_add_dictionary, .dict_add_list = bencode_dictionary_add_list, + .list_add_dict = bencode_list_add_dictionary, }; diff --git a/include/control_ng.h b/include/control_ng.h index 03a7736a7..da2d6a17b 100644 --- a/include/control_ng.h +++ b/include/control_ng.h @@ -127,6 +127,7 @@ struct ng_parser { void (*dict_add_str)(bencode_item_t *, const char *, const str *); bencode_item_t *(*dict_add_dict)(bencode_item_t *, const char *); bencode_item_t *(*dict_add_list)(bencode_item_t *, const char *); + bencode_item_t *(*list_add_dict)(bencode_item_t *); }; struct ng_parser_ctx { const ng_parser_t *parser;