From 95665f0096d6d8af74257fd0e17c6522f31ee6c1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 21 Apr 2010 10:11:13 -0500 Subject: [PATCH] JANITOR-4 --- src/mod/endpoints/mod_loopback/mod_loopback.c | 6 ------ src/mod/formats/mod_sndfile/mod_sndfile.c | 9 ++------- src/mod/loggers/mod_logfile/mod_logfile.c | 2 ++ src/switch.c | 1 + src/switch_core.c | 10 ++++++++++ src/switch_loadable_module.c | 3 ++- src/switch_time.c | 4 ++++ 7 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.c b/src/mod/endpoints/mod_loopback/mod_loopback.c index 8dde5042b6..9e11c5b474 100644 --- a/src/mod/endpoints/mod_loopback/mod_loopback.c +++ b/src/mod/endpoints/mod_loopback/mod_loopback.c @@ -44,8 +44,6 @@ SWITCH_MODULE_DEFINITION(mod_loopback, mod_loopback_load, mod_loopback_shutdown, static switch_endpoint_interface_t *loopback_endpoint_interface = NULL; -static switch_memory_pool_t *module_pool = NULL; - typedef enum { TFLAG_LINKED = (1 << 0), TFLAG_OUTBOUND = (1 << 1), @@ -887,10 +885,6 @@ static switch_io_routines_t channel_io_routines = { SWITCH_MODULE_LOAD_FUNCTION(mod_loopback_load) { - if (switch_core_new_memory_pool(&module_pool) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "OH OH no pool\n"); - return SWITCH_STATUS_TERM; - } memset(&globals, 0, sizeof(globals)); diff --git a/src/mod/formats/mod_sndfile/mod_sndfile.c b/src/mod/formats/mod_sndfile/mod_sndfile.c index 020943ce5a..c017ad9f06 100644 --- a/src/mod/formats/mod_sndfile/mod_sndfile.c +++ b/src/mod/formats/mod_sndfile/mod_sndfile.c @@ -36,7 +36,6 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_sndfile_load); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_sndfile_shutdown); SWITCH_MODULE_DEFINITION(mod_sndfile, mod_sndfile_load, mod_sndfile_shutdown, NULL); -static switch_memory_pool_t *module_pool = NULL; static struct { switch_hash_t *format_hash; @@ -415,12 +414,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_sndfile_load) { switch_file_interface_t *file_interface; - if (switch_core_new_memory_pool(&module_pool) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "OH OH no pool\n"); - return SWITCH_STATUS_TERM; - } - - switch_core_hash_init(&globals.format_hash, module_pool); + switch_core_hash_init(&globals.format_hash, pool); if (setup_formats() != SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_FALSE; @@ -447,6 +441,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_sndfile_load) SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_sndfile_shutdown) { switch_core_hash_destroy(&globals.format_hash); + return SWITCH_STATUS_SUCCESS; } diff --git a/src/mod/loggers/mod_logfile/mod_logfile.c b/src/mod/loggers/mod_logfile/mod_logfile.c index 3645cb1ea1..8cdaf9615a 100644 --- a/src/mod/loggers/mod_logfile/mod_logfile.c +++ b/src/mod/loggers/mod_logfile/mod_logfile.c @@ -398,9 +398,11 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_logfile_shutdown) if ((profile = (logfile_profile_t *) val)) { switch_file_close(profile->log_afd); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Closing %s\n", profile->logfile); + switch_safe_free(profile->logfile); } } + switch_core_hash_destroy(&profile_hash); return SWITCH_STATUS_SUCCESS; diff --git a/src/switch.c b/src/switch.c index 5c761e372c..77aea8dc00 100644 --- a/src/switch.c +++ b/src/switch.c @@ -791,6 +791,7 @@ int main(int argc, char *argv[]) destroy_status = switch_core_destroy(); switch_file_close(fd); + apr_pool_destroy(pool); if (unlink(pid_path) != 0) { fprintf(stderr, "Failed to delete pid file [%s]\n", pid_path); diff --git a/src/switch_core.c b/src/switch_core.c index fe0ffcbaba..78296ebe7b 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -1867,13 +1867,23 @@ SWITCH_DECLARE(switch_status_t) switch_core_destroy(void) switch_safe_free(SWITCH_GLOBAL_dirs.script_dir); switch_safe_free(SWITCH_GLOBAL_dirs.htdocs_dir); switch_safe_free(SWITCH_GLOBAL_dirs.grammar_dir); + switch_safe_free(SWITCH_GLOBAL_dirs.storage_dir); switch_safe_free(SWITCH_GLOBAL_dirs.recordings_dir); switch_safe_free(SWITCH_GLOBAL_dirs.sounds_dir); + switch_safe_free(SWITCH_GLOBAL_dirs.run_dir); switch_safe_free(SWITCH_GLOBAL_dirs.temp_dir); switch_core_hash_destroy(&runtime.global_vars); switch_core_hash_destroy(&runtime.mime_types); + if (IP_LIST.hash) { + switch_core_hash_destroy(&IP_LIST.hash); + } + + if (IP_LIST.pool) { + switch_core_destroy_memory_pool(&IP_LIST.pool); + } + if (runtime.memory_pool) { apr_pool_destroy(runtime.memory_pool); apr_terminate(); diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c index 62ca411609..2e37585e52 100644 --- a/src/switch_loadable_module.c +++ b/src/switch_loadable_module.c @@ -788,7 +788,7 @@ static switch_status_t switch_loadable_module_load_file(char *path, char *filena switch_loadable_module_interface_t *module_interface = NULL; char *derr = NULL; const char *err = NULL; - switch_memory_pool_t *pool; + switch_memory_pool_t *pool = NULL; switch_bool_t load_global = global; switch_assert(path != NULL); @@ -1349,6 +1349,7 @@ SWITCH_DECLARE(void) switch_loadable_module_shutdown(void) switch_core_hash_destroy(&loadable_modules.management_hash); switch_core_hash_destroy(&loadable_modules.dialplan_hash); + switch_core_destroy_memory_pool(&loadable_modules.pool); } SWITCH_DECLARE(switch_endpoint_interface_t *) switch_loadable_module_get_endpoint_interface(const char *name) diff --git a/src/switch_time.c b/src/switch_time.c index cbdc2f8eb1..2d74e60594 100644 --- a/src/switch_time.c +++ b/src/switch_time.c @@ -1064,6 +1064,10 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(softtimer_shutdown) switch_core_destroy_memory_pool(&TIMEZONES_LIST.pool); } + if (NODE) { + switch_event_unbind(&NODE); + } + return SWITCH_STATUS_SUCCESS; }