bsc: Make bsc_queue_for_msc work on the osmo_bsc_sccp_con
The gsm_subscriber_connection can die before the SCCP connection
so we should work on the osmo_bsc_sccp_con.
diff --git a/openbsc/include/openbsc/osmo_bsc.h b/openbsc/include/openbsc/osmo_bsc.h
index b94fc04..01509c0 100644
--- a/openbsc/include/openbsc/osmo_bsc.h
+++ b/openbsc/include/openbsc/osmo_bsc.h
@@ -22,7 +22,7 @@
struct bsc_api *osmo_bsc_api();
-int bsc_queue_for_msc(struct gsm_subscriber_connection *conn, struct msgb *msg);
+int bsc_queue_for_msc(struct osmo_bsc_sccp_con *conn, struct msgb *msg);
int bsc_open_connection(struct osmo_bsc_sccp_con *sccp, struct msgb *msg);
int bsc_create_new_connection(struct gsm_subscriber_connection *conn);
int bsc_delete_connection(struct osmo_bsc_sccp_con *sccp);
diff --git a/openbsc/src/bsc/osmo_bsc_api.c b/openbsc/src/bsc/osmo_bsc_api.c
index 8ee857d..1964099 100644
--- a/openbsc/src/bsc/osmo_bsc_api.c
+++ b/openbsc/src/bsc/osmo_bsc_api.c
@@ -42,7 +42,7 @@
LOGP(DMSC, LOGL_ERROR, "Failed to allocate response.\n"); \
return; \
} \
- bsc_queue_for_msc(conn, resp);
+ bsc_queue_for_msc(conn->sccp_con, resp);
static uint16_t get_network_code_for_msc(struct gsm_network *net)
{
@@ -155,7 +155,7 @@
return 0;
}
- bsc_queue_for_msc(conn, resp);
+ bsc_queue_for_msc(conn->sccp_con, resp);
return 0;
}
diff --git a/openbsc/src/bsc/osmo_bsc_sccp.c b/openbsc/src/bsc/osmo_bsc_sccp.c
index ad2ee51..a7c51dd 100644
--- a/openbsc/src/bsc/osmo_bsc_sccp.c
+++ b/openbsc/src/bsc/osmo_bsc_sccp.c
@@ -126,9 +126,9 @@
return bsc_handle_udt(net, net->msc_data->msc_con, msgb, length);
}
-int bsc_queue_for_msc(struct gsm_subscriber_connection *conn, struct msgb *msg)
+int bsc_queue_for_msc(struct osmo_bsc_sccp_con *conn, struct msgb *msg)
{
- struct sccp_connection *sccp = conn->sccp_con->sccp;
+ struct sccp_connection *sccp = conn->sccp;
if (sccp->connection_state != SCCP_CONNECTION_STATE_ESTABLISHED) {
LOGP(DMSC, LOGL_ERROR, "The connection is not established.\n");