aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-21 13:29:19 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-21 13:33:10 +0100
commitade773f44193052ade3be70b794130dd6a39ee06 (patch)
tree1892ee16da974f03a5dbb260336d0b9435245c38 /openbsc
parentb8bfc567b7b8c705c1a2ec7654ce7184ab6c295f (diff)
handover: set old channel to INACTIVE state
After receiving the HANDOVER COMPLETE on the new channel, we mark the old channel as INACTIVE and try to release it ASAP.
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/handover_logic.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/openbsc/src/handover_logic.c b/openbsc/src/handover_logic.c
index 3007d2581..94d3d0d1e 100644
--- a/openbsc/src/handover_logic.c
+++ b/openbsc/src/handover_logic.c
@@ -212,13 +212,16 @@ static int ho_gsm48_ho_compl(struct gsm_lchan *new_lchan)
}
bsc_del_timer(&ho->T3103);
- llist_del(&ho->list);
/* update lchan pointer of transaction */
trans_lchan_change(ho->old_lchan, new_lchan);
+ ho->old_lchan->state = LCHAN_S_INACTIVE;
+ lchan_auto_release(ho->old_lchan);
+
/* do something to re-route the actual speech frames ! */
+ llist_del(&ho->list);
talloc_free(ho);
return 0;