diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-12-09 23:55:17 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-12-09 23:55:17 +0000 |
commit | dcfebf7bf6b94894f65fd5c6241cd639bdaaf110 (patch) | |
tree | e5e5eb37bd50d00a0215049ce584d248a60da5df /channels/chan_iax.c | |
parent | 5d20155225cb149d6326defea641e47809d67fe6 (diff) |
Cleanup unload calls
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1850 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax.c')
-rwxr-xr-x | channels/chan_iax.c | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/channels/chan_iax.c b/channels/chan_iax.c index 39515dbb8..091c8a1fc 100755 --- a/channels/chan_iax.c +++ b/channels/chan_iax.c @@ -5330,6 +5330,33 @@ static struct ast_switch iax_switch = matchmore: iax_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<AST_IAX_MAX_CALLS;x++) + if (iaxs[x]) + iax_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(&iax_switch); + delete_users(); + return 0; +} + +int unload_module() +{ + return __unload_module(); +} + int load_module(void) { char *config = "iax.conf"; @@ -5379,7 +5406,7 @@ int load_module(void) if (ast_channel_register(type, tdesc, iax_capability, iax_request)) { ast_log(LOG_ERROR, "Unable to register channel class %s\n", type); - unload_module(); + __unload_module(); return -1; } @@ -5426,28 +5453,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<AST_IAX_MAX_CALLS;x++) - if (iaxs[x]) - iax_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(&iax_switch); - delete_users(); - return 0; -} - int usecount() { int res; |