---
plugins/ofono.c | 103 ++++++++++++++++---------------------------------------
1 files changed, 30 insertions(+), 73 deletions(-)
diff --git a/plugins/ofono.c b/plugins/ofono.c
index 566f6e3..f4e5859 100644
--- a/plugins/ofono.c
+++ b/plugins/ofono.c
@@ -1716,6 +1716,29 @@ static int cdma_cm_get_properties(struct modem_data
*modem)
cdma_cm_properties_reply, modem);
}
+static gboolean connection_managers_init(modem)(struct modem_data *modem)
+{
+ if (has_interface(modem->interfaces, OFONO_API_CM) == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL) {
+ cm_get_properties(modem);
+ 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);
+
+ return TRUE;
+ } else
+ return FALSE;
+}
+
static void update_sim_imsi(struct modem_data *modem,
const char *imsi)
{
@@ -1801,20 +1824,8 @@ static void sim_properties_reply(struct modem_data
*modem,
break;
}
- if (has_interface(modem->interfaces, OFONO_API_CM) ==
TRUE) {
- 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);
- }
+ connection_managers_init(modem)(modem);
+
return;
}
@@ -1866,22 +1877,7 @@ static gboolean modem_changed(DBusConnection
*connection, DBusMessage *message,
if (modem->online == FALSE)
return TRUE;
- 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);
- }
- }
+ connection_managers_init(modem)(modem);
} else if (g_str_equal(key, "Interfaces") == TRUE) {
modem->interfaces = extract_interfaces(&value);
@@ -1900,21 +1896,7 @@ static gboolean modem_changed(DBusConnection
*connection, DBusMessage *message,
}
}
- if (has_interface(modem->interfaces, OFONO_API_CM) == TRUE) {
- if (ready_to_create_device(modem) == TRUE)
- create_device(modem);
- if (modem->device != NULL) {
- cm_get_properties(modem);
- 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 (connection_managers_init(modem)(modem) == FALSE) {
if (modem->context != NULL) {
remove_cm_context(modem,
modem->context->path);
@@ -1942,20 +1924,7 @@ static gboolean modem_changed(DBusConnection
*connection, DBusMessage *message,
DBG("%s Serial %s", modem->path, modem->serial);
- if (has_interface(modem->interfaces, OFONO_API_CM) == TRUE) {
- 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);
- }
+ connection_managers_init(modem)(modem);
}
return TRUE;
@@ -2037,20 +2006,8 @@ static void add_modem(const char *path, DBusMessageIter
*prop)
modem_set_powered(modem);
} else if (has_interface(modem->interfaces, OFONO_API_SIM) == TRUE) {
sim_get_properties(modem);
- } else if (has_interface(modem->interfaces, OFONO_API_CM) == TRUE) {
- 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);
- }
+ } else
+ connection_managers_init(modem)(modem);
}
static void modem_power_down(gpointer key, gpointer value, gpointer user_data)
--
1.7.1
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman