diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-12-01 22:43:16 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-12-21 12:05:57 +0000 |
commit | 2d9b62d23b6abbeea4833bbcb431d0e2adaf04aa (patch) | |
tree | 49a4ddca01ce65569f85848540f562e6a524257d | |
parent | 5629f47a59b48f2604fd8e9e4af7209b138aef21 (diff) |
iface-modem-3gpp: allow requesting the reload of the initial EPS bearer
-rw-r--r-- | src/mm-iface-modem-3gpp.c | 35 | ||||
-rw-r--r-- | src/mm-iface-modem-3gpp.h | 1 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c index 4e153c78..93899355 100644 --- a/src/mm-iface-modem-3gpp.c +++ b/src/mm-iface-modem-3gpp.c @@ -1792,6 +1792,41 @@ out: g_object_unref (skeleton); } +static void +reload_initial_eps_bearer_ready (MMIfaceModem3gpp *self, + GAsyncResult *res) +{ + g_autoptr(MMBearerProperties) properties = NULL; + g_autoptr(GError) error = NULL; + + properties = MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_initial_eps_bearer_finish (self, res, &error); + if (!properties) { + mm_obj_dbg (self, "couldn't load initial default bearer properties: %s", error->message); + return; + } + + mm_iface_modem_3gpp_update_initial_eps_bearer (self, properties); +} + +void +mm_iface_modem_3gpp_reload_initial_eps_bearer (MMIfaceModem3gpp *self) +{ + gboolean eps_supported = FALSE; + + g_object_get (self, + MM_IFACE_MODEM_3GPP_EPS_NETWORK_SUPPORTED, &eps_supported, + NULL); + + if (eps_supported && + MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_initial_eps_bearer && + MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_initial_eps_bearer_finish) { + MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_initial_eps_bearer ( + self, + (GAsyncReadyCallback)reload_initial_eps_bearer_ready, + NULL); + } +} + /*****************************************************************************/ typedef struct _DisablingContext DisablingContext; diff --git a/src/mm-iface-modem-3gpp.h b/src/mm-iface-modem-3gpp.h index 2bff383e..258e5c10 100644 --- a/src/mm-iface-modem-3gpp.h +++ b/src/mm-iface-modem-3gpp.h @@ -292,6 +292,7 @@ void mm_iface_modem_3gpp_update_pco_list (MMIfaceModem3gpp *self, const GList *pco_list); void mm_iface_modem_3gpp_update_initial_eps_bearer (MMIfaceModem3gpp *self, MMBearerProperties *properties); +void mm_iface_modem_3gpp_reload_initial_eps_bearer (MMIfaceModem3gpp *self); /* Run all registration checks */ void mm_iface_modem_3gpp_run_registration_checks (MMIfaceModem3gpp *self, |