summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRatchanan Srirattanamet <ratchanan@ubports.com>2023-02-15 15:56:44 +0700
committerThomas Haller <thaller@redhat.com>2023-02-16 16:42:39 +0100
commit08a38ed619e4b69535df4f0904667c8ea1bfd073 (patch)
tree77a60281976d5272e4f1eafc51c3d3113cbc3f20
parentc2bbc0e0c8b9c541700a8a47e96eb09c686c22c4 (diff)
downloadNetworkManager-08a38ed619e4b69535df4f0904667c8ea1bfd073.tar.gz
wwan/ofono: fix a couple of logic errors in update_connection_list()
- Only consider preferred context of "internet" type. There can be multiple preferred contexts of multiple types, and we care about "internet" type only. - Don't check for "internet+mms" type. It turns out that "internet+mms" isn't a thing in oFono, and is used to represent "internet" context with MMSC in the lomiri-system-setting's UI only. Fixes: 9fc72bf75dbf ('wwan/ofono: create connections based on available contexts') Bug-UBports: https://gitlab.com/ubports/development/core/packaging/network-manager/-/issues/3
-rw-r--r--src/core/devices/wwan/nm-modem-ofono.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/core/devices/wwan/nm-modem-ofono.c b/src/core/devices/wwan/nm-modem-ofono.c
index b374562189..33a19e9366 100644
--- a/src/core/devices/wwan/nm-modem-ofono.c
+++ b/src/core/devices/wwan/nm-modem-ofono.c
@@ -734,7 +734,7 @@ update_connection_list(NMModemOfono *self)
g_hash_table_iter_init(&iter, priv->contexts);
while (g_hash_table_iter_next(&iter, (gpointer *) &uuid, (gpointer *) &octx)) {
- if (octx->preferred) {
+ if (octx->preferred && nm_streq(octx->type, "internet")) {
octx_preferred = octx;
break;
}
@@ -743,8 +743,7 @@ update_connection_list(NMModemOfono *self)
g_hash_table_iter_init(&iter, priv->contexts);
while (g_hash_table_iter_next(&iter, (gpointer *) &uuid, (gpointer *) &octx)) {
gboolean connection_should_exist =
- (!octx_preferred || octx_preferred == octx)
- && (nm_streq(octx->type, "internet") || nm_streq(octx->type, "internet+mms"));
+ octx_preferred == octx || (!octx_preferred && nm_streq(octx->type, "internet"));
gboolean connection_exists = g_hash_table_contains(priv->connections, uuid);
if (connection_should_exist && !connection_exists) {