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)
{
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;
}
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);
}
}
- 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);
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;
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)