--- a/jingle-filetransfer/filetransfer.c Mon Aug 09 23:01:24 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c Mon Aug 09 23:32:49 2010 +0200
@@ -199,18 +199,18 @@
{
char **args = split_arg(arg, 1, 0);
- if (!args[1]) {
+ if (!args[0]) {
scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: give me a name!");
return;
}
- if (!g_file_test(args[1], G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS)) {
+ if (!g_file_test(args[0], G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS)) {
scr_LogPrint(LPRINT_LOGNORM, "File doesn't exist!");
return;
}
scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: try to sent %s",
- args[1]);
+ args[0]);
{
/*GChecksum *md5 = g_checksum_new(G_CHECKSUM_MD5);
@@ -227,16 +227,16 @@
sess = session_new(sid, myjid, myjid, JINGLE_SESSION_OUTGOING);
session_add_content(sess, "file", JINGLE_SESSION_STATE_PENDING);
- if (g_stat(args[1], &fileinfo) != 0) {
+ if (g_stat(args[0], &fileinfo) != 0) {
scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: unable to stat %s", args[1]);
return;
}
- jft->desc = g_strdup(args[1]);
+ jft->desc = g_strdup(args[0]);
jft->type = JINGLE_FT_OFFER;
- jft->name = g_path_get_basename(args[1]);
+ jft->name = g_path_get_basename(args[0]);
jft->date = fileinfo.st_mtime;
jft->size = fileinfo.st_size;
- jft->outfile = g_io_channel_new_file (args[1], "r", NULL);
+ jft->outfile = g_io_channel_new_file (args[0], "r", NULL);
g_io_channel_set_encoding(jft->outfile, NULL, NULL);
/*while (g_io_channel_read_chars(jft->outfile,
(gchar*)data, 1024, &bytes_read, NULL)
--- a/jingle/jingle.c Mon Aug 09 23:01:24 2010 +0200
+++ b/jingle/jingle.c Mon Aug 09 23:32:49 2010 +0200
@@ -47,7 +47,6 @@
static void jingle_init(void);
static void jingle_uninit(void);
static void lm_insert_jinglecontent(gpointer data, gpointer userdata);
-static void lm_insert_sessioncontent(gpointer data, gpointer userdata);
static LmMessageHandler* jingle_iq_handler = NULL;
@@ -388,48 +387,6 @@
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)
{
--- a/jingle/send.c Mon Aug 09 23:01:24 2010 +0200
+++ b/jingle/send.c Mon Aug 09 23:32:49 2010 +0200
@@ -125,33 +125,17 @@
void jingle_send_session_initiate(JingleSession *js)
{
- JingleNode initiate = {0};
JingleAckHandle *ackhandle;
GSList *listentry;
- SessionContent *content;
- JingleContent *jcontent;
+
+ LmMessage* mess = lm_message_from_jinglesession(js, js->to, JINGLE_SESSION_INITIATE);
- initiate.action = JINGLE_SESSION_INITIATE;
- initiate.sid = js->sid;
- initiate.initiator = js->from;
- for(listentry = js->content; listentry; listentry = g_slist_next(listentry)) {
- /*content = (SessionContent *)listentry->data;
- jcontent = g_new0(JingleContent, 1);
- jcontent->node = lm_message_node_add_child()
- jcontent->creator = JINGLE_CREATOR_INITIATOR;
- jcontent->name = content->name
- tfunc->tomessage(, node);
- jcontent->transport =
- initiate.content = g_slist_append(initiate.content, jcontent);*/
- }
- initiate.message = lm_message_from_jinglenode(&initiate, js->to);
-
- if (initiate.message) {
+ if (mess) {
ackhandle = g_new0(JingleAckHandle, 1);
ackhandle->callback = NULL;
ackhandle->user_data = NULL;
- lm_connection_send_with_reply(lconnection, initiate.message,
+ lm_connection_send_with_reply(lconnection, mess,
jingle_new_ack_handler(ackhandle), NULL);
- lm_message_unref(initiate.message);
+ lm_message_unref(mess);
}
}
--- a/jingle/sessions.c Mon Aug 09 23:01:24 2010 +0200
+++ b/jingle/sessions.c Mon Aug 09 23:32:49 2010 +0200
@@ -28,6 +28,9 @@
static GSList *sessions;
+static void lm_insert_sessioncontent(gpointer data, gpointer userdata);
+
+extern struct JingleActionList jingle_action_list[];
/**
* Create a new session and insert it in the linked list.
@@ -210,3 +213,47 @@
jingle_send_session_initiate(sess, to);
}
+
+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);
+}
+
--- a/jingle/sessions.h Mon Aug 09 23:01:24 2010 +0200
+++ b/jingle/sessions.h Mon Aug 09 23:32:49 2010 +0200
@@ -95,5 +95,8 @@
void jingle_handle_app(JingleSession *sess, const gchar *name,
const gchar *xmlns_app, gconstpointer app,
const gchar *to);
+LmMessage *lm_message_from_jinglesession(const JingleSession *js,
+ const gchar *to,
+ JingleAction action);
#endif