Fix bugs. The module should now be able to send session-initiate.
authorNicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Tue, 10 Aug 2010 01:48:51 +0200
changeset 87 43e7d48f6d84
parent 86 a994dc89a1fc
child 88 8b12ebd75c1a
Fix bugs. The module should now be able to send session-initiate.
jingle-filetransfer/filetransfer.c
jingle-ibb/ibb.h
jingle/sessions.c
--- a/jingle-filetransfer/filetransfer.c	Tue Aug 10 01:10:10 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c	Tue Aug 10 01:48:51 2010 +0200
@@ -218,13 +218,23 @@
     gsize bytes_read;*/
     JingleSession *sess;
     gchar *sid = jingle_generate_sid();
-    gchar *ressource, *jid;
+    gchar *ressource, *recipientjid;
     const gchar *namespaces[] = {NS_JINGLE, NS_JINGLE_APP_FT, NULL};
     struct stat fileinfo;
-    const gchar *myjid = settings_opt_get("jid");
+    const gchar *myjid = lm_connection_get_jid(lconnection);
     JingleFT *jft = g_new0(JingleFT, 1);
 
-    sess = session_new(sid, myjid, myjid, JINGLE_SESSION_OUTGOING);
+    if (CURRENT_JID == NULL) { // CURRENT_JID = the jid of the user which has focus
+      scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: Please, choose a valid JID in the roster");
+      return;
+    }
+    ressource = jingle_find_compatible_res(CURRENT_JID, namespaces);
+    if (ressource == NULL)
+      return;
+
+    recipientjid = g_strdup_printf("%s/%s", CURRENT_JID, ressource);
+
+    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) {
@@ -248,16 +258,8 @@
     g_io_channel_seek_position(jft->outfile, 0, G_SEEK_SET, NULL);*/
     session_add_app(sess, "file", NS_JINGLE_APP_FT, jft);
 
-    if (CURRENT_JID == NULL) {
-      scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: Please, choose a valid JID in the roster");
-      return;
-    }
-    ressource = jingle_find_compatible_res(CURRENT_JID, namespaces);
-    if (ressource == NULL)
-      return;
 
-    jid = g_strdup_printf("%s/%s", CURRENT_JID, ressource);
-    jingle_handle_app(sess, "file", NS_JINGLE_APP_FT, jft, jid);
+    jingle_handle_app(sess, "file", NS_JINGLE_APP_FT, jft, recipientjid);
 
     g_free(ressource);
     //g_checksum_free(md5);
@@ -284,8 +286,7 @@
 
   node2 = lm_message_node_add_child(node2, "file", NULL);
 
-  if(!g_sprintf(size, "%li", jft->size))
-    return;
+  size = g_strdup_printf("%lli", jft->size);
   
   lm_message_node_set_attributes(node2, "xmlns", NS_SI_FT, "name", jft->name,
                                  "size", size, NULL);
--- a/jingle-ibb/ibb.h	Tue Aug 10 01:10:10 2010 +0200
+++ b/jingle-ibb/ibb.h	Tue Aug 10 01:48:51 2010 +0200
@@ -8,7 +8,7 @@
 
 typedef struct {
   /* Size of the blocks */
-  int blocksize;
+  guint blocksize;
 
   /* The identifiant of the transfer */
   const gchar *sid;
--- a/jingle/sessions.c	Tue Aug 10 01:10:10 2010 +0200
+++ b/jingle/sessions.c	Tue Aug 10 01:48:51 2010 +0200
@@ -254,8 +254,7 @@
   if (content->name)
     lm_message_node_set_attribute(node, "name", content->name);
   
-  content->transfuncs->tomessage(content->description, node);
+  content->transfuncs->tomessage(content->transport, node);
 
-  content->appfuncs->tomessage(content->transport, node);
+  content->appfuncs->tomessage(content->description, node);
 }
-