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
This commit is contained in:
Neels Hofmeyr 2018-11-09 01:41:41 +01:00 committed by Harald Welte
parent 2eb8814e38
commit cec88f116e
1 changed files with 8 additions and 1 deletions

View File

@ -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 */