From 1f201f78d05de2835a1a64ff19b9db076260f1a0 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 11 Jan 2024 13:56:21 -0500 Subject: [PATCH] MT#55283 add wrapper around append_attr_to_gstring ... so that a `str` argument can be used as well Change-Id: I73505b14399372d758856ba77d4e018de6a58757 --- daemon/sdp.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/daemon/sdp.c b/daemon/sdp.c index c5231074e..f70f06408 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -416,7 +416,7 @@ static str *sdp_manipulations_subst_attr(struct sdp_manipulations * sdp_manipula return NULL; } -static void append_attr_to_gstring(GString *s, const char * name, const str * value, +static void append_str_attr_to_gstring(GString *s, const str * name, const str * value, sdp_ng_flags *flags, enum media_type media_type); static void append_attr_int_to_gstring(GString *s, const char * value, const int additional, sdp_ng_flags *flags, enum media_type media_type); @@ -425,6 +425,11 @@ static void append_tagged_attr_to_gstring(GString *s, const char * name, const s static void append_int_tagged_attr_to_gstring(GString *s, const char * name, unsigned int tag, const str * value, sdp_ng_flags *flags, enum media_type media_type); +INLINE void append_attr_to_gstring(GString *s, const char * name, const str * value, + sdp_ng_flags *flags, enum media_type media_type) +{ + append_str_attr_to_gstring(s, &STR_INIT(name), value, flags, media_type); +} INLINE struct sdp_attribute *attr_get_by_id(struct sdp_attributes *a, enum attr_id id) { return t_hash_table_lookup(a->id_hash, &id); } @@ -2872,16 +2877,15 @@ const char *sdp_get_sendrecv(struct call_media *media) { } /* A function used to append attributes to the output chop */ -static void generic_append_attr_to_gstring(GString *s, const char * name, char separator, const str * value, +static void generic_append_attr_to_gstring(GString *s, const str * attr, char separator, const str * value, sdp_ng_flags *flags, enum media_type media_type) { struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, media_type); - str attr = STR_INIT(name); - str * attr_subst = sdp_manipulations_subst(sdp_manipulations, &attr); + str * attr_subst = sdp_manipulations_subst(sdp_manipulations, attr); /* first check if the originally present attribute is to be removed */ - if (sdp_manipulate_remove(sdp_manipulations, &attr)) + if (sdp_manipulate_remove(sdp_manipulations, attr)) return; g_string_append(s, "a="); @@ -2893,7 +2897,7 @@ static void generic_append_attr_to_gstring(GString *s, const char * name, char s gsize attr_start = s->len; // save beginning of complete attribute string /* attr name */ - g_string_append_len(s, attr.s, attr.len); + g_string_append_len(s, attr->s, attr->len); /* attr value */ if (value && value->len) { @@ -2923,7 +2927,7 @@ static void generic_append_attr_to_gstring(GString *s, const char * name, char s } /* A function used to append attributes (`a=name:value`) to the output chop */ -static void append_attr_to_gstring(GString *s, const char * name, const str * value, +static void append_str_attr_to_gstring(GString *s, const str * name, const str * value, sdp_ng_flags *flags, enum media_type media_type) { generic_append_attr_to_gstring(s, name, ':', value, flags, media_type); @@ -2938,7 +2942,7 @@ static void append_tagged_attr_to_gstring(GString *s, const char * name, const s g_autoptr(GString) n = g_string_new(name); g_string_append_c(n, ':'); g_string_append_len(n, tag->s, tag->len); - generic_append_attr_to_gstring(s, n->str, ' ', value, flags, media_type); + generic_append_attr_to_gstring(s, &STR_INIT_GS(n), ' ', value, flags, media_type); } /* A function used to append attributes (`a=name:uint value`) to the output chop */ @@ -2949,7 +2953,7 @@ static void append_int_tagged_attr_to_gstring(GString *s, const char * name, uns return; g_autoptr(GString) n = g_string_new(name); g_string_append_printf(n, ":%u", tag); - generic_append_attr_to_gstring(s, n->str, ' ', value, flags, media_type); + generic_append_attr_to_gstring(s, &STR_INIT_GS(n), ' ', value, flags, media_type); } /* A function used to append attributes to the output chop */