diff options
author | Michal Mazur <mkm@semihalf.com> | 2021-12-16 14:11:23 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-01-30 13:48:48 +0000 |
commit | ee87a6853228e0b4b5e6c132f0c90e8d094af441 (patch) | |
tree | 09bba84fc0732d79d84a38e786d1c4be1c953150 /src | |
parent | 789ff2d822308e2483c262e644c42a4e79d169b8 (diff) |
Revert "mm-sim-mbim: Remove update of remaining attempts"
This reverts commit 46c5cd8b7279e6139466664f87d744a0553fa1c3.
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-sim-mbim.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c index 9b780a46..e7b6547e 100644 --- a/src/mm-sim-mbim.c +++ b/src/mm-sim-mbim.c @@ -78,6 +78,29 @@ peek_device (gpointer self, return TRUE; } +static void +update_modem_unlock_retries (MMSimMbim *self, + MbimPinType pin_type, + guint32 remaining_attempts) +{ + MMBaseModem *modem = NULL; + MMUnlockRetries *unlock_retries; + + g_object_get (G_OBJECT (self), + MM_BASE_SIM_MODEM, &modem, + NULL); + g_assert (MM_IS_BASE_MODEM (modem)); + + unlock_retries = mm_unlock_retries_new (); + mm_unlock_retries_set (unlock_retries, + mm_modem_lock_from_mbim_pin_type (pin_type), + remaining_attempts); + mm_iface_modem_update_unlock_retries (MM_IFACE_MODEM (modem), + unlock_retries); + g_object_unref (unlock_retries); + g_object_unref (modem); +} + /*****************************************************************************/ /* Preload subscriber info */ @@ -779,6 +802,8 @@ pin_set_enter_ready (MbimDevice *device, &pin_state, &remaining_attempts, NULL)) { + update_modem_unlock_retries (self, pin_type, remaining_attempts); + if (!success) { /* Sending PIN failed, build a better error to report */ if (pin_type == MBIM_PIN_TYPE_PIN1 && pin_state == MBIM_PIN_STATE_LOCKED) { @@ -874,6 +899,8 @@ puk_set_enter_ready (MbimDevice *device, &pin_state, &remaining_attempts, NULL)) { + update_modem_unlock_retries (self, pin_type, remaining_attempts); + if (!success) { /* Sending PUK failed, build a better error to report */ if (pin_type == MBIM_PIN_TYPE_PUK1 && pin_state == MBIM_PIN_STATE_LOCKED) { @@ -951,12 +978,25 @@ pin_set_enable_ready (MbimDevice *device, GAsyncResult *res, GTask *task) { + MMSimMbim *self; GError *error = NULL; MbimMessage *response; + MbimPinType pin_type; + guint32 remaining_attempts; + + self = g_task_get_source_object (task); response = mbim_device_command_finish (device, res, &error); if (response) { mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error); + + if (mbim_message_pin_response_parse (response, + &pin_type, + NULL, + &remaining_attempts, + NULL)) + update_modem_unlock_retries (self, pin_type, remaining_attempts); + mbim_message_unref (response); } @@ -1029,12 +1069,25 @@ pin_set_change_ready (MbimDevice *device, GAsyncResult *res, GTask *task) { + MMSimMbim *self; GError *error = NULL; MbimMessage *response; + MbimPinType pin_type; + guint32 remaining_attempts; + + self = g_task_get_source_object (task); response = mbim_device_command_finish (device, res, &error); if (response) { mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error); + + if (mbim_message_pin_response_parse (response, + &pin_type, + NULL, + &remaining_attempts, + NULL)) + update_modem_unlock_retries (self, pin_type, remaining_attempts); + mbim_message_unref (response); } |