aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-iface-modem.c')
-rw-r--r--src/mm-iface-modem.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index b3604b8a..aff7a7a9 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -4219,6 +4219,7 @@ typedef enum {
SYNCING_STEP_DETECT_SIM_SWAP,
SYNCING_STEP_REFRESH_SIM_LOCK,
SYNCING_STEP_REFRESH_SIGNAL_STRENGTH,
+ SYNCING_STEP_REFRESH_BEARERS,
SYNCING_STEP_LAST
} SyncingStep;
@@ -4271,6 +4272,22 @@ sync_detect_sim_swap_ready (MMIfaceModem *self,
}
static void
+reload_bearers (MMIfaceModem *self)
+{
+ g_autoptr(MMBearerList) list = NULL;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_BEARER_LIST, &list,
+ NULL);
+
+ if (list) {
+ mm_bearer_list_foreach (list,
+ (MMBearerListForeachFunc)mm_base_bearer_sync,
+ NULL);
+ }
+}
+
+static void
interface_syncing_step (GTask *task)
{
MMIfaceModem *self;
@@ -4316,6 +4333,14 @@ interface_syncing_step (GTask *task)
ctx->step++;
/* fall through */
+ case SYNCING_STEP_REFRESH_BEARERS:
+ /*
+ * Refresh bearers.
+ */
+ reload_bearers (self);
+ ctx->step++;
+ /* fall through */
+
case SYNCING_STEP_LAST:
/* We are done without errors! */
g_task_return_boolean (task, TRUE);