diff options
author | Ratchanan Srirattanamet <ratchanan@ubports.com> | 2023-02-15 15:56:44 +0700 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-02-16 16:42:39 +0100 |
commit | 08a38ed619e4b69535df4f0904667c8ea1bfd073 (patch) | |
tree | 77a60281976d5272e4f1eafc51c3d3113cbc3f20 | |
parent | c2bbc0e0c8b9c541700a8a47e96eb09c686c22c4 (diff) | |
download | NetworkManager-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.c | 5 |
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) { |