Browse Source

MT#55283 refactor received-from parsing

using parsing abstraction

Change-Id: Ibee6620317a660b5dbdcf661c970d4d6cf6b7e6a
pull/1848/head
Richard Fuchs 1 year ago
parent
commit
61ed4e6e7d
1 changed files with 13 additions and 6 deletions
  1. +13
    -6
      daemon/call_interfaces.c

+ 13
- 6
daemon/call_interfaces.c View File

@ -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) { void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) {
str s = STR_NULL; str s = STR_NULL;
bencode_item_t *it;
sdp_ng_flags *out = ctx->flags; sdp_ng_flags *out = ctx->flags;
const ng_parser_t *parser = ctx->parser; 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"):
case CSH_LOOKUP("received-from"): case CSH_LOOKUP("received-from"):
if (value->type != BENCODE_LIST)
if (!parser->is_list(value))
break; 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; break;
case CSH_LOOKUP("record call"): case CSH_LOOKUP("record call"):
case CSH_LOOKUP("record-call"): case CSH_LOOKUP("record-call"):


Loading…
Cancel
Save