]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Make get_member_status return QUEUE_NO_MEMBERS instead of QUEUE_NO_REACHABLE_MEMBERS...
authorMatthew Nicholson <mnicholson@digium.com>
Tue, 6 Jul 2010 13:52:28 +0000 (13:52 +0000)
committerMatthew Nicholson <mnicholson@digium.com>
Tue, 6 Jul 2010 13:52:28 +0000 (13:52 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@274093 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index b937266ae4adad31f280a49566292659b0f8890b..88d120222f6dbbd52743ff251df52434893c4475 100644 (file)
@@ -574,11 +574,13 @@ static enum queue_member_status get_member_status(struct call_queue *q, int max_
        struct member *member;
        struct ao2_iterator mem_iter;
        enum queue_member_status result = QUEUE_NO_MEMBERS;
-       int allpaused = 1;
+       int allpaused = 1, empty = 1;
 
        ao2_lock(q);
        mem_iter = ao2_iterator_init(q->members, 0);
        while ((member = ao2_iterator_next(&mem_iter))) {
+               empty = 0;
+
                if (max_penalty && (member->penalty > max_penalty)) {
                        ao2_ref(member, -1);
                        continue;
@@ -609,9 +611,9 @@ static enum queue_member_status get_member_status(struct call_queue *q, int max_
        ao2_iterator_destroy(&mem_iter);
        ao2_unlock(q);
 
-    if (allpaused) {
-        result = QUEUE_NO_REACHABLE_MEMBERS;
-    }
+       if (!empty && allpaused) {
+               result = QUEUE_NO_REACHABLE_MEMBERS;
+       }
        return result;
 }