From efda919e2da1a566cf449b6925df97d4fd2e9b02 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Fri, 19 Aug 2011 19:32:09 +0200 Subject: osmo-bsc: Prepare to send more than just the location in the TRAP --- openbsc/src/osmo-bsc/osmo_bsc_ctrl.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'openbsc/src/osmo-bsc/osmo_bsc_ctrl.c') diff --git a/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c b/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c index b82a62abd..58a281818 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c @@ -48,6 +48,24 @@ void osmo_bsc_send_trap(struct ctrl_cmd *cmd, struct bsc_msc_connection *msc_con talloc_free(trap); } +static int get_bts_loc(struct ctrl_cmd *cmd, void *data); + +static void generate_location_state_trap(struct gsm_bts *bts, struct bsc_msc_connection *msc_con) +{ + struct ctrl_cmd *cmd; + + cmd = ctrl_cmd_create(msc_con, CTRL_TYPE_TRAP); + + cmd->id = "0"; + cmd->variable = talloc_asprintf(cmd, "net.bts.%i.location-state", bts->nr); + + /* Prepare the location reply */ + cmd->node = bts; + get_bts_loc(cmd, NULL); + + osmo_bsc_send_trap(cmd, msc_con); +} + static const struct value_string valid_names[] = { { BTS_LOC_FIX_INVALID, "invalid" }, { BTS_LOC_FIX_2D, "fix2d" }, @@ -162,7 +180,7 @@ static int set_bts_loc(struct ctrl_cmd *cmd, void *data) ret = get_bts_loc(cmd, data); if (!location_equal(curloc, lastloc)) - osmo_bsc_send_trap(cmd, gsmnet->msc_data->msc_con); + generate_location_state_trap(bts, gsmnet->msc_data->msc_con); cleanup_locations(&bts->loc_list); -- cgit v1.2.3