aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-04-16 22:15:29 +0200
committerHarald Welte <laforge@gnumonks.org>2012-04-19 09:39:54 +0200
commitb0150b7ad4610307308595d3fe1b28b31466e8de (patch)
tree18cd409ea6b754650f9914117fabd0c77ad756d8
parentd7718280c98cdd9a6da27fbbf90c171f49969279 (diff)
lchan: Refuse to activate a non-idle lchan.
-rw-r--r--src/common/rsl.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index 188d439..d7d728a 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -617,6 +617,13 @@ static int rsl_rx_chan_activ(struct msgb *msg)
struct tlv_parsed tp;
uint8_t type;
+ if (lchan->state != LCHAN_S_NONE) {
+ LOGP(DRSL, LOGL_ERROR,
+ "%s: error lchan is not available state: %s.\n",
+ gsm_lchan_name(lchan), gsm_lchans_name(lchan->state));
+ return rsl_tx_chan_act_nack(lchan, RSL_ERR_EQUIPMENT_FAIL);
+ }
+
rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg));
/* 9.3.3 Activation Type */