Merged revisions 89323 via svnmerge from
authorMark Michelson <mmichelson@digium.com>
Fri, 16 Nov 2007 15:44:27 +0000 (15:44 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 16 Nov 2007 15:44:27 +0000 (15:44 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89323 | mmichelson | 2007-11-16 09:28:22 -0600 (Fri, 16 Nov 2007) | 5 lines

Make realtime queues accessible from the QUEUE_MEMBER_COUNT function.

(closes issue #11271, reported and patched by atis, with small modifications from me)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89324 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index 4232854..e559268 100644 (file)
@@ -4153,11 +4153,9 @@ static int queue_function_var(struct ast_channel *chan, const char *cmd, char *d
 static int queue_function_qac(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
        int count = 0;
-       struct call_queue *q, tmpq = {
-               .name = data,   
-       };
        struct member *m;
        struct ao2_iterator mem_iter;
+       struct call_queue *q;
        char *option;
 
        if (ast_strlen_zero(data)) {
@@ -4169,8 +4167,7 @@ static int queue_function_qac(struct ast_channel *chan, const char *cmd, char *d
                *option++ = '\0';
        else
                option = "logged";
-       
-       if ((q = ao2_find(queues, &tmpq, OBJ_POINTER))) {
+       if ((q = load_realtime_queue(data))) {
                ao2_lock(q);
                if(!strcasecmp(option, "logged")) {
                        mem_iter = ao2_iterator_init(q->members, 0);
@@ -4205,10 +4202,8 @@ static int queue_function_qac(struct ast_channel *chan, const char *cmd, char *d
 static int queue_function_qac_dep(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
        int count = 0;
-       struct call_queue *q, tmpq = {
-               .name = data,   
-       };
        struct member *m;
+       struct call_queue *q;
        struct ao2_iterator mem_iter;
        static int depflag = 1;
 
@@ -4222,7 +4217,7 @@ static int queue_function_qac_dep(struct ast_channel *chan, const char *cmd, cha
                return -1;
        }
        
-       if ((q = ao2_find(queues, &tmpq, OBJ_POINTER))) {
+       if((q = load_realtime_queue(data))) {
                ao2_lock(q);
                mem_iter = ao2_iterator_init(q->members, 0);
                while ((m = ao2_iterator_next(&mem_iter))) {