From: Marit Henriksen <[email protected]>

When changing pin, it is possible to get in a state where the modem requests 
puk 
(if incorrect pin is entered too many times). Need to check the SIM pin status 
to discover this.
---
 src/sim.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/sim.c b/src/sim.c
index 699ebe9..b2277c5 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -628,15 +628,16 @@ static DBusMessage *sim_unlock_pin(DBusConnection *conn, 
DBusMessage *msg,
 static void sim_change_pin_cb(const struct ofono_error *error, void *data)
 {
        struct ofono_sim *sim = data;
+       DBusMessage *reply;
 
-       if (error->type != OFONO_ERROR_TYPE_NO_ERROR) {
-               __ofono_dbus_pending_reply(&sim->pending,
-                               __ofono_error_failed(sim->pending));
-               return;
-       }
+       if (error->type != OFONO_ERROR_TYPE_NO_ERROR)
+               reply = __ofono_error_failed(sim->pending);
+       else
+               reply = dbus_message_new_method_return(sim->pending);
 
-       __ofono_dbus_pending_reply(&sim->pending,
-                               dbus_message_new_method_return(sim->pending));
+       __ofono_dbus_pending_reply(&sim->pending, reply);
+
+       sim_pin_check(sim);
 }
 
 static DBusMessage *sim_change_pin(DBusConnection *conn, DBusMessage *msg,
-- 
1.7.0.4

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to