aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_subscriber.c
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2010-12-01 23:04:03 +0100
committerSylvain Munaut <tnt@246tNt.com>2010-12-01 23:04:26 +0100
commit8a31a3fcee7199f5e665b47993e82732d22d4147 (patch)
tree43519b40a9a590933a84f4db62a6373cbc38703f /openbsc/src/gsm_subscriber.c
parent5a86e06eb3b8747da2aa8548a9547d219c64de64 (diff)
paging: Dispatch the SS_PAGING signals at the MSC code level
This way the channel is fully ready for use. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'openbsc/src/gsm_subscriber.c')
-rw-r--r--openbsc/src/gsm_subscriber.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/openbsc/src/gsm_subscriber.c b/openbsc/src/gsm_subscriber.c
index bd76faec..ed76e453 100644
--- a/openbsc/src/gsm_subscriber.c
+++ b/openbsc/src/gsm_subscriber.c
@@ -72,12 +72,25 @@ static int subscr_paging_dispatch(unsigned int hooknum, unsigned int event,
struct msgb *msg, void *data, void *param)
{
struct subscr_request *request;
+ struct gsm_subscriber_connection *conn = data;
struct gsm_subscriber *subscr = param;
+ struct paging_signal_data sig_data;
/* There is no request anymore... */
if (llist_empty(&subscr->requests))
return -1;
+ /* Dispatch signal */
+ sig_data.subscr = subscr;
+ sig_data.bts = conn ? conn->bts : NULL;
+ sig_data.conn = conn;
+ dispatch_signal(
+ SS_PAGING,
+ event == GSM_PAGING_SUCCEEDED ?
+ S_PAGING_SUCCEEDED : S_PAGING_EXPIRED,
+ &sig_data
+ );
+
/*
* FIXME: What to do with paging requests coming during
* this callback? We must be sure to not start paging when