Merged revisions 174543 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

........
  r174543 | file | 2009-02-10 11:37:07 -0400 (Tue, 10 Feb 2009) | 6 lines
  
  Make the logic for inuse and inringing manipluation match that of 1.4. The old broken logic would reset the values back to 0 during certain scenarios causing the wrong state to be reported.
  (closes issue #14399)
  Reported by: caspy
  (issue #13238)
  Reported by: kowalma
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@174545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.1
Joshua Colp 17 years ago
parent 0d7e202ebf
commit 5ed074591b

@ -4803,9 +4803,11 @@ static int update_call_counter(struct sip_pvt *fup, int event)
if (inuse) {
sip_pvt_lock(fup);
ao2_lock(p);
if ((*inuse > 0) && ast_test_flag(&fup->flags[0], SIP_INC_COUNT)) {
(*inuse)--;
ast_clear_flag(&fup->flags[0], SIP_INC_COUNT);
if (*inuse > 0) {
if (ast_test_flag(&fup->flags[0], SIP_INC_COUNT)) {
(*inuse)--;
ast_clear_flag(&fup->flags[0], SIP_INC_COUNT);
}
} else {
*inuse = 0;
}
@ -4817,9 +4819,11 @@ static int update_call_counter(struct sip_pvt *fup, int event)
if (inringing) {
sip_pvt_lock(fup);
ao2_lock(p);
if ((*inringing > 0)&& ast_test_flag(&fup->flags[0], SIP_INC_RINGING)) {
(*inringing)--;
ast_clear_flag(&fup->flags[0], SIP_INC_RINGING);
if (*inringing > 0) {
if (ast_test_flag(&fup->flags[0], SIP_INC_RINGING)) {
(*inringing)--;
ast_clear_flag(&fup->flags[0], SIP_INC_RINGING);
}
} else {
*inringing = 0;
}

Loading…
Cancel
Save