From: Holger Hans Peter Freyther <[email protected]>

In case we can't page on a BTS then stop it everywhere. The
callers of paging_request assume that this is kind of an
atomic operation and we should help with that.
---
 openbsc/src/libbsc/paging.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c
index 8bc10e6..6b46c6d 100644
--- a/openbsc/src/libbsc/paging.c
+++ b/openbsc/src/libbsc/paging.c
@@ -341,8 +341,10 @@ int paging_request(struct gsm_network *network, struct 
gsm_subscriber *subscr,
                        break;

                rc = paging_request_bts(bts, subscr, type, cbfn, data);
-               if (rc < 0)
+               if (rc < 0) {
+                       paging_request_stop(NULL, subscr, NULL, NULL);
                        return rc;
+               }
                num_pages += rc;
        } while (1);

-- 
2.3.5

Reply via email to