aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-04-08 21:35:00 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-04-08 21:35:00 +0200
commit73f9a65f12e3a128b21ff6ad5b1b821fd6d26e71 (patch)
tree44e0c1499b9d4e728da0ef5460382125297547cf /openbsc
parentb2c55c49a82a9564122a9a11c5049a45a0da2025 (diff)
bssap: Forget the secondary lchan in the MSC data and forget the MSC data
We will handle sending the assignment failure inside the T10 timer but it is better to reset the secondary_lchan inside the msc_data right away before we might accidently use it.
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/bssap.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/openbsc/src/bssap.c b/openbsc/src/bssap.c
index edbe66717..385a935a7 100644
--- a/openbsc/src/bssap.c
+++ b/openbsc/src/bssap.c
@@ -1100,8 +1100,14 @@ static int bssap_handle_lchan_signal(unsigned int subsys, unsigned int signal,
switch (signal) {
case S_LCHAN_UNEXPECTED_RELEASE:
/* handle this through the T10 timeout */
- if (lchan->msc_data->lchan != lchan)
+ if (lchan->msc_data->lchan != lchan) {
+ if (lchan->msc_data->secondary_lchan == lchan) {
+ LOGP(DMSC, LOGL_NOTICE, "Setting secondary to NULL.\n");
+ lchan->msc_data->secondary_lchan = NULL;
+ lchan->msc_data = NULL;
+ }
return 0;
+ }
bsc_del_timer(&lchan->msc_data->T10);
conn = lchan->msc_data->sccp;