cdma-netreg: Add skeleton sid query implementation
authorPhilippe Nunes <philippe.nunes@linux.intel.com>
Thu, 24 Nov 2011 17:46:23 +0000 (18:46 +0100)
committerDenis Kenzior <denkenz@gmail.com>
Thu, 24 Nov 2011 23:50:17 +0000 (17:50 -0600)
src/cdma-netreg.c

index 739d1ef..222c3b7 100644 (file)
@@ -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,