summaryrefslogtreecommitdiff
path: root/src/cdma-netreg.c
diff options
context:
space:
mode:
authorPhilippe Nunes <philippe.nunes@linux.intel.com>2011-11-24 18:46:23 +0100
committerDenis Kenzior <denkenz@gmail.com>2011-11-24 17:50:17 -0600
commit97359e7f7be5e2e56d15c67d7d3d3a2bd8f6b744 (patch)
treed8239f3c40134de6347972c2c5869bc9ae209114 /src/cdma-netreg.c
parent8f8a8cd30769d3279362822955f6bb3b17192b03 (diff)
downloadofono-97359e7f7be5e2e56d15c67d7d3d3a2bd8f6b744.tar.gz
cdma-netreg: Add skeleton sid query implementation
Diffstat (limited to 'src/cdma-netreg.c')
-rw-r--r--src/cdma-netreg.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/cdma-netreg.c b/src/cdma-netreg.c
index 739d1ef6..222c3b7c 100644
--- a/src/cdma-netreg.c
+++ b/src/cdma-netreg.c
@@ -104,6 +104,24 @@ static GDBusSignalTable cdma_netreg_manager_signals[] = {
{ }
};
+static void serving_system_callback(const struct ofono_error *error,
+ const char *sid, void *data)
+{
+ struct ofono_cdma_netreg *cdma_netreg = data;
+
+ if (cdma_netreg->status != CDMA_NETWORK_REGISTRATION_STATUS_REGISTERED
+ && cdma_netreg->status !=
+ CDMA_NETWORK_REGISTRATION_STATUS_ROAMING)
+ return;
+
+ if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
+ DBG("Error during serving system query");
+ return;
+ }
+
+ DBG("Serving system Identifier: %s", sid);
+}
+
static void set_registration_status(struct ofono_cdma_netreg *cdma_netreg,
enum cdma_netreg_status status)
{
@@ -117,6 +135,13 @@ static void set_registration_status(struct ofono_cdma_netreg *cdma_netreg,
OFONO_CDMA_NETWORK_REGISTRATION_INTERFACE,
"Status", DBUS_TYPE_STRING,
&str_status);
+
+ if (cdma_netreg->status == CDMA_NETWORK_REGISTRATION_STATUS_REGISTERED
+ || cdma_netreg->status ==
+ CDMA_NETWORK_REGISTRATION_STATUS_ROAMING)
+ if (cdma_netreg->driver->serving_system != NULL)
+ cdma_netreg->driver->serving_system(cdma_netreg,
+ serving_system_callback, cdma_netreg);
}
void ofono_cdma_netreg_status_notify(struct ofono_cdma_netreg *cdma_netreg,