---
 plugins/ofono.c |   54 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/plugins/ofono.c b/plugins/ofono.c
index 4cc98c7..566f6e3 100644
--- a/plugins/ofono.c
+++ b/plugins/ofono.c
@@ -1764,6 +1764,10 @@ static gboolean sim_changed(DBusConnection *connection, 
DBusMessage *message,
                                                OFONO_API_CM) == TRUE) {
                        if (ready_to_create_device(modem) == TRUE)
                                create_device(modem);
+               } else if (has_interface(modem->interfaces,
+                                               OFONO_API_CDMA_CM) == TRUE) {
+                       if (ready_to_create_device(modem) == TRUE)
+                               create_device(modem);
                }
        }
 
@@ -1804,6 +1808,12 @@ static void sim_properties_reply(struct modem_data 
*modem,
                                        cm_get_properties(modem);
                                        cm_get_contexts(modem);
                                }
+                       } else if (has_interface(modem->interfaces,
+                                       OFONO_API_CDMA_CM) == TRUE) {
+                               if (ready_to_create_device(modem) == TRUE)
+                                       create_device(modem);
+                               if (modem->device != NULL)
+                                       cdma_cm_get_properties(modem);
                        }
                        return;
                }
@@ -1856,13 +1866,21 @@ static gboolean modem_changed(DBusConnection 
*connection, DBusMessage *message,
                if (modem->online == FALSE)
                        return TRUE;
 
-               if (has_interface(modem->interfaces, OFONO_API_CM) == FALSE)
-                       return TRUE;
-               if (ready_to_create_device(modem) == TRUE)
-                       create_device(modem);
-               if (modem->device != NULL) {
-                       cm_get_properties(modem);
-                       cm_get_contexts(modem);
+               if (has_interface(modem->interfaces, OFONO_API_CM) == FALSE) {
+                       if (ready_to_create_device(modem) == TRUE)
+                               create_device(modem);
+                       if (modem->device != NULL) {
+                               cm_get_properties(modem);
+                               cm_get_contexts(modem);
+                       }
+               } else if (has_interface(modem->interfaces,
+                                               OFONO_API_CDMA_CM) == TRUE) {
+                       if (ready_to_create_device(modem) == TRUE)
+                               create_device(modem);
+                       if (modem->device != NULL) {
+                               cdma_cm_get_properties(modem);
+                               cdma_netreg_get_properties(modem);
+                       }
                }
        } else if (g_str_equal(key, "Interfaces") == TRUE) {
                modem->interfaces = extract_interfaces(&value);
@@ -1890,6 +1908,12 @@ static gboolean modem_changed(DBusConnection 
*connection, DBusMessage *message,
                                cm_get_contexts(modem);
                                return TRUE;
                        }
+               } else if (has_interface(modem->interfaces,
+                                       OFONO_API_CDMA_CM) == TRUE) {
+                               if (ready_to_create_device(modem) == TRUE)
+                                       create_device(modem);
+                               if (modem->device != NULL)
+                                       cdma_cm_get_properties(modem);
                } else {
                        if (modem->context != NULL) {
                                remove_cm_context(modem,
@@ -1905,7 +1929,9 @@ static gboolean modem_changed(DBusConnection *connection, 
DBusMessage *message,
                if (has_interface(modem->interfaces, OFONO_API_NETREG) == TRUE) 
{
                        if (modem->attached == TRUE)
                                netreg_get_properties(modem);
-               }
+               } else if (has_interface(modem->interfaces,
+                               OFONO_API_CDMA_NETREG) == TRUE)
+                       cdma_netreg_get_properties(modem);
        } else if (g_str_equal(key, "Serial") == TRUE) {
                char *serial;
 
@@ -1923,6 +1949,12 @@ static gboolean modem_changed(DBusConnection 
*connection, DBusMessage *message,
                                cm_get_properties(modem);
                                cm_get_contexts(modem);
                        }
+               } else if (has_interface(modem->interfaces, OFONO_API_CDMA_CM)
+                               == TRUE) {
+                       if (ready_to_create_device(modem) == TRUE)
+                               create_device(modem);
+                       if (modem->device != NULL)
+                               cdma_cm_get_properties(modem);
                }
        }
 
@@ -2012,6 +2044,12 @@ static void add_modem(const char *path, DBusMessageIter 
*prop)
                        cm_get_properties(modem);
                        cm_get_contexts(modem);
                }
+       } else if (has_interface(modem->interfaces, OFONO_API_CDMA_CM)
+                       == TRUE) {
+               if (ready_to_create_device(modem) == TRUE)
+                       create_device(modem);
+               if (modem->device != NULL)
+                       cdma_cm_get_properties(modem);
        }
 }
 
-- 
1.7.1

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to