[svn-commits] trunk - r8432 /trunk/channels/chan_sip.c
svn-commits at lists.digium.com
svn-commits at lists.digium.com
Sun Jan 22 08:08:53 MST 2006
Author: bweschke
Date: Sun Jan 22 09:08:51 2006
New Revision: 8432
URL: http://svn.digium.com/view/asterisk?rev=8432&view=rev
Log:
Correct some scenarios where CALL_LIMIT could not be getting adjusted properly allowing chan_sip to send calls when it really shouldn't. Bug #6111
Modified:
trunk/channels/chan_sip.c
Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?rev=8432&r1=8431&r2=8432&view=diff
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Sun Jan 22 09:08:51 2006
@@ -567,6 +567,8 @@
#define SIP_CALL_LIMIT (1 << 29)
/* Remote Party-ID Support */
#define SIP_SENDRPID (1 << 30)
+/* Did this connection increment the counter of in-use calls? */
+#define SIP_INC_COUNT (1 << 31)
#define SIP_FLAGS_TO_COPY \
(SIP_PROMISCREDIR | SIP_TRUSTRPID | SIP_SENDRPID | SIP_DTMF | SIP_REINVITE | \
@@ -2229,7 +2231,8 @@
/* incoming and outgoing affects the inUse counter */
case DEC_CALL_LIMIT:
if ( *inuse > 0 ) {
- (*inuse)--;
+ if (ast_test_flag(fup,SIP_INC_COUNT))
+ (*inuse)--;
} else {
*inuse = 0;
}
@@ -2249,6 +2252,7 @@
}
}
(*inuse)++;
+ ast_set_flag(fup,SIP_INC_COUNT);
if (option_debug > 1 || sipdebug) {
ast_log(LOG_DEBUG, "Call %s %s '%s' is %d out of %d\n", outgoing ? "to" : "from", u ? "user":"peer", name, *inuse, *call_limit);
}
More information about the svn-commits
mailing list