]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Make CONFBRIDGE_INFO behave more nicely
authorKinsey Moore <kmoore@digium.com>
Fri, 19 Aug 2011 19:59:34 +0000 (19:59 +0000)
committerKinsey Moore <kmoore@digium.com>
Fri, 19 Aug 2011 19:59:34 +0000 (19:59 +0000)
CONFBRIDGE_INFO doesn't behave as well in edge cases as MEETME_INFO.  With this
patch, CONFBRIDGE_INFO should behave in a much more reasonable manner when
presented with invalid conferences and keywords.

Review: https://reviewboard.asterisk.org/r/1359/

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

apps/app_confbridge.c

index 6e992ebd31f3d073c5ac46b023e03631d662b42d..ed00816334bc0cf1ee40e5d097c74b7b047b991b 100644 (file)
@@ -2623,14 +2623,14 @@ static int func_confbridge_info(struct ast_channel *chan, const char *cmd, char
                return -1;
        }
        if (!ao2_container_count(conference_bridges)) {
-               ast_log(LOG_ERROR, "No active conferences.\n");
-               return -1;
+               snprintf(buf, len, "0");
+               return 0;
        }
        ast_copy_string(tmp.name, args.confno, sizeof(tmp.name));
        bridge = ao2_find(conference_bridges, &tmp, OBJ_POINTER);
        if (!bridge) {
-               ast_log(LOG_ERROR, "Conference '%s' not found.\n", args.confno);
-               return -1;
+               snprintf(buf, len, "0");
+               return 0;
        }
 
        /* get the correct count for the type requested */
@@ -2654,9 +2654,7 @@ static int func_confbridge_info(struct ast_channel *chan, const char *cmd, char
        } else if (!strncasecmp(args.type, "locked", 6)) {
                count = bridge->locked;
        } else {
-               ao2_unlock(bridge);
-               ao2_ref(bridge, -1);
-               return -1;
+               ast_log(LOG_ERROR, "Invalid keyword.\n");
        }
        snprintf(buf, len, "%d", count);
        ao2_unlock(bridge);