diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-12-23 18:19:17 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-12-25 21:39:04 +0100 |
commit | d3baf415b1d73ccd84ed0c76ebb50b46540f00cd (patch) | |
tree | 78b37e09498f90455cfeedbcff3d0d1e63091673 /openbsc/src/gsm_subscriber.c | |
parent | ee139e725386b1df7e482ea76b143fc931a48470 (diff) |
paging: Introduce a GSM_PAGING_BUSY event for a special timeout
Start counting the attempts of each paging request and call
the callback with the PAGING_BUSY type when the paging request
timed out but the subscriber was not paged at all. This can
only happen with a huge paging backlog.
In case the system has so many pending paging
Diffstat (limited to 'openbsc/src/gsm_subscriber.c')
-rw-r--r-- | openbsc/src/gsm_subscriber.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/openbsc/src/gsm_subscriber.c b/openbsc/src/gsm_subscriber.c index f066eca67..5dd680fce 100644 --- a/openbsc/src/gsm_subscriber.c +++ b/openbsc/src/gsm_subscriber.c @@ -84,6 +84,7 @@ static int subscr_paging_dispatch(unsigned int hooknum, unsigned int event, sig_data.subscr = subscr; sig_data.bts = conn ? conn->bts : NULL; sig_data.conn = conn; + sig_data.paging_result = event; dispatch_signal( SS_PAGING, event == GSM_PAGING_SUCCEEDED ? @@ -169,7 +170,7 @@ static void subscr_send_paging_request(struct gsm_subscriber *subscr) /* paging failed, quit now */ if (rc <= 0) { - subscr_paging_cb(GSM_HOOK_RR_PAGING, GSM_PAGING_EXPIRED, + subscr_paging_cb(GSM_HOOK_RR_PAGING, GSM_PAGING_BUSY, NULL, NULL, subscr); } } |