From 61ed4e6e7d283442d168a74c44e603db96a9ea6b Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 25 Jul 2024 11:36:49 -0400 Subject: [PATCH] MT#55283 refactor received-from parsing using parsing abstraction Change-Id: Ibee6620317a660b5dbdcf661c970d4d6cf6b7e6a --- daemon/call_interfaces.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index edc675d23..774809704 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1422,9 +1422,18 @@ static void call_ng_flags_freqs(ng_parser_ctx_t *ctx, bencode_item_t *value) { } } +static void call_ng_received_from_iter(ng_parser_ctx_t *ctx, str *key, helper_arg arg) { + switch ((*arg.i)++) { + case 0: + ctx->flags->received_from_family = *key; + break; + case 1: + ctx->flags->received_from_address = *key; + break; + } +} void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { str s = STR_NULL; - bencode_item_t *it; sdp_ng_flags *out = ctx->flags; const ng_parser_t *parser = ctx->parser; @@ -1807,12 +1816,10 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { case CSH_LOOKUP("received from"): case CSH_LOOKUP("received-from"): - if (value->type != BENCODE_LIST) + if (!parser->is_list(value)) break; - if ((it = value->child)) { - bencode_get_str(it, &out->received_from_family); - bencode_get_str(it->sibling, &out->received_from_address); - } + int i = 0; + parser->list_iter(ctx, value, call_ng_received_from_iter, NULL, &i); break; case CSH_LOOKUP("record call"): case CSH_LOOKUP("record-call"):