Fix bugs. The module should now be able to send session-initiate.
--- 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);
}
-