--- a/jingle-filetransfer/filetransfer.c Tue Jul 20 12:49:17 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c Tue Jul 20 19:16:58 2010 +0200
@@ -66,8 +66,7 @@
const gchar *datestr, *sizestr;
node = lm_message_node_get_child(cn->description, "offer");
- scr_LogPrint(LPRINT_LOGNORM, "%s",
- lm_message_node_to_string(cn->description));
+
if (!node) {
g_set_error(err, JINGLE_CHECK_ERROR, JINGLE_CHECK_ERROR_MISSING,
"the offer element is missing");
--- a/jingle-ibb/ibb.c Tue Jul 20 12:49:17 2010 +0200
+++ b/jingle-ibb/ibb.c Tue Jul 20 19:16:58 2010 +0200
@@ -36,13 +36,16 @@
static LmMessageHandler* jingle_ibb_handler = NULL;
gconstpointer jingle_ibb_check(JingleContent *cn, GError **err);
+gboolean jingle_ibb_cmp(gconstpointer data1, gconstpointer data2);
+void jingle_ibb_handle(gconstpointer data, JingleContent *jc);
+
static void jingle_ibb_init(void);
static void jingle_ibb_uninit(void);
const gchar *deps[] = { "jingle", NULL };
-JingleTransportFuncs funcs = {jingle_ibb_check, NULL};
+JingleTransportFuncs funcs = {jingle_ibb_check, jingle_ibb_handle, jingle_ibb_cmp};
module_info_t info_jingle_inbandbytestream = {
.branch = MCABBER_BRANCH,
@@ -142,6 +145,17 @@
return 1;
}
+void jingle_ibb_handle(gconstpointer data, JingleContent *jc)
+{
+ JingleIBB *jibb = (JingleIBB*) data;
+ gchar *bsize;
+ bsize = g_strdup_printf("%i", jibb->blocksize);
+ LmMessageNode *node = lm_message_node_add_child(jc->node, "transport", NULL);
+ lm_message_node_set_attributes(node, "xmlns", NS_JINGLE_TRANSPORT_IBB,
+ "sid", jibb->sid,
+ "block-size", bsize);
+ g_free(bsize);
+}
static void jingle_ibb_init(void)
{
--- a/jingle/action-handlers.c Tue Jul 20 12:49:17 2010 +0200
+++ b/jingle/action-handlers.c Tue Jul 20 19:16:58 2010 +0200
@@ -266,9 +266,11 @@
gchar *disp;
// Make sure the request come from an user in our roster
- if (!roster_find(jidtodisp(lm_message_get_from(jn->message)), jidsearch, 0)) {
+ disp = jidtodisp(lm_message_get_from(jn->message));
+ if (!roster_find(disp, jidsearch, 0)) {
jingle_send_session_terminate(jn, "decline");
jingle_free_jinglenode(jn);
+ g_free(disp);
return;
}
@@ -276,12 +278,14 @@
scr_log_print(LPRINT_DEBUG, "jingle: One of the content element was invalid (%s)",
err->message);
jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
+ g_free(disp);
return;
}
// a session-initiate message must contains at least one <content> element
if (g_slist_length(jn->content) < 1) {
jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
+ g_free(disp);
return;
}
@@ -296,12 +300,14 @@
}
if (!valid_disposition) {
jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
+ g_free(disp);
return;
}
// if a session with the same sid already exists
if (session_find(jn) != NULL) {
jingle_send_iq_error(jn->message, "cancel", "unexpected-request", "out-of-order");
+ g_free(disp);
return;
}
@@ -311,7 +317,6 @@
sbuf = g_string_new("");
g_string_printf(sbuf, "Received an invitation for a jingle session from <%s>", lm_message_get_from(jn->message));
- disp = jidtodisp(lm_message_get_from(jn->message));
scr_WriteIncomingMessage(disp, sbuf->str, 0, HBB_PREFIX_INFO, 0);
scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
--- a/jingle/register.h Tue Jul 20 12:49:17 2010 +0200
+++ b/jingle/register.h Tue Jul 20 19:16:58 2010 +0200
@@ -23,8 +23,7 @@
typedef gboolean (*JingleAppHandleData) (gconstpointer data, const gchar *data2, guint len);
typedef gconstpointer (*JingleTransportCheck) (JingleContent *cn, GError **err);
-typedef void (*JingleTransportHandle) (JingleNode *jn, JingleContent *cn);
-typedef LmMessageNode* (*JingleTransportGetLM) (gconstpointer data);
+typedef void (*JingleTransportHandle) (gconstpointer data, JingleContent *cn);
typedef gboolean (*JingleTransportCmp) (gconstpointer data1, gconstpointer data2);
typedef struct {
@@ -45,8 +44,6 @@
/* check if the transport of a JingleContent is correct */
JingleAppCheck check;
- JingleTransportGetLM trans;
-
/* */
JingleAppHandle handle;