Fix lm_insert_sessioncontent
authorNicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Mon, 09 Aug 2010 23:01:24 +0200
changeset 82 d629af652b80
parent 81 8b6320ad470b
child 83 d5c5e9be53cb
Fix lm_insert_sessioncontent
jingle/jingle.c
--- a/jingle/jingle.c	Thu Aug 05 04:33:11 2010 +0200
+++ b/jingle/jingle.c	Mon Aug 09 23:01:24 2010 +0200
@@ -388,6 +388,49 @@
   lm_message_handler_unref(jingle_iq_handler);
 }
 
+LmMessage *lm_message_from_jinglesession(const JingleSession *js,
+                                         const gchar *to,
+                                         JingleAction action)
+{
+  LmMessage* m; 
+  LmMessageNode *jnode;
+  const gchar *actionstr;
+
+  m = lm_message_new_with_sub_type(to, LM_MESSAGE_TYPE_IQ,
+                                   LM_MESSAGE_SUB_TYPE_SET);
+  jnode = lm_message_node_add_child(m->node, "jingle", NULL);
+
+  if (actionstr = jingle_action_list[action].name)
+    lm_message_node_set_attribute(jnode, "action", actionstr);
+  else
+    return NULL;
+
+  if (js->sid)
+    lm_message_node_set_attribute(jnode, "sid", js->sid);
+  else
+    return NULL;
+
+  g_slist_foreach(js->content, lm_insert_sessioncontent, jnode);
+  return m;
+}
+
+static void lm_insert_sessioncontent(gpointer data, gpointer userdata)
+{
+  const gchar *xmlns;
+  JingleTransportFuncs *tfunc;
+  JingleAppFuncs *afunc;
+  SessionContent *content = (SessionContent*) data;
+  LmMessageNode *jnode = (LmMessageNode*) userdata;
+  LmMessageNode *node = lm_message_node_add_child(jnode, "content", NULL);
+                                                                 
+  if (content->name)
+    lm_message_node_set_attribute(node, "name", content->name);
+  
+  content->transfuncs->tomessage(content->description, node);
+
+  content->appfuncs->tomessage(content->transport, node);
+}
+
 LmMessage *lm_message_from_jinglenode(const JingleNode *jn, const gchar *to)
 {
   LmMessage* m; 
@@ -420,25 +463,6 @@
                  return m;
 }
 
-static void lm_insert_sessioncontent(gpointer data, gpointer userdata)
-{
-  const gchar *xmlns;
-  JingleTransportFuncs *tfunc;
-  JingleAppFuncs *afunc;
-  SessionContent* content = (SessionContent*) data;
-  LmMessageNode* dad = (LmMessageNode*) userdata;
-  LmMessageNode* node = (LmMessageNode*) lm_message_node_add_child(dad,
-                                                               "content", NULL);
-                                                                 
-  if (content->name)
-    lm_message_node_set_attribute(node, "name", content->name);
-  
-  //tfunc->handle(tfunc->check(content, NULL), node);
-
-  //afunc->handle(afunc->check(content, NULL), node);
-
-}
-
 static void lm_insert_jinglecontent(gpointer data, gpointer userdata)
 {
   const gchar *xmlns;