paging: Add method to find the paging data for a given subscriber
diff --git a/openbsc/include/openbsc/paging.h b/openbsc/include/openbsc/paging.h
index 0872eb8..e1438ba 100644
--- a/openbsc/include/openbsc/paging.h
+++ b/openbsc/include/openbsc/paging.h
@@ -68,4 +68,6 @@
/* pending paging requests */
unsigned int paging_pending_requests_nr(struct gsm_bts *bts);
+void *paging_get_data(struct gsm_bts *bts, struct gsm_subscriber *subscr);
+
#endif
diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c
index 4dfa921..fe60e3f 100644
--- a/openbsc/src/libbsc/paging.c
+++ b/openbsc/src/libbsc/paging.c
@@ -405,3 +405,17 @@
return requests;
}
+
+/**
+ * Find any paging data for the given subscriber at the given BTS.
+ */
+void *paging_get_data(struct gsm_bts *bts, struct gsm_subscriber *subscr)
+{
+ struct gsm_paging_request *req;
+
+ llist_for_each_entry(req, &bts->paging.pending_requests, entry)
+ if (req->subscr == subscr)
+ return req->cbfn_param;
+
+ return NULL;
+}