diff options
-rw-r--r-- | openbsc/src/gsm_04_11.c | 2 | ||||
-rw-r--r-- | openbsc/src/paging.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c index a7f69d105..277a321a8 100644 --- a/openbsc/src/gsm_04_11.c +++ b/openbsc/src/gsm_04_11.c @@ -1046,7 +1046,7 @@ int gsm411_send_sms_subscr(struct gsm_subscriber *subscr, /* if not, we have to start paging */ rc = paging_request(subscr->net, subscr, RSL_CHANNEED_SDCCH, paging_cb_send_sms, sms); - if (rc < 0) + if (rc <= 0) sms_free(sms); return 0; diff --git a/openbsc/src/paging.c b/openbsc/src/paging.c index f7ee81d24..87c5a5407 100644 --- a/openbsc/src/paging.c +++ b/openbsc/src/paging.c @@ -247,13 +247,16 @@ int paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, int type, gsm_cbfn *cbfn, void *data) { struct gsm_bts *bts = NULL; - int rc; + int num_pages = 0; /* start paging subscriber on all BTS within Location Area */ do { + int rc; + bts = gsm_bts_by_lac(network, subscr->lac, bts); if (!bts) break; + num_pages++; /* Trigger paging, pass any error to caller */ rc = _paging_request(bts, subscr, type, cbfn, data); @@ -261,7 +264,7 @@ int paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, return rc; } while (1); - return 0; + return num_pages; } |