aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-12-01 22:43:16 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-12-21 12:05:57 +0000
commit2d9b62d23b6abbeea4833bbcb431d0e2adaf04aa (patch)
tree49a4ddca01ce65569f85848540f562e6a524257d
parent5629f47a59b48f2604fd8e9e4af7209b138aef21 (diff)
iface-modem-3gpp: allow requesting the reload of the initial EPS bearer
-rw-r--r--src/mm-iface-modem-3gpp.c35
-rw-r--r--src/mm-iface-modem-3gpp.h1
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,