diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2010-12-01 23:04:03 +0100 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2010-12-01 23:04:26 +0100 |
commit | 8a31a3fcee7199f5e665b47993e82732d22d4147 (patch) | |
tree | 43519b40a9a590933a84f4db62a6373cbc38703f /openbsc/src/gsm_subscriber.c | |
parent | 5a86e06eb3b8747da2aa8548a9547d219c64de64 (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.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/openbsc/src/gsm_subscriber.c b/openbsc/src/gsm_subscriber.c index bd76faec7..ed76e453b 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 |