aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-base-sim.c6
-rw-r--r--src/mm-base-sim.h2
-rw-r--r--src/mm-iface-modem.c15
3 files changed, 15 insertions, 8 deletions
diff --git a/src/mm-base-sim.c b/src/mm-base-sim.c
index 16cdd505..71852339 100644
--- a/src/mm-base-sim.c
+++ b/src/mm-base-sim.c
@@ -85,6 +85,12 @@ static guint signals[SIGNAL_LAST] = { 0 };
#define IS_ESIM_WITHOUT_PROFILES(self) \
(IS_ESIM (self) && (mm_gdbus_sim_get_esim_status (MM_GDBUS_SIM (self)) == MM_SIM_ESIM_STATUS_NO_PROFILES))
+gboolean
+mm_base_sim_is_esim_without_profiles (MMBaseSim *self)
+{
+ return IS_ESIM_WITHOUT_PROFILES (self);
+}
+
/*****************************************************************************/
void
diff --git a/src/mm-base-sim.h b/src/mm-base-sim.h
index 8eb393f7..6be520fd 100644
--- a/src/mm-base-sim.h
+++ b/src/mm-base-sim.h
@@ -254,4 +254,6 @@ gchar *mm_base_sim_load_sim_identifier_finish (MMBaseSim *self,
gboolean mm_base_sim_is_emergency_number (MMBaseSim *self,
const gchar *number);
+gboolean mm_base_sim_is_esim_without_profiles (MMBaseSim *self);
+
#endif /* MM_BASE_SIM_H */
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index d4d406a8..02849048 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -5960,8 +5960,8 @@ interface_initialization_step (GTask *task)
if (!mm_iface_modem_is_cdma_only (self) &&
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_carrier_config &&
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_carrier_config_finish) {
- MMBaseSim *sim = NULL;
- gchar *carrier_config_mapping = NULL;
+ g_autoptr(MMBaseSim) sim = NULL;
+ g_autofree gchar *carrier_config_mapping = NULL;
g_object_get (self,
MM_IFACE_MODEM_SIM, &sim,
@@ -5972,26 +5972,25 @@ interface_initialization_step (GTask *task)
* validate whether we're already using the best config or not. */
if (!sim)
mm_obj_dbg (self, "not setting up carrier config: SIM not found");
+ else if (!mm_base_sim_is_esim_without_profiles (sim))
+ mm_obj_dbg (self, "not setting up carrier config: eSIM without profiles");
else if (!carrier_config_mapping)
mm_obj_dbg (self, "not setting up carrier config: mapping file not configured");
else {
const gchar *imsi;
imsi = mm_gdbus_sim_get_imsi (MM_GDBUS_SIM (sim));
- if (imsi) {
+ if (!imsi)
+ mm_obj_dbg (self, "not setting up carrier config: unknown IMSI");
+ else {
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_carrier_config (self,
imsi,
carrier_config_mapping,
(GAsyncReadyCallback)setup_carrier_config_ready,
task);
- g_object_unref (sim);
- g_free (carrier_config_mapping);
return;
}
- mm_obj_warn (self, "couldn't setup carrier config: unknown IMSI");
}
- g_clear_object (&sim);
- g_free (carrier_config_mapping);
}
ctx->step++;
/* fall-through */