]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: Fix longstanding minor bug in ftdm_span_send_signal causing dial-regex in...
authorMoises Silva <moy@sangoma.com>
Wed, 3 Jul 2013 06:07:05 +0000 (02:07 -0400)
committerMoises Silva <moy@sangoma.com>
Wed, 14 Aug 2013 19:53:51 +0000 (15:53 -0400)
         The return status of the signal callback was not being passed to the signaling module delivering the signal

libs/freetdm/src/ftdm_io.c

index 9ea22fbbfe4ff9bc62395389654d9f78cc6ad6df..57d5af1b85d809870959c39a839eca4a84b75af9 100644 (file)
@@ -6089,6 +6089,7 @@ static void execute_safety_hangup(void *data)
 FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t *sigmsg)
 {
        ftdm_channel_t *fchan = NULL;
+       ftdm_status_t status = FTDM_SUCCESS;
        if (sigmsg->channel) {
                fchan = sigmsg->channel;
                ftdm_channel_lock(fchan);
@@ -6193,7 +6194,7 @@ FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t
        if (ftdm_test_flag(span, FTDM_SPAN_USE_SIGNALS_QUEUE)) {
                ftdm_span_queue_signal(span, sigmsg);
        } else {
-               ftdm_span_trigger_signal(span, sigmsg);
+               status = ftdm_span_trigger_signal(span, sigmsg);
        }
 
 done:
@@ -6202,7 +6203,7 @@ done:
                ftdm_channel_unlock(fchan);
        }
 
-       return FTDM_SUCCESS;
+       return status;
 }
 
 static void *ftdm_cpu_monitor_run(ftdm_thread_t *me, void *obj)