aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-3gpp.c
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 /src/mm-iface-modem-3gpp.c
parent5629f47a59b48f2604fd8e9e4af7209b138aef21 (diff)
iface-modem-3gpp: allow requesting the reload of the initial EPS bearer
Diffstat (limited to 'src/mm-iface-modem-3gpp.c')
-rw-r--r--src/mm-iface-modem-3gpp.c35
1 files changed, 35 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;