From: Kinsey Moore Date: Fri, 19 Aug 2011 19:59:34 +0000 (+0000) Subject: Make CONFBRIDGE_INFO behave more nicely X-Git-Tag: 10.0.0-beta2~115 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16f3b1f2f672268a5f5d6821ac22570ade425cda;p=thirdparty%2Fasterisk.git 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/branches/10@332654 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index 6e992ebd31..ed00816334 100644 --- a/apps/app_confbridge.c +++ b/apps/app_confbridge.c @@ -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);