From dbc38882d295bdd50912ba33f544a7202f5907e6 Mon Sep 17 00:00:00 2001
From: Holger Freyther <ich(a)tamarin.(none)>
Date: Sun, 5 Apr 2009 14:36:33 +0200
Subject: [PATCH] [paging] Immediately fail if we don't have something like a
VLR
If we don't know where to search for a GSM subscriber then
do not try to page it at all. Introduce an enum value for this
and call the callback from within the get_channel request.
---
include/openbsc/gsm_data.h | 1 +
src/gsm_subscriber.c | 6 +++++-
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 6c08b03..21b05ea 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -24,6 +24,7 @@ enum gsm_hooks {
enum gsm_paging_event {
GSM_PAGING_SUCCEEDED,
GSM_PAGING_EXPIRED,
+ GSM_PAGING_VLR_UNKNOWN,
};
struct msgb;
diff --git a/src/gsm_subscriber.c b/src/gsm_subscriber.c
index bfb4983..3082880 100644
--- a/src/gsm_subscriber.c
+++ b/src/gsm_subscriber.c
@@ -129,8 +129,12 @@ void subscr_get_channel(struct gsm_subscriber *subscr,
int type,
gsm_cbfn *cbfn, void *data)
{
/* current_bts is the current VLR of the MobileStation */
- if (!subscr->current_bts)
+ if (!subscr->current_bts) {
+ if (cbfn)
+ cbfn(GSM_HOOK_RR_PAGING, GSM_PAGING_VLR_UNKNOWN,
+ NULL, NULL, data);
return;
+ }
paging_request(subscr->current_bts, subscr, type, cbfn, data);
}
--
1.6.0.4