diff --git a/drivers/rilmodem/sim.c b/drivers/rilmodem/sim.c index 6f717c5b..b25843ba 100644 --- a/drivers/rilmodem/sim.c +++ b/drivers/rilmodem/sim.c @@ -1034,17 +1034,22 @@ static void ril_pin_send_puk(struct ofono_sim *sim, sd->passwd_type = OFONO_SIM_PASSWORD_SIM_PUK; - g_ril_request_pin_send_puk(sd->ril, - puk, - passwd, - sd->aid_str, - &rilp); + parcel_init(&rilp); + + parcel_w_int32(&rilp, 3); + parcel_w_string(&rilp, puk); + parcel_w_string(&rilp, passwd); + parcel_w_string(&rilp, sd->aid_str); + + g_ril_append_print_buf(sd->ril, "(puk=%s,pin=%s,aid=%s)", + puk, passwd, sd->aid_str); if (g_ril_send(sd->ril, RIL_REQUEST_ENTER_SIM_PUK, &rilp, - ril_pin_change_state_cb, cbd, g_free) == 0) { - g_free(cbd); - CALLBACK_WITH_FAILURE(cb, data); - } + ril_pin_change_state_cb, cbd, g_free) > 0) + return; + + g_free(cbd); + CALLBACK_WITH_FAILURE(cb, data); } static void ril_change_passwd(struct ofono_sim *sim,