diff options
author | Holger Freyther <zecke@selfish.org> | 2008-12-29 06:23:46 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2008-12-29 06:23:46 +0000 |
commit | 07cc8d8beea8a058af31a935ceda4e43244373e2 (patch) | |
tree | a085724aae9af5eb8d69a5bea97f5079e17d36a4 /src/gsm_04_08.c | |
parent | ba4d28a36efb05a2db150fda4574d7883ebdd579 (diff) |
Improve page command handling in the bsc_hack
Add a callback to the gsm_network. When updating the location and
assigning a new tmsi callback into the bsc_hack.c and have a queue
of mobile stations to page, allocate a channel for and ultimately
dial.
Diffstat (limited to 'src/gsm_04_08.c')
-rw-r--r-- | src/gsm_04_08.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c index 5c30a17e6..918116db1 100644 --- a/src/gsm_04_08.c +++ b/src/gsm_04_08.c @@ -50,6 +50,8 @@ struct gsm_lai { u_int16_t lac; }; + + static void parse_lai(struct gsm_lai *lai, const struct gsm48_loc_area_id *lai48) { u_int8_t dig[4]; @@ -176,6 +178,7 @@ int gsm0408_loc_upd_acc(struct gsm_lchan *lchan, u_int32_t tmsi) struct gsm48_hdr *gh; struct gsm48_loc_area_id *lai; u_int8_t *mid; + int ret; msg->lchan = lchan; @@ -195,7 +198,13 @@ int gsm0408_loc_upd_acc(struct gsm_lchan *lchan, u_int32_t tmsi) gsm48_sendmsg(msg); /* free the channel afterwards */ - return rsl_chan_release(lchan); + ret = rsl_chan_release(lchan); + + /* inform the upper layer on the progress */ + if (bts->network->update_request_accepted) + (*bts->network->update_request_accepted)(bts, tmsi); + + return ret; } static char bcd2char(u_int8_t bcd) |