mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
CLI: Enable automatic references to modules.
* Pass module to ast_cli_register and ast_cli_register_multiple. * Add a module reference before executing any CLI callback, remove the reference when complete. ASTERISK-25049 #close Reported by: Corey Farrell Change-Id: I7aafc7c9f2b912918f28fe51d51e9e8a755750e3
This commit is contained in:
@@ -156,8 +156,6 @@ static char *handle_orig(struct ast_cli_entry *e, int cmd, struct ast_cli_args *
|
||||
"used. If no extension is given, the 's' extension will be used.\n";
|
||||
return NULL;
|
||||
case CLI_GENERATE:
|
||||
/* ugly, can be removed when CLI entries have ast_module pointers */
|
||||
ast_module_ref(ast_module_info->self);
|
||||
if (a->pos == 3) {
|
||||
res = ast_cli_complete(a->word, choices, a->n);
|
||||
} else if (a->pos == 4) {
|
||||
@@ -165,16 +163,12 @@ static char *handle_orig(struct ast_cli_entry *e, int cmd, struct ast_cli_args *
|
||||
res = ast_complete_applications(a->line, a->word, a->n);
|
||||
}
|
||||
}
|
||||
ast_module_unref(ast_module_info->self);
|
||||
return res;
|
||||
}
|
||||
|
||||
if (ast_strlen_zero(a->argv[2]) || ast_strlen_zero(a->argv[3]))
|
||||
return CLI_SHOWUSAGE;
|
||||
|
||||
/* ugly, can be removed when CLI entries have ast_module pointers */
|
||||
ast_module_ref(ast_module_info->self);
|
||||
|
||||
if (!strcasecmp("application", a->argv[3])) {
|
||||
res = orig_app(a->fd, a->argv[2], a->argv[4], a->argv[5]);
|
||||
} else if (!strcasecmp("extension", a->argv[3])) {
|
||||
@@ -183,8 +177,6 @@ static char *handle_orig(struct ast_cli_entry *e, int cmd, struct ast_cli_args *
|
||||
res = CLI_SHOWUSAGE;
|
||||
}
|
||||
|
||||
ast_module_unref(ast_module_info->self);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@@ -88,9 +88,6 @@ static char *handle_cli_file_convert(struct ast_cli_entry *e, int cmd, struct as
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* ugly, can be removed when CLI entries have ast_module pointers */
|
||||
ast_module_ref(ast_module_info->self);
|
||||
|
||||
if (a->argc != 4 || ast_strlen_zero(a->argv[2]) || ast_strlen_zero(a->argv[3])) {
|
||||
ret = CLI_SHOWUSAGE;
|
||||
goto fail_out;
|
||||
@@ -142,8 +139,6 @@ fail_out:
|
||||
if (fs_in)
|
||||
ast_closestream(fs_in);
|
||||
|
||||
ast_module_unref(ast_module_info->self);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user