aboutsummaryrefslogtreecommitdiff
path: root/src/mm-bearer-list.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-11-30 21:51:32 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-12-21 12:05:57 +0000
commit5629f47a59b48f2604fd8e9e4af7209b138aef21 (patch)
treebf3d42242e591cb70fe3dcbf0b7bb7851cd7ebc4 /src/mm-bearer-list.c
parentc99cc9210e7a93be1b572d686f5acdeb0160dd3f (diff)
libmm-glib,bearer-properties: allow loose comparisons
When comparing bearer properties provided by the user versus loaded from the modem, we shouldn't be very strict, e.g.: * Password or other fields may not be readable from the device. * Some fields may not apply at all (e.g. RM protocol for EPS bearers) * NULL strings could be assumed equal to empty strings. * If no explicit IP type specified, an IPv4 default may be assumed. * If no explicit allowed auth specified, 'none' default may be assumed. These loose comparisons are applied when managing the initial EPS bearer settings and status, and we keep the strict comparison only during the connection attempt lookup of a bearer with certain settings, as those bearer objects are all created in the same place with the same rules.
Diffstat (limited to 'src/mm-bearer-list.c')
-rw-r--r--src/mm-bearer-list.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mm-bearer-list.c b/src/mm-bearer-list.c
index 504b99ae..65717132 100644
--- a/src/mm-bearer-list.c
+++ b/src/mm-bearer-list.c
@@ -153,7 +153,11 @@ mm_bearer_list_find_by_properties (MMBearerList *self,
GList *l;
for (l = self->priv->bearers; l; l = g_list_next (l)) {
- if (mm_bearer_properties_cmp (mm_base_bearer_peek_config (MM_BASE_BEARER (l->data)), props))
+ /* always strict matching when comparing these bearer properties, as they're all
+ * built in the same place */
+ if (mm_bearer_properties_cmp (mm_base_bearer_peek_config (MM_BASE_BEARER (l->data)),
+ props,
+ MM_BEARER_PROPERTIES_CMP_FLAGS_NONE))
return g_object_ref (l->data);
}