[asterisk-commits] file: branch 1.4 r48502 -
/branches/1.4/channels/chan_iax2.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Fri Dec 15 12:24:15 MST 2006
Author: file
Date: Fri Dec 15 13:24:15 2006
New Revision: 48502
URL: http://svn.digium.com/view/asterisk?view=rev&rev=48502
Log:
Lock network retransmission queue in all places that it is used.
Modified:
branches/1.4/channels/chan_iax2.c
Modified: branches/1.4/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/channels/chan_iax2.c?view=diff&rev=48502&r1=48501&r2=48502
==============================================================================
--- branches/1.4/channels/chan_iax2.c (original)
+++ branches/1.4/channels/chan_iax2.c Fri Dec 15 13:24:15 2006
@@ -1746,11 +1746,14 @@
ast_queue_hangup(owner);
}
+ AST_LIST_LOCK(&iaxq.queue);
AST_LIST_TRAVERSE(&iaxq.queue, cur, list) {
/* Cancel any pending transmissions */
if (cur->callno == pvt->callno)
cur->retries = -1;
}
+ AST_LIST_UNLOCK(&iaxq.queue);
+
if (pvt->reg)
pvt->reg->callno = 0;
if (!owner) {
@@ -2057,8 +2060,11 @@
{
struct iax_frame *cur;
int cnt = 0, dead=0, final=0;
+
if (argc != 3)
return RESULT_SHOWUSAGE;
+
+ AST_LIST_LOCK(&iaxq.queue);
AST_LIST_TRAVERSE(&iaxq.queue, cur, list) {
if (cur->retries < 0)
dead++;
@@ -2066,6 +2072,8 @@
final++;
cnt++;
}
+ AST_LIST_UNLOCK(&iaxq.queue);
+
ast_cli(fd, " IAX Statistics\n");
ast_cli(fd, "---------------------\n");
ast_cli(fd, "Outstanding frames: %d (%d ingress, %d egress)\n", iax_get_frames(), iax_get_iframes(), iax_get_oframes());
More information about the asterisk-commits
mailing list