diff options
author | Harald Welte <laforge@netfilter.org> | 2009-12-21 13:29:19 +0100 |
---|---|---|
committer | Harald Welte <laforge@netfilter.org> | 2009-12-21 13:33:10 +0100 |
commit | ade773f44193052ade3be70b794130dd6a39ee06 (patch) | |
tree | 1892ee16da974f03a5dbb260336d0b9435245c38 | |
parent | b8bfc567b7b8c705c1a2ec7654ce7184ab6c295f (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.
-rw-r--r-- | openbsc/src/handover_logic.c | 5 |
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; |