str = iks_string(iks_stack(iq), iq);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "\nSEND: to %s, %s\n", to, str);
rayo_client_command_recv(client, iq);
+ iks_delete(command);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "bad request xml\n");
}
*/
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_rayo_shutdown)
{
- if (globals.console) {
- RAYO_UNLOCK(globals.console);
- RAYO_DESTROY(globals.console);
- }
-
switch_console_del_complete_func("::rayo::list_actors");
switch_console_set_complete("del rayo");
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Waiting for message threads to stop\n");
stop_deliver_message_threads();
+ if (globals.console) {
+ RAYO_UNLOCK(globals.console);
+ RAYO_DESTROY(globals.console);
+ globals.console = NULL;
+ }
+
+ if (globals.server) {
+ RAYO_UNLOCK(globals.server);
+ RAYO_DESTROY(globals.server);
+ globals.server = NULL;
+ }
+
rayo_components_shutdown();
/* cleanup module */
switch_event_unbind_callback(on_call_end_event);
switch_event_unbind_callback(route_mixer_event);
+ switch_core_hash_destroy(&globals.command_handlers);
+ switch_core_hash_destroy(&globals.event_handlers);
+ switch_core_hash_destroy(&globals.clients_roster);
+ switch_core_hash_destroy(&globals.actors);
+ switch_core_hash_destroy(&globals.destroy_actors);
+ switch_core_hash_destroy(&globals.actors_by_id);
+ switch_core_hash_destroy(&globals.dial_gateways);
+ switch_core_hash_destroy(&globals.cmd_aliases);
+
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Module shutdown\n");
return SWITCH_STATUS_SUCCESS;
int allowed = 0;
char remote_ip[50] = { 0 };
if (switch_socket_addr_get(&sa, SWITCH_TRUE, socket) == SWITCH_STATUS_SUCCESS && sa) {
- switch_get_addr(remote_ip, sizeof(remote_ip), sa);
+ switch_get_addr(remote_ip, sizeof(remote_ip), sa);
allowed = switch_check_network_list_ip(remote_ip, listener->acl);
}
if (!allowed) {
context->shutdown = 1;
/* wait for threads to finish */
switch_thread_rwlock_wrlock(context->shutdown_rwlock);
+ switch_core_hash_destroy(&context->routes);
+ switch_core_hash_destroy(&context->streams);
+ switch_core_hash_destroy(&context->users);
pool = context->pool;
switch_core_destroy_memory_pool(&pool);
}