aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-11-09 01:41:41 +0100
committerHarald Welte <laforge@gnumonks.org>2018-11-18 20:26:00 +0000
commitcec88f116e57311c3795256a551edeeb67019978 (patch)
treec15e139219e3cb4d42cce527a63eef0c889bba06
parent2eb8814e383e285a87d843616ff2d74c1ea8faba (diff)
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
-rw-r--r--src/osmo-bsc/bsc_subscr_conn_fsm.c9
1 files changed, 8 insertions, 1 deletions
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 */