aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm_04_08.c
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2008-12-29 06:23:46 +0000
committerHolger Freyther <zecke@selfish.org>2008-12-29 06:23:46 +0000
commit07cc8d8beea8a058af31a935ceda4e43244373e2 (patch)
treea085724aae9af5eb8d69a5bea97f5079e17d36a4 /src/gsm_04_08.c
parentba4d28a36efb05a2db150fda4574d7883ebdd579 (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.c11
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)