aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/handover_logic.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-18 14:50:08 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-18 14:50:08 +0100
commita9fa8dca33e10c98db0ff6dddc2f999c37b25e63 (patch)
tree41da9c4485dc319066f9d83ea89e3ae02783f18b /openbsc/src/handover_logic.c
parent6f7a5a7843877a82dc288a89ac0553333769b7ec (diff)
[handover]: make sure the new lchan keeps the subscriber pointer of the old lchan
also, ensure that we don't print debug messages about handover in non-handover channel activation cases.
Diffstat (limited to 'openbsc/src/handover_logic.c')
-rw-r--r--openbsc/src/handover_logic.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/openbsc/src/handover_logic.c b/openbsc/src/handover_logic.c
index d852f8e3..f3f5d6c2 100644
--- a/openbsc/src/handover_logic.c
+++ b/openbsc/src/handover_logic.c
@@ -118,6 +118,7 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts *bts)
new_lchan->bs_power = old_lchan->bs_power;
new_lchan->rsl_cmode = old_lchan->rsl_cmode;
new_lchan->tch_mode = old_lchan->tch_mode;
+ new_lchan->subscr = subscr_get(old_lchan->subscr);
/* FIXME: do we have a better idea of the timing advance? */
rc = rsl_chan_activate_lchan(new_lchan, RSL_ACT_INTER_ASYNC, 0,
@@ -153,13 +154,13 @@ static int ho_chan_activ_ack(struct gsm_lchan *new_lchan)
struct bsc_handover *ho;
int rc;
- DEBUGP(DHO, "handover activate ack, send HO Command\n");
-
+ /* we need to check if this channel activation is related to
+ * a handover at all (and if, which particular handover) */
ho = bsc_ho_by_new_lchan(new_lchan);
- if (!ho) {
- LOGP(DHO, LOGL_ERROR, "unable to find HO record\n");
+ if (!ho)
return -ENODEV;
- }
+
+ DEBUGP(DHO, "handover activate ack, send HO Command\n");
/* we can now send the 04.08 HANDOVER COMMAND to the MS
* using the old lchan */