[asterisk-commits] mmichelson: branch group/CCSS r247907 - /team/group/CCSS/main/ccss.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Feb 19 11:08:14 CST 2010
Author: mmichelson
Date: Fri Feb 19 11:08:11 2010
New Revision: 247907
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=247907
Log:
Add tab-completion for core IDs to CLI command to cancel CC.
Modified:
team/group/CCSS/main/ccss.c
Modified: team/group/CCSS/main/ccss.c
URL: http://svnview.digium.com/svn/asterisk/team/group/CCSS/main/ccss.c?view=diff&rev=247907&r1=247906&r2=247907
==============================================================================
--- team/group/CCSS/main/ccss.c (original)
+++ team/group/CCSS/main/ccss.c Fri Feb 19 11:08:11 2010
@@ -3978,6 +3978,29 @@
return 0;
}
+static char *complete_core_id(const char *line, const char *word, int pos, int state)
+{
+ int which = 0;
+ int wordlen = strlen(word);
+ char *ret = NULL;
+ struct ao2_iterator core_iter = ao2_iterator_init(cc_core_instances, 0);
+ struct cc_core_instance *core_instance;
+
+ for (; (core_instance = ao2_iterator_next(&core_iter)); cc_unref(core_instance,
+ "CLI tab completion iteration")) {
+ char core_id_str[20];
+ snprintf(core_id_str, sizeof(core_id_str), "%d", core_instance->core_id);
+ if (!strncmp(word, core_id_str, wordlen) && ++which > state) {
+ ret = ast_strdup(core_id_str);
+ cc_unref(core_instance, "Found a matching core ID for CLI tab-completion");
+ break;
+ }
+ }
+ ao2_iterator_destroy(&core_iter);
+
+ return ret;
+}
+
static char *handle_cc_kill(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
static const char * const option[] = { "core", "all", NULL };
@@ -3995,6 +4018,9 @@
if (a->pos == 2) {
return ast_cli_complete(a->word, option, a->n);
}
+ if (a->pos == 3) {
+ return complete_core_id(a->line, a->word, a->pos, a->n);
+ }
return NULL;
}
More information about the asterisk-commits
mailing list