diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 0225a8312..5cc49b082 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1419,7 +1419,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { sdp_ng_flags *out = ctx->flags; const ng_parser_t *parser = ctx->parser; - bencode_get_str(value, &s); + parser->get_str(value, &s); switch (__csh_lookup(key)) { case CSH_LOOKUP("address"): @@ -1497,7 +1497,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { break; case CSH_LOOKUP("code"): case CSH_LOOKUP("digit"): - out->digit = bencode_get_integer_str(value, out->digit); + out->digit = parser->get_int_str(value, out->digit); if (s.len == 1) out->digit = s.s[0]; break; @@ -1507,7 +1507,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { case CSH_LOOKUP("command"): break; case CSH_LOOKUP("db-id"): - out->db_id = bencode_get_integer_str(value, out->db_id); + out->db_id = parser->get_int_str(value, out->db_id); break; case CSH_LOOKUP("direction"): call_ng_direction_flag(out, value); @@ -1572,7 +1572,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { case CSH_LOOKUP("DTMF delay"): case CSH_LOOKUP("dtmf-delay"): case CSH_LOOKUP("dtmf delay"): - out->dtmf_delay = bencode_get_integer_str(value, out->dtmf_delay); + out->dtmf_delay = parser->get_int_str(value, out->dtmf_delay); break; case CSH_LOOKUP("dtmf-log-dest"): case CSH_LOOKUP("DTMF-log-dest"): @@ -1583,7 +1583,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { STR_FMT(&s)); break; case CSH_LOOKUP("duration"): - out->duration = bencode_get_integer_str(value, out->duration); + out->duration = parser->get_int_str(value, out->duration); break; #ifdef WITH_TRANSCODING case CSH_LOOKUP("DTMF-security"): @@ -1606,7 +1606,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { break; case CSH_LOOKUP("delay-buffer"): case CSH_LOOKUP("delay buffer"): - out->delay_buffer = bencode_get_integer_str(value, out->delay_buffer); + out->delay_buffer = parser->get_int_str(value, out->delay_buffer); break; #endif case CSH_LOOKUP("endpoint-learning"): @@ -1781,19 +1781,19 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { } break; case CSH_LOOKUP("pause"): - out->pause = bencode_get_integer_str(value, out->pause); + out->pause = parser->get_int_str(value, out->pause); break; case CSH_LOOKUP("player"): case CSH_LOOKUP("ptime"): if (out->opmode == OP_OFFER) - out->ptime = bencode_get_integer_str(value, 0); + out->ptime = parser->get_int_str(value, 0); break; case CSH_LOOKUP("ptime-reverse"): case CSH_LOOKUP("ptime reverse"): case CSH_LOOKUP("reverse ptime"): case CSH_LOOKUP("reverse-ptime"): if (out->opmode == OP_OFFER) - out->rev_ptime = bencode_get_integer_str(value, 0); + out->rev_ptime = parser->get_int_str(value, 0); break; case CSH_LOOKUP("received from"): @@ -1834,7 +1834,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { out->recording_pattern = s; break; case CSH_LOOKUP("repeat-times"): - out->repeat_times = bencode_get_integer_str(value, out->repeat_times); + out->repeat_times = parser->get_int_str(value, out->repeat_times); break; case CSH_LOOKUP("replace"): call_ng_flags_str_list(out, value, call_ng_flags_replace, NULL); @@ -1882,7 +1882,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { } break; case CSH_LOOKUP("start-pos"): - out->start_pos = bencode_get_integer_str(value, out->start_pos); + out->start_pos = parser->get_int_str(value, out->start_pos); break; case CSH_LOOKUP("supports"): call_ng_flags_str_list(out, value, call_ng_flags_supports, NULL); @@ -1907,7 +1907,7 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { break; case CSH_LOOKUP("TOS"): case CSH_LOOKUP("tos"): - out->tos = bencode_get_integer_str(value, out->tos); + out->tos = parser->get_int_str(value, out->tos); break; case CSH_LOOKUP("transport protocol"): case CSH_LOOKUP("transport-protocol"): @@ -1929,20 +1929,20 @@ void call_ng_main_flags(ng_parser_ctx_t *ctx, str *key, bencode_item_t *value) { case CSH_LOOKUP("trigger end time"): case CSH_LOOKUP("end-trigger-time"): case CSH_LOOKUP("end trigger time"): - out->trigger_end_ms = bencode_get_integer_str(value, out->trigger_end_ms); + out->trigger_end_ms = parser->get_int_str(value, out->trigger_end_ms); break; case CSH_LOOKUP("trigger-end-digits"): case CSH_LOOKUP("trigger end digits"): case CSH_LOOKUP("end-trigger-digits"): case CSH_LOOKUP("end trigger digits"): - out->trigger_end_digits = bencode_get_integer_str(value, out->trigger_end_digits); + out->trigger_end_digits = parser->get_int_str(value, out->trigger_end_digits); break; case CSH_LOOKUP("via-branch"): out->via_branch = s; break; case CSH_LOOKUP("volume"): - out->volume = bencode_get_integer_str(value, out->volume); + out->volume = parser->get_int_str(value, out->volume); break; case CSH_LOOKUP("vsc-pause-rec"): case CSH_LOOKUP("VSC-pause-rec"): diff --git a/daemon/control_ng.c b/daemon/control_ng.c index f3f0a6cf8..3ec160434 100644 --- a/daemon/control_ng.c +++ b/daemon/control_ng.c @@ -102,10 +102,14 @@ static void bencode_dict_iter(ng_parser_ctx_t *ctx, bencode_item_t *input, const ng_parser_t ng_parser_native = { .collapse = bencode_collapse_str, .dict_iter = bencode_dict_iter, + .get_str = bencode_get_str, + .get_int_str = bencode_get_integer_str, }; const ng_parser_t ng_parser_json = { .collapse = bencode_collapse_str_json, .dict_iter = bencode_dict_iter, + .get_str = bencode_get_str, + .get_int_str = bencode_get_integer_str, }; diff --git a/include/control_ng.h b/include/control_ng.h index 3aac87fd7..7a2078298 100644 --- a/include/control_ng.h +++ b/include/control_ng.h @@ -101,6 +101,8 @@ struct ng_parser { str *(*collapse)(bencode_item_t *root, str *out); void (*dict_iter)(ng_parser_ctx_t *, bencode_item_t *, void (*callback)(ng_parser_ctx_t *, str *, bencode_item_t *)); + str *(*get_str)(bencode_item_t *, str *s); + long long (*get_int_str)(bencode_item_t *, long long def); }; struct ng_parser_ctx { const ng_parser_t *parser;