equal
deleted
inserted
replaced
383 } |
383 } |
384 |
384 |
385 void handle_session_terminate(JingleNode *jn) |
385 void handle_session_terminate(JingleNode *jn) |
386 { |
386 { |
387 JingleSession *sess; |
387 JingleSession *sess; |
|
388 GSList *el; |
|
389 SessionContent *sc; |
|
390 |
388 if ((sess = session_find(jn)) == NULL) { |
391 if ((sess = session_find(jn)) == NULL) { |
389 jingle_send_iq_error(jn->message, "cancel", "item-not-found", "unknown-session"); |
392 jingle_send_iq_error(jn->message, "cancel", "item-not-found", "unknown-session"); |
390 return; |
393 return; |
391 } |
394 } |
|
395 |
|
396 for (el = sess->content; el; el = el->next) { |
|
397 sc = (SessionContent*)el->data; |
|
398 sc->appfuncs->stop(sc->description); |
|
399 session_remove_sessioncontent(sess, sc->name); |
|
400 } |
392 session_delete(sess); |
401 session_delete(sess); |
393 jingle_ack_iq(jn->message); |
402 jingle_ack_iq(jn->message); |
394 } |
403 } |