diff options
author | Philippe Nunes <philippe.nunes@linux.intel.com> | 2011-11-24 18:46:23 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-11-24 17:50:17 -0600 |
commit | 97359e7f7be5e2e56d15c67d7d3d3a2bd8f6b744 (patch) | |
tree | d8239f3c40134de6347972c2c5869bc9ae209114 /src/cdma-netreg.c | |
parent | 8f8a8cd30769d3279362822955f6bb3b17192b03 (diff) | |
download | ofono-97359e7f7be5e2e56d15c67d7d3d3a2bd8f6b744.tar.gz |
cdma-netreg: Add skeleton sid query implementation
Diffstat (limited to 'src/cdma-netreg.c')
-rw-r--r-- | src/cdma-netreg.c | 25 |
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, |