broadband-bearer,modem-helpers: don't use or match disabled profiles
When matching profiles ignore disabled ones. When activating a specific profile index, return an error if that profile is marked as disabled. Signed-off-by: Dan Williams <dan@ioncontrol.co>
This commit is contained in:
@@ -634,7 +634,13 @@ select_profile_3gpp_get_profile_ready (MMIfaceModem3gppProfileManager *modem,
|
||||
profile = mm_iface_modem_3gpp_profile_manager_get_profile_finish (modem, res, &error);
|
||||
if (!profile)
|
||||
g_task_return_error (task, error);
|
||||
else
|
||||
else if (!mm_3gpp_profile_get_enabled (profile)) {
|
||||
g_task_return_new_error (task,
|
||||
MM_CORE_ERROR,
|
||||
MM_CORE_ERROR_FAILED,
|
||||
"Profile '%d' is internally disabled",
|
||||
ctx->profile_id);
|
||||
} else
|
||||
g_task_return_int (task, ctx->profile_id);
|
||||
g_object_unref (task);
|
||||
}
|
||||
|
||||
@@ -1677,6 +1677,12 @@ mm_3gpp_profile_list_find_best (GList *profile_list,
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Never select disabled profiles */
|
||||
if (!mm_3gpp_profile_get_enabled (iter_profile)) {
|
||||
mm_obj_dbg (log_object, "skipping context at profile %d: disabled", iter_profile_id);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Always prefer an exact match; compare all supported fields except for profile id */
|
||||
if (mm_3gpp_profile_cmp (iter_profile, requested, cmp_apn, cmp_flags)) {
|
||||
mm_obj_dbg (log_object, "found exact context at profile %d", iter_profile_id);
|
||||
|
||||
Reference in New Issue
Block a user