--- a/jingle/send.c Tue Aug 10 18:59:28 2010 +0200
+++ b/jingle/send.c Tue Aug 10 20:00:34 2010 +0200
@@ -127,6 +127,7 @@
{
LmMessageNode *node;
const gchar *type, *cause;
+ JingleSession *sess = (JingleSession*)data;
if(lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT)
return;
@@ -134,11 +135,12 @@
node = lm_message_get_node(mess);
node = lm_message_node_get_child(node,"error");
type = lm_message_node_get_attribute(node, "type");
- if(node->children != NULL) {
+ if(node->children != NULL)
cause = node->children->name;
- }
- scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-initiate refuse: %s %s", type, cause);
- }
+ scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-initiate %s: %s", type, cause);
+ }
+ // We delete the session, there was an error
+ session_delete(sess);
}
void jingle_send_session_initiate(JingleSession *js)
@@ -154,7 +156,7 @@
if (mess) {
ackhandle = g_new0(JingleAckHandle, 1);
ackhandle->callback = jingle_handle_ack_iq_si;
- ackhandle->user_data = NULL;
+ ackhandle->user_data = (gpointer*)js;
lm_connection_send_with_reply(lconnection, mess,
jingle_new_ack_handler(ackhandle), NULL);
lm_message_unref(mess);