diff options
author | Benny Prijono <bennylp@teluu.com> | 2007-02-20 18:53:14 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2007-02-20 18:53:14 +0000 |
commit | b69a9ab56a1df4a41bfa9132d5aa5263fa80b38b (patch) | |
tree | 0b4f9a04e8f9aece0483ec5272d63597134316d6 /pjsip/src | |
parent | e288aba10e7bd0ba89ea24c4a267bd40a3a4d38d (diff) |
Fixed (and tested) ticket #112: Workaround for forking
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@989 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r-- | pjsip/src/pjsip/sip_ua_layer.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/pjsip/src/pjsip/sip_ua_layer.c b/pjsip/src/pjsip/sip_ua_layer.c index 12308f12..56000035 100644 --- a/pjsip/src/pjsip/sip_ua_layer.c +++ b/pjsip/src/pjsip/sip_ua_layer.c @@ -805,24 +805,17 @@ retry_on_deadlock: /* Report to application about forked condition. * Application can either create a dialog or ignore the response. */ - if (mod_ua.param.on_dlg_forked) + if (mod_ua.param.on_dlg_forked) { dlg = (*mod_ua.param.on_dlg_forked)(dlg_set->dlg_list.next, rdata); - else - dlg = NULL; - - /* Ignore this response if application doesn't want to - * create a dialog. - */ - if (dlg == NULL) { - pj_mutex_unlock(mod_ua.mutex); + } else { + dlg = dlg_set->dlg_list.next; PJ_LOG(4,(THIS_FILE, - "Unhandled forked %s from %s:%d", + "Unhandled forked %s from %s:%d, response will be " + "handed over to the first dialog", pjsip_rx_data_get_info(rdata), rdata->pkt_info.src_name, rdata->pkt_info.src_port)); - - return PJ_TRUE; } } else if (dlg == (pjsip_dialog*)&dlg_set->dlg_list) { |