diff options
author | Mark Spencer <markster@digium.com> | 2003-12-09 23:55:17 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2003-12-09 23:55:17 +0000 |
commit | 2f69b332d8e7b9fbd52f837f477da8abd86e57d8 (patch) | |
tree | e5e5eb37bd50d00a0215049ce584d248a60da5df /channels/chan_iax2.c | |
parent | 23cfe10d94c4583454e5fa53908581d6fc63f5ff (diff) |
Cleanup unload calls
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1850 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-x | channels/chan_iax2.c | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index e77871651..9273d5233 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -5986,6 +5986,33 @@ static struct ast_switch iax2_switch = matchmore: iax2_matchmore, }; +static int __unload_module(void) +{ + int x; + /* Cancel the network thread, close the net socket */ + pthread_cancel(netthreadid); + pthread_join(netthreadid, NULL); + close(netsocket); + for (x=0;x<IAX_MAX_CALLS;x++) + if (iaxs[x]) + iax2_destroy(x); + ast_manager_unregister( "IAXpeers" ); + ast_cli_unregister(&cli_show_users); + ast_cli_unregister(&cli_show_channels); + ast_cli_unregister(&cli_show_peers); + ast_cli_unregister(&cli_set_jitter); + ast_cli_unregister(&cli_show_stats); + ast_cli_unregister(&cli_show_cache); + ast_unregister_switch(&iax2_switch); + delete_users(); + return 0; +} + +int unload_module() +{ + return __unload_module(); +} + int load_module(void) { char *config = "iax.conf"; @@ -6048,7 +6075,7 @@ int load_module(void) if (ast_channel_register(type, tdesc, iax2_capability, iax2_request)) { ast_log(LOG_ERROR, "Unable to register channel class %s\n", type); - unload_module(); + __unload_module(); return -1; } @@ -6095,28 +6122,6 @@ char *description() return desc; } -int unload_module() -{ - int x; - /* Cancel the network thread, close the net socket */ - pthread_cancel(netthreadid); - pthread_join(netthreadid, NULL); - close(netsocket); - for (x=0;x<IAX_MAX_CALLS;x++) - if (iaxs[x]) - iax2_destroy(x); - ast_manager_unregister( "IAXpeers" ); - ast_cli_unregister(&cli_show_users); - ast_cli_unregister(&cli_show_channels); - ast_cli_unregister(&cli_show_peers); - ast_cli_unregister(&cli_set_jitter); - ast_cli_unregister(&cli_show_stats); - ast_cli_unregister(&cli_show_cache); - ast_unregister_switch(&iax2_switch); - delete_users(); - return 0; -} - int usecount() { int res; |