From 7d0144054fc4e0577319a1603f476a5435c94f97 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Tue, 31 Jan 2023 20:25:22 +0100 Subject: [PATCH] MT#56128 Add a handler to insert sdp_attribute object To better organizea code and not duplicate same functionality in the future, it's better to handle an insertion of the sdp_attribute object using a dedicated hanlder. New handler: attr_insert(struct sdp_attributes *attrs, struct sdp_attribute *attr) Change-Id: I24236d81257b95ef98e0886d3ba362cc1e50dfbe --- daemon/sdp.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/daemon/sdp.c b/daemon/sdp.c index 1c9a98a08..6695c68a6 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -284,7 +284,7 @@ static char __id_buf[6*2 + 1]; // 6 hex encoded characters const str rtpe_instance_id = STR_CONST_INIT(__id_buf); - +static void attr_insert(struct sdp_attributes *attrs, struct sdp_attribute *attr); INLINE struct sdp_attribute *attr_get_by_id(struct sdp_attributes *a, int id) { return g_hash_table_lookup(a->id_hash, &id); @@ -424,6 +424,25 @@ static void attrs_init(struct sdp_attributes *a) { NULL, (GDestroyNotify) g_queue_free); } +static void attr_insert(struct sdp_attributes *attrs, struct sdp_attribute *attr) { + g_queue_push_tail(&attrs->list, attr); + + if (!g_hash_table_lookup(attrs->id_hash, &attr->attr)) + g_hash_table_insert(attrs->id_hash, &attr->attr, attr); + + GQueue *attr_queue = g_hash_table_lookup_queue_new(attrs->id_lists_hash, &attr->attr, + NULL); + + g_queue_push_tail(attr_queue, attr); + + /* g_hash_table_insert(attrs->name_hash, &attr->name, attr); */ + /* if (attr->key.s) + g_hash_table_insert(attrs->name_hash, &attr->key, attr); */ + + /* attr_queue = g_hash_table_lookup_queue_new(attrs->name_lists_hash, &attr->name); + g_queue_push_tail(attr_queue, attr); */ +} + static int parse_attribute_group(struct sdp_attribute *output) { output->attr = ATTR_GROUP; @@ -1208,18 +1227,7 @@ new_session: } attrs = media ? &media->attributes : &session->attributes; - g_queue_push_tail(&attrs->list, attr); - /* g_hash_table_insert(attrs->name_hash, &attr->name, attr); */ - if (!g_hash_table_lookup(attrs->id_hash, &attr->attr)) - g_hash_table_insert(attrs->id_hash, &attr->attr, attr); - /* if (attr->key.s) - g_hash_table_insert(attrs->name_hash, &attr->key, attr); */ - - /* attr_queue = g_hash_table_lookup_queue_new(attrs->name_lists_hash, &attr->name); - g_queue_push_tail(attr_queue, attr); */ - attr_queue = g_hash_table_lookup_queue_new(attrs->id_lists_hash, &attr->attr, - NULL); - g_queue_push_tail(attr_queue, attr); + attr_insert(attrs, attr); break;