jingle/sessions.c
changeset 37 fce6bdc1ff46
parent 35 a0fd92a93af7
child 38 121e5ae7c1e5
--- a/jingle/sessions.c	Thu Jul 08 00:08:34 2010 +0200
+++ b/jingle/sessions.c	Thu Jul 08 00:35:37 2010 +0200
@@ -73,6 +73,9 @@
 void session_add_content(JingleSession *sess, JingleContent *cn)
 {
   SessionContent *sc = g_new0(SessionContent, 1);
+  
+  sc->name = cn->name;
+  
   const gchar *tmpchar = lm_message_node_get_attribute(cn->description,
                                                        "xmlns");
   sc->appfuncs = jingle_get_appfuncs(tmpchar);
@@ -86,19 +89,26 @@
 }
 
 SessionContent *session_find_sessioncontent(JingleSession *sess,
-                                        gconstpointer desc, gconstpointer trans)
+                                            const gchar *name)
 {
   GSList *el;
   SessionContent *sc;
   for (el = sess->content; el; el = el->next) {
     sc = (SessionContent*) el->data;
-    if (sc->appfuncs->cmp(sc->description, desc) == TRUE &&
-        sc->transfuncs->cmp(sc->transport, trans) == TRUE)
+    if (g_strcmp0(sc->name, name))
       return sc;
   }
   return NULL;
 }
 
+void session_remove_sessioncontent(JingleSession *sess, const gchar *name)
+{
+  SessionContent *sc;
+  sc = session_find_sessioncontent(sess, name);
+  if(sc != NULL)
+    sess->content = g_slist_remove(sess->content, sc);
+}
+
 /**
  * Remove a session from the linked list and free it.
  */