Fix bugs. Use directly the JingleSession to determine the recipient.
authorNicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Tue, 10 Aug 2010 21:35:43 +0200
changeset 94 a49f78cada29
parent 93 4038cce7fd80
child 95 cac87df18e6d
Fix bugs. Use directly the JingleSession to determine the recipient.
jingle-filetransfer/filetransfer.c
jingle-ibb/ibb.c
jingle/send.c
jingle/sessions.c
jingle/sessions.h
--- a/jingle-filetransfer/filetransfer.c	Tue Aug 10 20:31:12 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c	Tue Aug 10 21:35:43 2010 +0200
@@ -226,7 +226,7 @@
     gchar *ressource, *recipientjid;
     const gchar *namespaces[] = {NS_JINGLE, NS_JINGLE_APP_FT, NULL};
     struct stat fileinfo;
-    const gchar *myjid = lm_connection_get_jid(lconnection);
+    const gchar *myjid = g_strdup(lm_connection_get_jid(lconnection));
     JingleFT *jft = g_new0(JingleFT, 1);
 
     if (CURRENT_JID == NULL) { // CURRENT_JID = the jid of the user which has focus
@@ -244,7 +244,7 @@
     sess = session_new(sid, myjid, recipientjid, JINGLE_SESSION_OUTGOING);
     session_add_content(sess, "file", JINGLE_SESSION_STATE_PENDING);
 
-    if (g_stat(args[0], &fileinfo) != 0) {
+    if (g_stat(filename, &fileinfo) != 0) {
       scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: unable to stat %s", args[1]);
       return;
     }
--- a/jingle-ibb/ibb.c	Tue Aug 10 20:31:12 2010 +0200
+++ b/jingle-ibb/ibb.c	Tue Aug 10 21:35:43 2010 +0200
@@ -78,6 +78,8 @@
   LmMessageNode *node = cn->transport;
   const gchar *blocksize;
 
+  ibb = g_new0(JingleIBB, 1);
+  
   blocksize  = lm_message_node_get_attribute(node, "block-size");
   ibb->sid = lm_message_node_get_attribute(node, "sid");
    
--- a/jingle/send.c	Tue Aug 10 20:31:12 2010 +0200
+++ b/jingle/send.c	Tue Aug 10 21:35:43 2010 +0200
@@ -64,7 +64,7 @@
 void jingle_send_session_accept(JingleNode *jn)
 {
   JingleNode accept = {0};
-  JingleSession* sess;
+  JingleSession *sess;
   JingleContent *cn;
   GSList *child = NULL;
   JingleAppFuncs *appfuncs;
@@ -75,7 +75,7 @@
   JingleAckHandle *ackhandle;
  
   accept.action = JINGLE_SESSION_ACCEPT;
-  accept.responder = g_strdup_printf("%s", lm_connection_get_jid(lconnection));
+  accept.responder = g_strdup(lm_connection_get_jid(lconnection));
   accept.sid = jn->sid;
   accept.content = NULL;
 
@@ -148,8 +148,7 @@
   JingleAckHandle *ackhandle;
   GSList *listentry;
   
-  LmMessage *mess = lm_message_from_jinglesession(js, js->to,
-                                                  JINGLE_SESSION_INITIATE);
+  LmMessage *mess = lm_message_from_jinglesession(js, JINGLE_SESSION_INITIATE);
   lm_message_node_set_attribute(lm_message_node_get_child(mess->node, "jingle"),
                                 "initiator", js->from);
 
--- a/jingle/sessions.c	Tue Aug 10 20:31:12 2010 +0200
+++ b/jingle/sessions.c	Tue Aug 10 21:35:43 2010 +0200
@@ -54,6 +54,7 @@
   
   from = lm_message_node_get_attribute(jn->message->node, "from");
   to = lm_message_node_get_attribute(jn->message->node, "to");
+
   if (!from || !to) {
     return NULL;
   }
@@ -217,15 +218,17 @@
 }
 
 LmMessage *lm_message_from_jinglesession(const JingleSession *js,
-                                         const gchar *to,
                                          JingleAction action)
 {
   LmMessage* m; 
   LmMessageNode *jnode;
-  const gchar *actionstr;
+  const gchar *actionstr, *recipient;
+  
+  recipient = (js->origin == JINGLE_SESSION_INCOMING) ? js->from : js->to;
 
-  m = lm_message_new_with_sub_type(to, LM_MESSAGE_TYPE_IQ,
+  m = lm_message_new_with_sub_type(recipient, LM_MESSAGE_TYPE_IQ,
                                    LM_MESSAGE_SUB_TYPE_SET);
+
   jnode = lm_message_node_add_child(m->node, "jingle", NULL);
 
   lm_message_node_set_attribute(jnode, "xmlns", NS_JINGLE);
--- a/jingle/sessions.h	Tue Aug 10 20:31:12 2010 +0200
+++ b/jingle/sessions.h	Tue Aug 10 21:35:43 2010 +0200
@@ -96,7 +96,6 @@
                        const gchar *xmlns_app, gconstpointer app,
                        const gchar *to);
 LmMessage *lm_message_from_jinglesession(const JingleSession *js,
-                                         const gchar *to,
                                          JingleAction action);
 
 #endif