summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2003-12-09 23:55:17 +0000
committerMark Spencer <markster@digium.com>2003-12-09 23:55:17 +0000
commit2f69b332d8e7b9fbd52f837f477da8abd86e57d8 (patch)
treee5e5eb37bd50d00a0215049ce584d248a60da5df /channels/chan_iax2.c
parent23cfe10d94c4583454e5fa53908581d6fc63f5ff (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-xchannels/chan_iax2.c51
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;