aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dan@ioncontrol.co>2025-05-01 15:37:10 -0500
committerDan Williams <dan@ioncontrol.co>2025-05-01 15:37:10 -0500
commit0ed5ce1ac310ab56917f9c3ae01ae1b726c0259d (patch)
treefdc2b7ee9375abe11af39c76a89604af9e50b428 /src
parent8ef4ce4d61bcd71f7406bcd42d8294b29afc373e (diff)
parentfebab17f07f54f8ababed9b5e187e189ccd15841 (diff)
Merge request !1345 from 'reload-reg-after-manual'
broadband-modem: reload registration info after manual registration https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1345 Closes #971
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 70562774..31012d26 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -5587,6 +5587,21 @@ modem_3gpp_run_registration_checks_finish (MMIfaceModem3gpp *self,
return g_task_propagate_boolean (G_TASK (res), error);
}
+static void
+run_registration_checks_reload_current_registration_info_ready (MMIfaceModem3gpp *modem,
+ GAsyncResult *res,
+ GTask *task)
+{
+ GError *error = NULL;
+
+ mm_iface_modem_3gpp_reload_current_registration_info_finish (modem, res, &error);
+ if (error)
+ g_task_return_error (task, error);
+ else
+ g_task_return_boolean (task, TRUE);
+ g_object_unref (task);
+}
+
static void run_registration_checks_context_step (GTask *task);
static void
@@ -5828,13 +5843,17 @@ run_registration_checks_context_step (GTask *task)
error = g_steal_pointer (&ctx->error_cs);
else
g_assert_not_reached ();
- }
- if (error)
g_task_return_error (task, error);
- else
- g_task_return_boolean (task, TRUE);
- g_object_unref (task);
+ g_object_unref (task);
+ return;
+ }
+
+ /* When everything is done, recheck operator info as it may have changed */
+ mm_iface_modem_3gpp_reload_current_registration_info (
+ MM_IFACE_MODEM_3GPP (self),
+ (GAsyncReadyCallback)run_registration_checks_reload_current_registration_info_ready,
+ task);
}
static void