diff options
author | Joshua Colp <jcolp@digium.com> | 2018-03-20 09:51:41 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2018-03-20 09:51:41 -0500 |
commit | dc2ce3ce32752ecbb365a33fd89e18460ce84bb8 (patch) | |
tree | 5f6257a736734842a70954a3e48b3b84a7ad926a | |
parent | 1a2f12e288f61a90dc4e0813cd7e257feeab2d8f (diff) | |
parent | 201762f16176f6559a61eacf4b11a3d3babae7b9 (diff) |
Merge "named_acl: Use ast_cli_completion_add."
-rw-r--r-- | main/named_acl.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/main/named_acl.c b/main/named_acl.c index 4f2069a75..c4628216f 100644 --- a/main/named_acl.c +++ b/main/named_acl.c @@ -475,12 +475,10 @@ static void cli_display_named_acl_list(int fd) /* \brief ACL command show <name> */ static char *handle_show_named_acl_cmd(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { - RAII_VAR(struct named_acl_config *, cfg, ao2_global_obj_ref(globals), ao2_cleanup); + struct named_acl_config *cfg; int length; - int which; struct ao2_iterator i; struct named_acl *named_acl; - char *match = NULL; switch (cmd) { case CLI_INIT: @@ -490,23 +488,29 @@ static char *handle_show_named_acl_cmd(struct ast_cli_entry *e, int cmd, struct " Shows a list of named ACLs or lists all entries in a given named ACL.\n"; return NULL; case CLI_GENERATE: + if (a->pos != 2) { + return NULL; + } + + cfg = ao2_global_obj_ref(globals); if (!cfg) { return NULL; } length = strlen(a->word); - which = 0; i = ao2_iterator_init(cfg->named_acl_list, 0); while ((named_acl = ao2_iterator_next(&i))) { - if (!strncasecmp(a->word, named_acl->name, length) && ++which > a->n) { - match = ast_strdup(named_acl->name); - ao2_ref(named_acl, -1); - break; + if (!strncasecmp(a->word, named_acl->name, length)) { + if (ast_cli_completion_add(ast_strdup(named_acl->name))) { + ao2_ref(named_acl, -1); + break; + } } ao2_ref(named_acl, -1); } ao2_iterator_destroy(&i); - return match; + ao2_ref(cfg, -1); + return NULL; } if (a->argc == 2) { |