diff options
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r-- | src/common/rsl.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c index b7dc2b52..4334b05d 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1292,6 +1292,11 @@ static int rsl_rx_ipac_XXcx(struct msgb *msg) else name = "MDCX"; + /* check the kind of channel and reject */ + if (lchan->type != GSM_LCHAN_TCH_F && lchan->type != GSM_LCHAN_TCH_H) + return tx_ipac_XXcx_nack(lchan, 0x52, + 0, dch->c.msg_type); + rc = rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); if (rc < 0) return tx_ipac_XXcx_nack(lchan, RSL_ERR_MAND_IE_ERROR, |