aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-05-11 02:45:46 +0700
committerHarald Welte <laforge@gnumonks.org>2019-05-13 20:15:04 +0000
commita870faf6744cdac7dad0df5ff75d7e534df1a1ac (patch)
treecf28de1f400decf3b67549170a08c4c747d79ae7
parent48a24cd85b7b28a39b06c66382aa550a57f78477 (diff)
libmsc/msc_ho.c: fix unreacheable check of MSC-T role allocation
Change-Id: I46fa37ff27e8a4576fdc8edad894ee16759a6e7a Fixes: CID#198413
-rw-r--r--src/libmsc/msc_ho.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c
index 3a4258c11..615b8cd70 100644
--- a/src/libmsc/msc_ho.c
+++ b/src/libmsc/msc_ho.c
@@ -463,9 +463,8 @@ static void msc_ho_fsm_wait_request_ack_onenter(struct osmo_fsm_inst *fi, uint32
msc_i->ran_conn->ran_peer->fi->id, rp->fi->id);
}
- msc_t_alloc(msc_a->c.msub, rp);
- msc_ho_send_handover_request(msc_a);
- return;
+ msc_t = msc_t_alloc(msc_a->c.msub, rp);
+ break;
case MSC_NEIGHBOR_TYPE_REMOTE_MSC:
ipa_name = msc_a->ho.new_cell.msc_ipa_name;
@@ -482,22 +481,24 @@ static void msc_ho_fsm_wait_request_ack_onenter(struct osmo_fsm_inst *fi, uint32
osmo_quote_str(ipa_name, -1));
}
- msc_t_remote_alloc(msc_a->c.msub, msc_a->c.ran, (const uint8_t*)ipa_name, strlen(ipa_name));
- msc_ho_send_handover_request(msc_a);
- return;
+ msc_t = msc_t_remote_alloc(msc_a->c.msub, msc_a->c.ran,
+ (const uint8_t *) ipa_name,
+ strlen(ipa_name));
+ break;
default:
msc_ho_try_next_cell(msc_a, "unknown Handover target type %d\n", msc_a->ho.new_cell.type);
return;
}
- msc_t = msc_a_msc_t(msc_a);
if (!msc_t) {
/* There should definitely be one now. */
msc_ho_failed(msc_a, GSM0808_CAUSE_EQUIPMENT_FAILURE,
"Cannot initiate Handover Request, failed to set up a target MSC-T\n");
return;
}
+
+ msc_ho_send_handover_request(msc_a);
}
static void msc_ho_rx_request_ack(struct msc_a *msc_a, struct msc_a_ran_dec_data *hra);