63 static void jingle_handle_ack_iq_sa(JingleAckType acktype, LmMessage *mess, |
63 static void jingle_handle_ack_iq_sa(JingleAckType acktype, LmMessage *mess, |
64 gpointer data) |
64 gpointer data) |
65 { |
65 { |
66 LmMessageNode *node; |
66 LmMessageNode *node; |
67 const gchar *type, *cause; |
67 const gchar *type, *cause; |
68 GSList *child = NULL; |
|
69 JingleSession *sess = (JingleSession*)data; |
68 JingleSession *sess = (JingleSession*)data; |
70 SessionContent *sc; |
|
71 |
69 |
72 if (acktype == JINGLE_ACK_TIMEOUT) { |
70 if (acktype == JINGLE_ACK_TIMEOUT) { |
73 // TODO: handle ack timeout... |
71 // TODO: handle ack timeout... |
74 scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-accept %s: %s", type, cause); |
72 scr_LogPrint(LPRINT_LOGNORM, "Jingle: did not receive the accept ack in time, aborting"); |
75 session_delete(sess); |
73 session_delete(sess); |
76 return; |
74 return; |
77 } |
75 } |
78 |
76 |
79 if(lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT) { |
77 if(lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT) { |
84 node = lm_message_get_node(mess); |
82 node = lm_message_get_node(mess); |
85 node = lm_message_node_get_child(node,"error"); |
83 node = lm_message_node_get_child(node,"error"); |
86 type = lm_message_node_get_attribute(node, "type"); |
84 type = lm_message_node_get_attribute(node, "type"); |
87 if(node->children != NULL) |
85 if(node->children != NULL) |
88 cause = node->children->name; |
86 cause = node->children->name; |
|
87 else |
|
88 cause = "?"; |
89 scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-accept %s: %s", type, cause); |
89 scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-accept %s: %s", type, cause); |
90 } |
90 } |
91 // We delete the session, there was an error |
91 // We delete the session, there was an error |
92 session_delete(sess); |
92 session_delete(sess); |
93 } |
93 } |
119 const gchar *type, *cause; |
119 const gchar *type, *cause; |
120 JingleSession *sess = (JingleSession*)data; |
120 JingleSession *sess = (JingleSession*)data; |
121 |
121 |
122 if (acktype == JINGLE_ACK_TIMEOUT) { |
122 if (acktype == JINGLE_ACK_TIMEOUT) { |
123 // TODO: handle ack timeout... |
123 // TODO: handle ack timeout... |
124 scr_LogPrint(LPRINT_LOGNORM, "Jingle: did not receive the ack in time, aborting"); |
124 scr_LogPrint(LPRINT_LOGNORM, "Jingle: did not receive the initiate ack in time, aborting"); |
125 session_delete(sess); |
125 session_delete(sess); |
126 return; |
126 return; |
127 } |
127 } |
128 |
128 |
129 if (lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT) |
129 if (lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT) |
132 node = lm_message_get_node(mess); |
132 node = lm_message_get_node(mess); |
133 node = lm_message_node_get_child(node,"error"); |
133 node = lm_message_node_get_child(node,"error"); |
134 type = lm_message_node_get_attribute(node, "type"); |
134 type = lm_message_node_get_attribute(node, "type"); |
135 if(node->children != NULL) |
135 if(node->children != NULL) |
136 cause = node->children->name; |
136 cause = node->children->name; |
|
137 else |
|
138 cause = "?"; |
137 scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-initiate %s: %s", type, cause); |
139 scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-initiate %s: %s", type, cause); |
138 } |
140 } |
139 // We delete the session, there was an error |
141 // We delete the session, there was an error |
140 session_delete(sess); |
142 session_delete(sess); |
141 } |
143 } |
142 |
144 |
143 void jingle_send_session_initiate(JingleSession *js) |
145 void jingle_send_session_initiate(JingleSession *js) |
144 { |
146 { |
145 JingleAckHandle *ackhandle; |
147 JingleAckHandle *ackhandle; |
146 GSList *listentry; |
|
147 GError *err = NULL; |
148 GError *err = NULL; |
148 gboolean status; |
149 gboolean status; |
149 |
150 |
150 LmMessage *mess = lm_message_from_jinglesession(js, JINGLE_SESSION_INITIATE); |
151 LmMessage *mess = lm_message_from_jinglesession(js, JINGLE_SESSION_INITIATE); |
151 lm_message_node_set_attribute(lm_message_node_get_child(mess->node, "jingle"), |
152 lm_message_node_set_attribute(lm_message_node_get_child(mess->node, "jingle"), |