]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3589 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 24 Oct 2011 13:47:08 +0000 (08:47 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 24 Oct 2011 13:47:08 +0000 (08:47 -0500)
src/switch_core_session.c
src/switch_ivr_originate.c

index 1d0b952feebf540a03a86f6fa1351e300136517e..46bffa7df5ac5231a454fb241c7889a1d1b748fd 100644 (file)
@@ -2077,7 +2077,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_get_flag
                switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, 
                                                  "%s Channel is hungup and application '%s' does not have the zombie_exec flag.\n",
                                                  switch_channel_get_name(session->channel), app);
-               return SWITCH_STATUS_IGNORE;
+
+               switch_goto_status(SWITCH_STATUS_IGNORE, done);
        }
 
        if (!arg && strstr(app, "::")) {
@@ -2087,7 +2088,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_get_flag
        if ((application_interface = switch_loadable_module_get_application_interface(app)) == 0) {
                switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Invalid Application %s\n", app);
                switch_channel_hangup(session->channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-               return SWITCH_STATUS_FALSE;
+               switch_goto_status(SWITCH_STATUS_FALSE, done);
        }
 
        if (!application_interface->application_function) {
index 1bf38b4775443070ea2b7db60c398880c1d5c64c..4e6258ce8fe46727287ae98a137e34047eba44f3 100644 (file)
@@ -231,7 +231,9 @@ static void *SWITCH_THREAD_FUNC collect_thread_run(switch_thread_t *thread, void
   wbreak:
 
        switch_core_session_rwunlock(collect->session);
+
        UNPROTECT_INTERFACE(application_interface);
+
        return NULL;
 }