From cec88f116e57311c3795256a551edeeb67019978 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 9 Nov 2018 01:41:41 +0100 Subject: always directly send BSSMAP Clear Request When a gscon wants to send a BSSMAP Clear Request, it makes no sense to do it conditionally depending on the current conn state. Just send it: don't call gscon_sigtran_send(), directly go for osmo_bsc_sigtran_send(). In particular, if an incoming inter-BSC handover ends in failure, the gscon state is still ST_INIT, but if the MSC fails to give us a Clear Command, we may want to ask with a BSSMAP Clear Request. Change-Id: I39fae24260a4bb7a6af704ebe760f93fff566536 --- src/osmo-bsc/bsc_subscr_conn_fsm.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index d2ca03e37..074c238df 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -134,7 +134,14 @@ static void gscon_bssmap_clear(struct gsm_subscriber_connection *conn, enum gsm0808_cause cause) { struct msgb *resp = gsm0808_create_clear_rqst(cause); - gscon_sigtran_send(conn, resp); + int rc; + if (!resp) { + LOGPFSML(conn->fi, LOGL_ERROR, "Unable to compose BSSMAP Clear Request message\n"); + return; + } + rc = osmo_bsc_sigtran_send(conn, resp); + if (rc < 0) + LOGPFSML(conn->fi, LOGL_ERROR, "Unable to deliver BSSMAP Clear Request message\n"); } /* forward MO DTAP from RSL side to BSSAP side */ -- cgit v1.2.3