Fix a crash in pjnath when starting an ICE connectivity check and immediately destroying the ICE session.

The initial ICE connectivity check is scheduled as a timer item that is to be executed immediately. It is possible for this timer item to start executing while the ICE session it is working on is destroyed. To reduce the chance of this any timer items that need to be immediately executed will be executed within the thread that has started the initial ICE connectivity check.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370177 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/11.2
Joshua Colp 13 years ago
parent cbdb2dbb0e
commit 8401e81383

@ -489,6 +489,7 @@ static void ast_rtp_ice_start(struct ast_rtp_instance *instance)
if (pj_ice_sess_create_check_list(rtp->ice, &ufrag, &passwd, ao2_container_count(rtp->remote_candidates), &candidates[0]) == PJ_SUCCESS) {
pj_ice_sess_start_check(rtp->ice);
pj_timer_heap_poll(timerheap, NULL);
rtp->ice_started = 1;
}
}

Loading…
Cancel
Save