diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-03-26 15:38:31 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-03-27 14:42:40 +0200 |
commit | ba06cc6cb84531155d246f7fce576f1d103ed7ed (patch) | |
tree | 02024fd35b96aca1b62c40e0bd04b07ab27bfd94 /openbsc/src/osmo-bsc/osmo_bsc_grace.c | |
parent | 408856088bcf376f5317803fd8d1747f8b920054 (diff) |
bsc: Improve handling of paging_request return value
Detail better in the API documentation what's the expected return value
for paging_request.
Change-Id: I17fa3b549bff297531b2777d658b0e0112a3031f
Diffstat (limited to 'openbsc/src/osmo-bsc/osmo_bsc_grace.c')
-rw-r--r-- | openbsc/src/osmo-bsc/osmo_bsc_grace.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_grace.c b/openbsc/src/osmo-bsc/osmo_bsc_grace.c index 63afa20d0..bb2634fa7 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_grace.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_grace.c @@ -37,14 +37,18 @@ int bsc_grace_allow_new_connection(struct gsm_network *network, struct gsm_bts * static int normal_paging(struct bsc_subscr *subscr, int chan_needed, struct bsc_msc_data *msc) { + int rc, num_pages = 0; /* we can't page by lac.. we need to page everything */ if (msc->core_lac != -1) { struct gsm_bts *bts; - llist_for_each_entry(bts, &msc->network->bts_list, list) - paging_request_bts(bts, subscr, chan_needed, NULL, msc); + llist_for_each_entry(bts, &msc->network->bts_list, list) { + rc = paging_request_bts(bts, subscr, chan_needed, NULL, msc); + if (rc > 0) + num_pages += rc; + } - return 0; + return num_pages; } return paging_request(msc->network, subscr, chan_needed, NULL, msc); @@ -54,6 +58,7 @@ static int locked_paging(struct bsc_subscr *subscr, int chan_needed, struct bsc_msc_data *msc) { struct gsm_bts *bts = NULL; + int rc, num_pages = 0; /* * Check if there is any BTS that is on for the given lac. Start @@ -73,11 +78,13 @@ static int locked_paging(struct bsc_subscr *subscr, int chan_needed, /* * now page on this bts */ - paging_request_bts(bts, subscr, chan_needed, NULL, msc); + rc = paging_request_bts(bts, subscr, chan_needed, NULL, msc); + if (rc > 0) + num_pages += rc; }; /* All bts are either off or in the grace period */ - return 0; + return num_pages; } /** |