--- 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