diff --git a/main/channel.c b/main/channel.c index 2779aa8279..304fae18ae 100644 --- a/main/channel.c +++ b/main/channel.c @@ -304,25 +304,23 @@ static char *handle_cli_core_show_channeltypes(struct ast_cli_entry *e, int cmd, static char *complete_channeltypes(struct ast_cli_args *a) { struct chanlist *cl; - int which = 0; int wordlen; - char *ret = NULL; - if (a->pos != 3) + if (a->pos != 3) { return NULL; + } wordlen = strlen(a->word); AST_RWLIST_RDLOCK(&backends); AST_RWLIST_TRAVERSE(&backends, cl, list) { - if (!strncasecmp(a->word, cl->tech->type, wordlen) && ++which > a->n) { - ret = ast_strdup(cl->tech->type); - break; + if (!strncasecmp(a->word, cl->tech->type, wordlen)) { + ast_cli_completion_add(ast_strdup(cl->tech->type)); } } AST_RWLIST_UNLOCK(&backends); - return ret; + return NULL; } /*! \brief Show details about a channel driver - CLI command */