24 #include <mcabber/logprint.h> |
24 #include <mcabber/logprint.h> |
25 |
25 |
26 #include <jingle/jingle.h> |
26 #include <jingle/jingle.h> |
27 #include <jingle/sessions.h> |
27 #include <jingle/sessions.h> |
28 #include <jingle/register.h> |
28 #include <jingle/register.h> |
|
29 #include <jingle/send.h> |
29 |
30 |
30 static GSList *sessions; |
31 static GSList *sessions; |
31 |
32 |
32 static void lm_insert_sessioncontent(gpointer data, gpointer userdata); |
33 static void lm_insert_sessioncontent(gpointer data, gpointer userdata); |
33 |
34 |
189 } |
190 } |
190 } |
191 } |
191 return NULL; |
192 return NULL; |
192 } |
193 } |
193 |
194 |
194 int session_remove_sessioncontent(JingleSession *sess, const gchar *name) |
195 gint session_remove_sessioncontent(JingleSession *sess, const gchar *name) |
195 { |
196 { |
196 SessionContent *sc; |
197 SessionContent *sc; |
197 sc = session_find_sessioncontent(sess, name); |
198 sc = session_find_sessioncontent(sess, name); |
198 if(sc == NULL) return; |
199 if(sc == NULL) return 0; |
199 |
200 |
200 if (sc->state == JINGLE_SESSION_STATE_ACTIVE) { |
201 if (sc->state == JINGLE_SESSION_STATE_ACTIVE) { |
201 // TODO: stop the transfer |
202 // TODO: stop the transfer |
202 } |
203 } |
203 |
204 |
273 LmMessage *lm_message_from_jinglesession(const JingleSession *js, |
274 LmMessage *lm_message_from_jinglesession(const JingleSession *js, |
274 JingleAction action) |
275 JingleAction action) |
275 { |
276 { |
276 LmMessage* m; |
277 LmMessage* m; |
277 LmMessageNode *jnode; |
278 LmMessageNode *jnode; |
278 const gchar *actionstr, *recipient; |
279 const gchar *recipient; |
279 |
280 |
280 recipient = (js->origin == JINGLE_SESSION_INCOMING) ? js->from : js->to; |
281 recipient = (js->origin == JINGLE_SESSION_INCOMING) ? js->from : js->to; |
281 |
282 |
282 m = lm_message_new_with_sub_type(recipient, LM_MESSAGE_TYPE_IQ, |
283 m = lm_message_new_with_sub_type(recipient, LM_MESSAGE_TYPE_IQ, |
283 LM_MESSAGE_SUB_TYPE_SET); |
284 LM_MESSAGE_SUB_TYPE_SET); |
284 |
285 |
285 jnode = lm_message_node_add_child(m->node, "jingle", NULL); |
286 jnode = lm_message_node_add_child(m->node, "jingle", NULL); |
286 |
287 |
287 lm_message_node_set_attribute(jnode, "xmlns", NS_JINGLE); |
288 lm_message_node_set_attribute(jnode, "xmlns", NS_JINGLE); |
288 |
289 |
289 if (actionstr = jingle_action_list[action].name) |
290 lm_message_node_set_attribute(jnode, "action", jingle_action_list[action].name); |
290 lm_message_node_set_attribute(jnode, "action", actionstr); |
|
291 else |
|
292 return NULL; |
|
293 |
291 |
294 if (js->sid) |
292 if (js->sid) |
295 lm_message_node_set_attribute(jnode, "sid", js->sid); |
293 lm_message_node_set_attribute(jnode, "sid", js->sid); |
296 else |
294 else |
297 return NULL; |
295 return NULL; |
300 return m; |
298 return m; |
301 } |
299 } |
302 |
300 |
303 static void lm_insert_sessioncontent(gpointer data, gpointer userdata) |
301 static void lm_insert_sessioncontent(gpointer data, gpointer userdata) |
304 { |
302 { |
305 const gchar *xmlns; |
|
306 JingleTransportFuncs *tfunc; |
|
307 JingleAppFuncs *afunc; |
|
308 SessionContent *content = (SessionContent*) data; |
303 SessionContent *content = (SessionContent*) data; |
309 LmMessageNode *jnode = (LmMessageNode*) userdata; |
304 LmMessageNode *jnode = (LmMessageNode*) userdata; |
310 LmMessageNode *node = lm_message_node_add_child(jnode, "content", NULL); |
305 LmMessageNode *node = lm_message_node_add_child(jnode, "content", NULL); |
311 |
306 |
312 if (content->name) |
307 if (content->name) |