diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-09 01:41:41 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-11-18 20:26:00 +0000 |
commit | cec88f116e57311c3795256a551edeeb67019978 (patch) | |
tree | c15e139219e3cb4d42cce527a63eef0c889bba06 /src | |
parent | 2eb8814e383e285a87d843616ff2d74c1ea8faba (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
Diffstat (limited to 'src')
-rw-r--r-- | src/osmo-bsc/bsc_subscr_conn_fsm.c | 9 |
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 */ |