diff options
author | Guillaume Zajac <guillaume.zajac@linux.intel.com> | 2011-12-15 14:34:29 +0100 |
---|---|---|
committer | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2011-12-15 16:06:24 +0100 |
commit | 9a035b26d71263043e60e5d10ef1f24dbc86a3e5 (patch) | |
tree | c15d6241dd13cc6b2cf5a70d9029c8d8f39bcea2 /plugins | |
parent | d6a1df79a211bb1ea57faff629f090371f344bd7 (diff) | |
download | connman-9a035b26d71263043e60e5d10ef1f24dbc86a3e5.tar.gz connman-9a035b26d71263043e60e5d10ef1f24dbc86a3e5.tar.bz2 connman-9a035b26d71263043e60e5d10ef1f24dbc86a3e5.zip |
ofono: Factorize Connection Managers intialization
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/ofono.c | 103 |
1 files changed, 30 insertions, 73 deletions
diff --git a/plugins/ofono.c b/plugins/ofono.c index ef246b85..153ef2d2 100644 --- a/plugins/ofono.c +++ b/plugins/ofono.c @@ -1526,6 +1526,29 @@ static int cdma_cm_get_properties(struct modem_data *modem) return -EINVAL; } +static gboolean connection_managers_init(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) { @@ -1611,20 +1634,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); + return; } @@ -1676,22 +1687,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); } else if (g_str_equal(key, "Interfaces") == TRUE) { modem->interfaces = extract_interfaces(&value); @@ -1710,21 +1706,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) == FALSE) { if (modem->context != NULL) { remove_cm_context(modem, modem->context->path); @@ -1752,20 +1734,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); } return TRUE; @@ -1847,20 +1816,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); } static void modem_power_down(gpointer key, gpointer value, gpointer user_data) |