From 0e4e3e5d74968ec7e4570a1421cd04113bc1da99 Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Wed, 15 Feb 2023 15:56:44 +0700 Subject: [PATCH] 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 (cherry picked from commit 08a38ed619e4b69535df4f0904667c8ea1bfd073) --- src/core/devices/wwan/nm-modem-ofono.c | 5 ++--- 1 file 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) {