added code to ftdm_sangoma_ss7_run api to avoid code execution for M2UA

SG
This commit is contained in:
kapil 2012-05-18 12:24:27 +05:30
parent 23ca7f8fed
commit 4a99dc7fc7

View File

@ -356,14 +356,7 @@ static void *ftdm_sangoma_ss7_run(ftdm_thread_t * me, void *obj)
/* set IN_THREAD flag so that we know this thread is running */
ftdm_set_flag (ftdmspan, FTDM_SPAN_IN_THREAD);
if(SNG_SS7_OPR_MODE_M2UA_SG == g_ftdm_operating_mode){
ftdm_log (FTDM_LOG_INFO, "FreeTDM running as M2UA_SG mode, freetdm dont have to do anything \n");
while (ftdm_running () && !(ftdm_test_flag (ftdmspan, FTDM_SPAN_STOP_THREAD))) {
continue;
}
goto ftdm_sangoma_ss7_stop;
}
/* get an interrupt queue for this span for channel state changes */
if (ftdm_queue_get_interrupt (ftdmspan->pendingchans, &ftdm_sangoma_ss7_int[0]) != FTDM_SUCCESS) {
@ -377,6 +370,40 @@ static void *ftdm_sangoma_ss7_run(ftdm_thread_t * me, void *obj)
goto ftdm_sangoma_ss7_run_exit;
}
if(SNG_SS7_OPR_MODE_M2UA_SG == g_ftdm_operating_mode){
ftdm_log (FTDM_LOG_INFO, "FreeTDM running as M2UA_SG mode, freetdm dont have to do anything \n");
while (ftdm_running () && !(ftdm_test_flag (ftdmspan, FTDM_SPAN_STOP_THREAD))) {
switch ((ftdm_interrupt_multiple_wait(ftdm_sangoma_ss7_int, ftdm_array_len(ftdm_sangoma_ss7_int), 100))) {
case FTDM_SUCCESS: /* process all pending state changes */
SS7_DEVEL_DEBUG ("ftdm_interrupt_wait FTDM_SUCCESS on span = %d\n",ftdmspan->span_id);
/**********************************************************************/
case FTDM_TIMEOUT:
SS7_DEVEL_DEBUG ("ftdm_interrupt_wait timed-out on span = %d\n",ftdmspan->span_id);
break;
/**********************************************************************/
case FTDM_FAIL:
SS7_ERROR ("ftdm_interrupt_wait returned error!\non span = %d\n", ftdmspan->span_id);
break;
/**********************************************************************/
default:
SS7_ERROR("ftdm_interrupt_wait returned with unknown code on span = %d\n",ftdmspan->span_id);
break;
/**********************************************************************/
}
}
goto ftdm_sangoma_ss7_stop;
}
while (ftdm_running () && !(ftdm_test_flag (ftdmspan, FTDM_SPAN_STOP_THREAD))) {
int x = 0;
if (b_alarm_test) {