Merged revisions 332654 via svnmerge from
authorKinsey Moore <kmoore@digium.com>
Fri, 19 Aug 2011 20:00:19 +0000 (20:00 +0000)
committerKinsey Moore <kmoore@digium.com>
Fri, 19 Aug 2011 20:00:19 +0000 (20:00 +0000)
https://origsvn.digium.com/svn/asterisk/branches/10

........
  r332654 | kmoore | 2011-08-19 14:59:34 -0500 (Fri, 19 Aug 2011) | 8 lines

  Make CONFBRIDGE_INFO behave more nicely

  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/trunk@332655 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_confbridge.c

index 6e992eb..ed00816 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);