diff options
-rw-r--r-- | src/mm-broadband-modem.c | 29 |
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 |