From 7a2a6a073f9796f622204abe60b64c5ac8372ea1 Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Fri, 8 May 2009 19:50:44 +0000
Subject: [PATCH] Reset the members' call counts when resetting queue
 statistics.

This helps to prevent odd scenarios where a queue will claim to have
taken 0 calls, but the members appear to have taken a non-zero amount.

(closes issue #15068)
Reported by: sum
Patches:
      patchreset.patch uploaded by sum (license 766)
Tested by: sum



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_queue.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/apps/app_queue.c b/apps/app_queue.c
index eee4e55696..6590f6bad1 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1234,6 +1234,16 @@ static void clear_queue(struct call_queue *q)
 	q->callsabandoned = 0;
 	q->callscompletedinsl = 0;
 	q->wrapuptime = 0;
+	q->talktime = 0;
+
+	if (q->members) {
+		struct member *mem;
+		struct ao2_iterator mem_iter = ao2_iterator_init(q->members, 0);
+		while ((mem = ao2_iterator_next(&mem_iter))) {
+			mem->calls = 0;
+			ao2_ref(mem, -1);
+		}
+	}
 }
 
 /*! 
-- 
GitLab