diff options
author | Benny Prijono <bennylp@teluu.com> | 2011-09-19 06:43:49 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2011-09-19 06:43:49 +0000 |
commit | 5759f019b6e1fde8201506d4e57248e15ca3ed31 (patch) | |
tree | fd493754bcf8f11b5fcb0858cba1902c4118d03e | |
parent | 95ba3fa4501e8e7a6769d29f54025dc614455b9b (diff) |
Fixed #1374: Assertion when CANCEL and INVITE final response "crosses the wire"
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3755 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjsip/src/pjsip/sip_transaction.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index 9618d241..93f5d813 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -2960,6 +2960,12 @@ static pj_status_t tsx_on_state_proceeding_uac(pjsip_transaction *tsx, timeout.sec = timeout.msec = 0; } lock_timer(tsx); + /* In the short period above timer may have been inserted + * by set_timeout() (by CANCEL). Cancel it if necessary. See: + * https://trac.pjsip.org/repos/ticket/1374 + */ + if (tsx->timeout_timer.id) + pjsip_endpt_cancel_timer( tsx->endpt, &tsx->timeout_timer ); tsx->timeout_timer.id = TIMER_ACTIVE; pjsip_endpt_schedule_timer( tsx->endpt, &tsx->timeout_timer, &timeout); unlock_timer(tsx); |