aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/msg_utils.c
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2016-11-04 16:52:35 +0100
committerMax <msuraev@sysmocom.de>2016-11-08 12:28:52 +0100
commit5ee3dba39f241c5551196e8f167b907b9920355e (patch)
tree1e7a0fcc6acebdeb52f6f4f915330660ec42aa22 /src/common/msg_utils.c
parent9f936344eab060d11e65660b18e1deef54d34723 (diff)
DTX: wrap FSM signal dispatching
Make wrapper function which checks that DTX is enabled for lchan before dispatching any events. Change-Id: Id8b519c4af6d505ec9a4b9aadd5107bf7af53d66
Diffstat (limited to 'src/common/msg_utils.c')
-rw-r--r--src/common/msg_utils.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/common/msg_utils.c b/src/common/msg_utils.c
index edf71239..b8764433 100644
--- a/src/common/msg_utils.c
+++ b/src/common/msg_utils.c
@@ -151,8 +151,7 @@ int dtx_dl_amr_fsm_step(struct gsm_lchan *lchan, const uint8_t *rtp_pl,
if (rtp_pl == NULL) { /* SID-FIRST P1 -> P2 */
*len = 3;
memcpy(l1_payload, lchan->tch.dtx.cache, 2);
- osmo_fsm_inst_dispatch(lchan->tch.dtx.dl_amr_fsm, E_COMPL,
- (void *)lchan);
+ dtx_dispatch(lchan, E_COMPL);
return 0;
}
@@ -307,6 +306,13 @@ bool dtx_dl_amr_enabled(const struct gsm_lchan *lchan)
return false;
}
+void dtx_dispatch(struct gsm_lchan *lchan, enum dtx_dl_amr_fsm_events e)
+{
+ if (dtx_dl_amr_enabled(lchan))
+ osmo_fsm_inst_dispatch(lchan->tch.dtx.dl_amr_fsm, e,
+ (void *)lchan);
+}
+
/* repeat last SID if possible, returns SID length + 1 or 0 */
/*! \brief Repeat last SID if possible in case of DTX
* \param[in] lchan Logical channel on which we check scheduling