aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/handover_logic.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-17 22:23:21 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-17 22:23:21 +0100
commit66706812514c4baca743ad3a07e4556d48b6cded (patch)
tree87e079a917d45f373adb119fc6bd34178b06a102 /openbsc/src/handover_logic.c
parent7cb7a73b4fe7152dc89f4450c43d5f10daf9900a (diff)
don't try multiple concurrent handovers for 1 channel
Diffstat (limited to 'openbsc/src/handover_logic.c')
-rw-r--r--openbsc/src/handover_logic.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/openbsc/src/handover_logic.c b/openbsc/src/handover_logic.c
index 68cdcba0..9da8baf9 100644
--- a/openbsc/src/handover_logic.c
+++ b/openbsc/src/handover_logic.c
@@ -88,6 +88,11 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts *bts)
static u_int8_t ho_ref;
int rc;
+ /* don't attempt multiple handovers for the same lchan at
+ * the same time */
+ if (bsc_ho_by_old_lchan(old_lchan))
+ return -EBUSY;
+
DEBUGP(DHO, "(old_lchan on BTS %u, new BTS %u): ",
old_lchan->ts->trx->bts->nr, bts->nr);