diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index a36bc36a1..1c7c60473 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -32,14 +32,6 @@ #include "dtmf.h" #include "control_ng_flags_parser.h" -typedef union { - const struct sdp_attr_helper *attr_helper; - str_q *q; - str_case_ht *sct; - str_case_value_ht *svt; - void **generic; -} helper_arg __attribute__ ((__transparent_union__)); - static pcre2_code *info_re; static pcre2_code *streams_re; @@ -988,7 +980,7 @@ INLINE int call_ng_flags_prefix(sdp_ng_flags *out, str *s_ori, const char *prefi cb(out, &s, arg); return 1; } -static void call_ng_flags_flags(sdp_ng_flags *out, str *s, helper_arg dummy) { +void call_ng_flags_flags(sdp_ng_flags *out, str *s, helper_arg dummy) { str_hyphenate(s); switch (__csh_lookup(s)) { diff --git a/daemon/control_ng_flags_parser.c b/daemon/control_ng_flags_parser.c index 3e2a1b108..94ea553ef 100644 --- a/daemon/control_ng_flags_parser.c +++ b/daemon/control_ng_flags_parser.c @@ -456,7 +456,7 @@ void parse_rtpp_flags(const str * rtpp_flags, bencode_item_t * root_dict, generic: /* generic one key flags */ if (!val.s) - bencode_list_add_str(flags, &key); + call_ng_flags_flags(out, &key, NULL); /* generic flags with value, but no particular processing */ else bencode_dictionary_str_add_str(root_dict, &key, &val); diff --git a/include/call_interfaces.h b/include/call_interfaces.h index 87ede437b..3e4152f1d 100644 --- a/include/call_interfaces.h +++ b/include/call_interfaces.h @@ -14,6 +14,14 @@ struct call_stats; struct streambuf_stream; struct sockaddr_in6; +typedef union { + const struct sdp_attr_helper *attr_helper; + str_q *q; + str_case_ht *sct; + str_case_value_ht *svt; + void **generic; +} helper_arg __attribute__ ((__transparent_union__)); + struct sdp_ng_flags { enum call_opmode opmode; enum message_type message_type; @@ -278,6 +286,8 @@ int call_interfaces_init(void); void call_interfaces_free(void); void call_interfaces_timer(void); +void call_ng_flags_flags(sdp_ng_flags *out, str *s, helper_arg dummy); + INLINE struct sdp_manipulations *sdp_manipulations_get_by_id(const sdp_ng_flags *f, enum media_type id) { if (id < 0 || id >= G_N_ELEMENTS(f->sdp_manipulations)) return NULL; @@ -300,4 +310,5 @@ INLINE struct sdp_manipulations *sdp_manipulations_get_by_name(sdp_ng_flags *f, } + #endif