|
|
|
@ -1300,25 +1300,6 @@ void call_ng_flags_init(sdp_ng_flags *out, enum call_opmode opmode) {
|
|
|
|
|
out->frequencies = g_array_new(false, false, sizeof(int));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void call_ng_dict_iter(ng_parser_ctx_t *ctx, bencode_item_t *input,
|
|
|
|
|
void (*callback)(ng_parser_ctx_t *, str *key, bencode_item_t *value))
|
|
|
|
|
{
|
|
|
|
|
if (input->type != BENCODE_DICTIONARY)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
bencode_item_t *value = NULL;
|
|
|
|
|
for (bencode_item_t *key = input->child; key; key = value->sibling) {
|
|
|
|
|
value = key->sibling;
|
|
|
|
|
if (!value)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
str k;
|
|
|
|
|
if (!bencode_get_str(key, &k))
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
callback(ctx, &k, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void call_ng_direction_flag(sdp_ng_flags *out, bencode_item_t *value)
|
|
|
|
|
{
|
|
|
|
|
if (value->type != BENCODE_LIST)
|
|
|
|
@ -1436,6 +1417,7 @@ 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;
|
|
|
|
|
|
|
|
|
|
bencode_get_str(value, &s);
|
|
|
|
|
|
|
|
|
@ -1520,7 +1502,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) {
|
|
|
|
|
out->digit = s.s[0];
|
|
|
|
|
break;
|
|
|
|
|
case CSH_LOOKUP("codec"):
|
|
|
|
|
call_ng_dict_iter(ctx, value, call_ng_codec_flags);
|
|
|
|
|
parser->dict_iter(ctx, value, call_ng_codec_flags);
|
|
|
|
|
break;
|
|
|
|
|
case CSH_LOOKUP("command"):
|
|
|
|
|
break;
|
|
|
|
@ -2013,7 +1995,7 @@ static void call_ng_process_flags(sdp_ng_flags *out, ng_parser_ctx_t *ctx, enum
|
|
|
|
|
call_ng_flags_init(out, opmode);
|
|
|
|
|
ctx->opmode = opmode;
|
|
|
|
|
ctx->flags = out;
|
|
|
|
|
call_ng_dict_iter(ctx, ctx->req, call_ng_main_flags);
|
|
|
|
|
ctx->parser->dict_iter(ctx, ctx->req, call_ng_main_flags);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void ng_sdp_attr_manipulations_free(struct sdp_manipulations * array[__MT_MAX]) {
|
|
|
|
|