]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_rayo: valgrind fixes
authorChris Rienzo <chris.rienzo@grasshopper.com>
Tue, 25 Jun 2013 01:55:58 +0000 (21:55 -0400)
committerChris Rienzo <chris.rienzo@grasshopper.com>
Tue, 25 Jun 2013 02:19:54 +0000 (22:19 -0400)
src/mod/event_handlers/mod_rayo/mod_rayo.c
src/mod/event_handlers/mod_rayo/xmpp_streams.c

index 54d15960f4f74a1bb7ca9f2d47a9cc6ba9072c24..36200aa2fb012296d6843e7648176964d93823f7 100644 (file)
@@ -3242,6 +3242,7 @@ static void send_console_command(struct rayo_client *client, const char *to, con
                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");
        }
@@ -3639,11 +3640,6 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_rayo_load)
  */
 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");
 
@@ -3655,6 +3651,18 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_rayo_shutdown)
        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 */
@@ -3662,6 +3670,15 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_rayo_shutdown)
        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;
index a1fa348ec3839793a88836bfa95b1590691fa419..3b5547b29b472ecca7e902724d438f22dbe916c9 100644 (file)
@@ -1592,7 +1592,7 @@ static void *SWITCH_THREAD_FUNC xmpp_listener_thread(switch_thread_t *thread, vo
                                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) {
@@ -1779,6 +1779,9 @@ void xmpp_stream_context_destroy(struct xmpp_stream_context *context)
        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);
 }