diff options
Diffstat (limited to 'src/mm-iface-modem.c')
-rw-r--r-- | src/mm-iface-modem.c | 25 |
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); |