osmo-bsc: Prepare to send more than just the location in the TRAP

This commit is contained in:
Daniel Willmann 2011-08-19 19:32:09 +02:00 committed by Holger Hans Peter Freyther
parent d08ad7d6d9
commit 11620111f4
1 changed files with 24 additions and 1 deletions

View File

@ -53,6 +53,29 @@ 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);
if (!cmd) {
LOGP(DCTRL, LOGL_ERROR, "Failed to create TRAP command.\n");
return;
}
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);
talloc_free(cmd);
}
static const struct value_string valid_names[] = {
{ BTS_LOC_FIX_INVALID, "invalid" },
{ BTS_LOC_FIX_2D, "fix2d" },
@ -169,7 +192,7 @@ static int set_bts_loc(struct ctrl_cmd *cmd, void *data)
if (!location_equal(curloc, lastloc))
llist_for_each_entry(msc, &gsmnet->bsc_data->mscs, entry)
osmo_bsc_send_trap(cmd, msc->msc_con);
generate_location_state_trap(bts, msc->msc_con);
cleanup_locations(&bts->loc_list);