bsc: Simplify the trap sending by using the location state method
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c b/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c
index 96e727e..40658c1 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c
@@ -424,11 +424,9 @@
 static int msc_signal_handler(unsigned int subsys, unsigned int signal,
 			void *handler_data, void *signal_data)
 {
-	struct ctrl_cmd *cmd;
 	struct msc_signal_data *msc;
 	struct gsm_network *net;
 	struct gsm_bts *bts;
-	char *loc_fmt = "net.bts.%i.location";
 
 	if (subsys != SS_MSC)
 		return 0;
@@ -436,24 +434,11 @@
 		return 0;
 
 	msc = signal_data;
-	cmd = ctrl_cmd_create(msc->data, CTRL_TYPE_TRAP);
-	if (!cmd) {
-		LOGP(DCTRL, LOGL_ERROR, "Failed to create TRAP for location.\n");
-		return 0;
-	}
-
-	cmd->id = "0";
 
 	net = msc->data->network;
-	llist_for_each_entry(bts, &net->bts_list, list) {
-		cmd->node = bts;
-		cmd->variable = talloc_asprintf(cmd, loc_fmt, bts->nr);
-		get_bts_loc(cmd, NULL);
-		osmo_bsc_send_trap(cmd, msc->data->msc_con);
-		talloc_free(cmd->variable);
-	}
+	llist_for_each_entry(bts, &net->bts_list, list)
+		generate_location_state_trap(bts, msc->data->msc_con);	
 
-	talloc_free(cmd);
 	return 0;
 }