bsc: Prepare to have multiple MSC connections

We now have a list of MSCs but in the code we will
try to access the MSC with the nr 0.
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c
index 6e34105..63e1d8e 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_main.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c
@@ -144,6 +144,8 @@
 extern int bsc_shutdown_net(struct gsm_network *net);
 static void signal_handler(int signal)
 {
+	struct osmo_msc_data *msc;
+
 	fprintf(stdout, "signal %u received\n", signal);
 
 	switch (signal) {
@@ -163,11 +165,8 @@
 	case SIGUSR2:
 		if (!bsc_gsmnet->bsc_data)
 			return;
-		if (!bsc_gsmnet->bsc_data->msc.msc_con)
-			return;
-		if (!bsc_gsmnet->bsc_data->msc.msc_con->is_connected)
-			return;
-		bsc_msc_lost(bsc_gsmnet->bsc_data->msc.msc_con);
+		llist_for_each_entry(msc, &bsc_gsmnet->bsc_data->mscs, entry)
+			bsc_msc_lost(msc->msc_con);
 		break;
 	default:
 		break;
@@ -391,6 +390,7 @@
 
 int main(int argc, char **argv)
 {
+	struct osmo_msc_data *msc;
 	struct osmo_bsc_data *data;
 	int rc;
 
@@ -443,11 +443,14 @@
 		}
 	}
 
-	if (osmo_bsc_msc_init(&bsc_gsmnet->bsc_data->msc) != 0) {
-		LOGP(DNAT, LOGL_ERROR, "Failed to start up. Exiting.\n");
-		exit(1);
+	llist_for_each_entry(msc, &bsc_gsmnet->bsc_data->mscs, entry) {
+		if (osmo_bsc_msc_init(msc) != 0) {
+			LOGP(DNAT, LOGL_ERROR, "Failed to start up. Exiting.\n");
+			exit(1);
+		}
 	}
 
+
 	if (osmo_bsc_sccp_init(bsc_gsmnet) != 0) {
 		LOGP(DNM, LOGL_ERROR, "Failed to register SCCP.\n");
 		exit(1);