aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-sim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-base-sim.c')
-rw-r--r--src/mm-base-sim.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mm-base-sim.c b/src/mm-base-sim.c
index 560db93d..7eca8e4a 100644
--- a/src/mm-base-sim.c
+++ b/src/mm-base-sim.c
@@ -635,6 +635,14 @@ mm_base_sim_send_pin (MMBaseSim *self,
return;
}
+ /* Only allow sending SIM-PIN if really SIM-PIN locked */
+ if (mm_iface_modem_get_unlock_required (MM_IFACE_MODEM (self->priv->modem)) != MM_MODEM_LOCK_SIM_PIN) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_WRONG_STATE,
+ "Cannot send PIN: device is not SIM-PIN locked");
+ g_object_unref (task);
+ return;
+ }
+
MM_BASE_SIM_GET_CLASS (self)->send_pin (self,
pin,
(GAsyncReadyCallback)send_pin_ready,
@@ -661,6 +669,14 @@ mm_base_sim_send_puk (MMBaseSim *self,
return;
}
+ /* Only allow sending SIM-PUK if really SIM-PUK locked */
+ if (mm_iface_modem_get_unlock_required (MM_IFACE_MODEM (self->priv->modem)) != MM_MODEM_LOCK_SIM_PUK) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_WRONG_STATE,
+ "Cannot send PUK: device is not SIM-PUK locked");
+ g_object_unref (task);
+ return;
+ }
+
MM_BASE_SIM_GET_CLASS (self)->send_puk (self,
puk,
new_pin,