Cleanup CLI commands on exit for several files.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      unregister-cli-multiple-all.patch (license #5909) patch uploaded by Corey Farrell
........

Merged revisions 377881 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@377882 65c4cc65-6c06-0410-ace0-fbb531ad65f3
10
Richard Mudgett 13 years ago
parent e17a83acf6
commit 647423d857

@ -1605,7 +1605,12 @@ static struct ast_cli_entry aoc_cli[] = {
AST_CLI_DEFINE(aoc_cli_debug_enable, "enable cli debugging of AOC messages"),
};
static void aoc_shutdown(void)
{
ast_cli_unregister_multiple(aoc_cli, ARRAY_LEN(aoc_cli));
}
int ast_aoc_cli_init(void)
{
ast_register_atexit(aoc_shutdown);
return ast_cli_register_multiple(aoc_cli, ARRAY_LEN(aoc_cli));
}

@ -715,6 +715,7 @@ static void ast_cel_engine_term(void)
ao2_ref(linkedids, -1);
linkedids = NULL;
}
ast_cli_unregister(&cli_status);
}
int ast_cel_engine_init(void)

@ -8329,6 +8329,7 @@ static const struct ast_data_entry channel_providers[] = {
static void channels_shutdown(void)
{
ast_data_unregister(NULL);
ast_cli_unregister_multiple(cli_channel, ARRAY_LEN(cli_channel));
if (channels) {
ao2_ref(channels, -1);
channels = NULL;

@ -3318,7 +3318,9 @@ AST_TEST_DEFINE(test_data_get)
static void data_shutdown(void)
{
ast_manager_unregister("DataGet");
ast_cli_unregister_multiple(cli_data, ARRAY_LEN(cli_data));
ao2_t_ref(root_data.container, -1, "Unref root_data.container in data_shutdown");
root_data.container = NULL;
ast_rwlock_destroy(&root_data.lock);
}

@ -1555,8 +1555,14 @@ static struct ast_cli_entry cli_file[] = {
AST_CLI_DEFINE(handle_cli_core_show_file_formats, "Displays file formats")
};
static void file_shutdown(void)
{
ast_cli_unregister_multiple(cli_file, ARRAY_LEN(cli_file));
}
int ast_file_init(void)
{
ast_cli_register_multiple(cli_file, ARRAY_LEN(cli_file));
ast_register_atexit(file_shutdown);
return 0;
}

@ -1195,11 +1195,17 @@ static struct ast_cli_entry cli_http[] = {
AST_CLI_DEFINE(handle_show_http, "Display HTTP server status"),
};
static void http_shutdown(void)
{
ast_cli_unregister_multiple(cli_http, ARRAY_LEN(cli_http));
}
int ast_http_init(void)
{
ast_http_uri_link(&statusuri);
ast_http_uri_link(&staticuri);
ast_cli_register_multiple(cli_http, ARRAY_LEN(cli_http));
ast_register_atexit(http_shutdown);
return __ast_http_load(0);
}

@ -206,8 +206,14 @@ static struct ast_cli_entry cli_image[] = {
AST_CLI_DEFINE(handle_core_show_image_formats, "Displays image formats")
};
static void image_shutdown(void)
{
ast_cli_unregister_multiple(cli_image, ARRAY_LEN(cli_image));
}
int ast_image_init(void)
{
ast_cli_register_multiple(cli_image, ARRAY_LEN(cli_image));
ast_register_atexit(image_shutdown);
return 0;
}

@ -499,8 +499,14 @@ static struct ast_cli_entry cli_stun[] = {
AST_CLI_DEFINE(handle_cli_stun_set_debug, "Enable/Disable STUN debugging"),
};
static void stun_shutdown(void)
{
ast_cli_unregister_multiple(cli_stun, sizeof(cli_stun) / sizeof(struct ast_cli_entry));
}
/*! \brief Initialize the STUN system in Asterisk */
void ast_stun_init(void)
{
ast_cli_register_multiple(cli_stun, sizeof(cli_stun) / sizeof(struct ast_cli_entry));
ast_register_atexit(stun_shutdown);
}

@ -299,11 +299,21 @@ static struct ast_cli_entry cli_timing[] = {
AST_CLI_DEFINE(timing_test, "Run a timing test"),
};
static void timing_shutdown(void)
{
ast_cli_unregister_multiple(cli_timing, ARRAY_LEN(cli_timing));
ast_heap_destroy(timing_interfaces);
timing_interfaces = NULL;
}
int ast_timing_init(void)
{
if (!(timing_interfaces = ast_heap_create(2, timing_holder_cmp, 0))) {
return -1;
}
ast_register_atexit(timing_shutdown);
return ast_cli_register_multiple(cli_timing, ARRAY_LEN(cli_timing));
}

Loading…
Cancel
Save