Browse Source

MT#55283 add abstract string/int parsing methods

Change-Id: I8acf3c1540a68ec2244a4a7768832855fed7937b
pull/1848/head
Richard Fuchs 1 year ago
parent
commit
a91bfc34e3
3 changed files with 21 additions and 15 deletions
  1. +15
    -15
      daemon/call_interfaces.c
  2. +4
    -0
      daemon/control_ng.c
  3. +2
    -0
      include/control_ng.h

+ 15
- 15
daemon/call_interfaces.c View File

@ -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"):


+ 4
- 0
daemon/control_ng.c View File

@ -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,
};


+ 2
- 0
include/control_ng.h View File

@ -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;


Loading…
Cancel
Save