Reset the members' call counts when resetting queue statistics.
authorMark Michelson <mmichelson@digium.com>
Fri, 8 May 2009 19:50:44 +0000 (19:50 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 8 May 2009 19:50:44 +0000 (19:50 +0000)
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

index eee4e55..6590f6b 100644 (file)
@@ -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);
+               }
+       }
 }
 
 /*!