summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2018-03-15 16:06:26 -0400
committerCorey Farrell <git@cfware.com>2018-03-17 01:55:53 -0400
commit3ad56aa92941c896e0acacb343eead2634c933b8 (patch)
treea0bf56c0a02c13f309f6eee6fad4f14a77c66d5b
parentd5bfba60d2c609852da2f89677e878567d133674 (diff)
main/config: Use ast_cli_completion_add for reload completion.
Change-Id: Ia3fa4c03f2285a1ec8814bbe7f4624ead9111ad1
-rw-r--r--main/config.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/main/config.c b/main/config.c
index dfa6f0923..a11bbf201 100644
--- a/main/config.c
+++ b/main/config.c
@@ -3924,8 +3924,8 @@ static char *handle_cli_core_show_config_mappings(struct ast_cli_entry *e, int c
static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
struct cache_file_mtime *cfmtime;
- char *prev = "", *completion_value = NULL;
- int wordlen, which = 0;
+ char *prev = "";
+ int wordlen;
switch (cmd) {
case CLI_INIT:
@@ -3943,19 +3943,20 @@ static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct a
AST_LIST_LOCK(&cfmtime_head);
AST_LIST_TRAVERSE(&cfmtime_head, cfmtime, list) {
- /* Skip duplicates - this only works because the list is sorted by filename */
- if (strcmp(cfmtime->filename, prev) == 0) {
+ /* Core configs cannot be reloaded */
+ if (ast_strlen_zero(cfmtime->who_asked)) {
continue;
}
- /* Core configs cannot be reloaded */
- if (ast_strlen_zero(cfmtime->who_asked)) {
+ /* Skip duplicates - this only works because the list is sorted by filename */
+ if (!strcmp(cfmtime->filename, prev)) {
continue;
}
- if (++which > a->n && strncmp(cfmtime->filename, a->word, wordlen) == 0) {
- completion_value = ast_strdup(cfmtime->filename);
- break;
+ if (!strncmp(cfmtime->filename, a->word, wordlen)) {
+ if (ast_cli_completion_add(ast_strdup(cfmtime->filename))) {
+ break;
+ }
}
/* Otherwise save that we've seen this filename */
@@ -3963,7 +3964,7 @@ static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct a
}
AST_LIST_UNLOCK(&cfmtime_head);
- return completion_value;
+ return NULL;
}
if (a->argc != 3) {