jingle/sessions.c
changeset 148 cb40539b88b7
parent 133 361d8577ebd1
child 151 b1acef78e4f5
equal deleted inserted replaced
147:c72010633a86 148:cb40539b88b7
    24 #include <mcabber/logprint.h>
    24 #include <mcabber/logprint.h>
    25 
    25 
    26 #include <jingle/jingle.h>
    26 #include <jingle/jingle.h>
    27 #include <jingle/sessions.h>
    27 #include <jingle/sessions.h>
    28 #include <jingle/register.h>
    28 #include <jingle/register.h>
       
    29 #include <jingle/send.h>
    29 
    30 
    30 static GSList *sessions;
    31 static GSList *sessions;
    31 
    32 
    32 static void lm_insert_sessioncontent(gpointer data, gpointer userdata);
    33 static void lm_insert_sessioncontent(gpointer data, gpointer userdata);
    33 
    34 
   189     }
   190     }
   190   }
   191   }
   191   return NULL;
   192   return NULL;
   192 }
   193 }
   193 
   194 
   194 int session_remove_sessioncontent(JingleSession *sess, const gchar *name)
   195 gint session_remove_sessioncontent(JingleSession *sess, const gchar *name)
   195 {
   196 {
   196   SessionContent *sc;
   197   SessionContent *sc;
   197   sc = session_find_sessioncontent(sess, name);
   198   sc = session_find_sessioncontent(sess, name);
   198   if(sc == NULL) return;
   199   if(sc == NULL) return 0;
   199 
   200 
   200   if (sc->state == JINGLE_SESSION_STATE_ACTIVE) {
   201   if (sc->state == JINGLE_SESSION_STATE_ACTIVE) {
   201     // TODO: stop the transfer
   202     // TODO: stop the transfer
   202   }
   203   }
   203   
   204   
   273 LmMessage *lm_message_from_jinglesession(const JingleSession *js,
   274 LmMessage *lm_message_from_jinglesession(const JingleSession *js,
   274                                          JingleAction action)
   275                                          JingleAction action)
   275 {
   276 {
   276   LmMessage* m; 
   277   LmMessage* m; 
   277   LmMessageNode *jnode;
   278   LmMessageNode *jnode;
   278   const gchar *actionstr, *recipient;
   279   const gchar *recipient;
   279   
   280   
   280   recipient = (js->origin == JINGLE_SESSION_INCOMING) ? js->from : js->to;
   281   recipient = (js->origin == JINGLE_SESSION_INCOMING) ? js->from : js->to;
   281 
   282 
   282   m = lm_message_new_with_sub_type(recipient, LM_MESSAGE_TYPE_IQ,
   283   m = lm_message_new_with_sub_type(recipient, LM_MESSAGE_TYPE_IQ,
   283                                    LM_MESSAGE_SUB_TYPE_SET);
   284                                    LM_MESSAGE_SUB_TYPE_SET);
   284 
   285 
   285   jnode = lm_message_node_add_child(m->node, "jingle", NULL);
   286   jnode = lm_message_node_add_child(m->node, "jingle", NULL);
   286 
   287 
   287   lm_message_node_set_attribute(jnode, "xmlns", NS_JINGLE);
   288   lm_message_node_set_attribute(jnode, "xmlns", NS_JINGLE);
   288   
   289 
   289   if (actionstr = jingle_action_list[action].name)
   290   lm_message_node_set_attribute(jnode, "action", jingle_action_list[action].name);
   290     lm_message_node_set_attribute(jnode, "action", actionstr);
       
   291   else
       
   292     return NULL;
       
   293 
   291 
   294   if (js->sid)
   292   if (js->sid)
   295     lm_message_node_set_attribute(jnode, "sid", js->sid);
   293     lm_message_node_set_attribute(jnode, "sid", js->sid);
   296   else
   294   else
   297     return NULL;
   295     return NULL;
   300   return m;
   298   return m;
   301 }
   299 }
   302 
   300 
   303 static void lm_insert_sessioncontent(gpointer data, gpointer userdata)
   301 static void lm_insert_sessioncontent(gpointer data, gpointer userdata)
   304 {
   302 {
   305   const gchar *xmlns;
       
   306   JingleTransportFuncs *tfunc;
       
   307   JingleAppFuncs *afunc;
       
   308   SessionContent *content = (SessionContent*) data;
   303   SessionContent *content = (SessionContent*) data;
   309   LmMessageNode *jnode = (LmMessageNode*) userdata;
   304   LmMessageNode *jnode = (LmMessageNode*) userdata;
   310   LmMessageNode *node = lm_message_node_add_child(jnode, "content", NULL);
   305   LmMessageNode *node = lm_message_node_add_child(jnode, "content", NULL);
   311                                                                  
   306                                                                  
   312   if (content->name)
   307   if (content->name)