From a3e4a5258379eeaba4c95015b47419d555f434de Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 12 Nov 2015 11:39:35 -0600 Subject: rilmodem: Implement ril_change_passwd inline --- drivers/rilmodem/sim.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) (limited to 'drivers/rilmodem') diff --git a/drivers/rilmodem/sim.c b/drivers/rilmodem/sim.c index b25843ba..96e4fffa 100644 --- a/drivers/rilmodem/sim.c +++ b/drivers/rilmodem/sim.c @@ -1060,24 +1060,36 @@ static void ril_change_passwd(struct ofono_sim *sim, struct sim_data *sd = ofono_sim_get_data(sim); struct cb_data *cbd = cb_data_new(cb, data, sim); struct parcel rilp; - int request = RIL_REQUEST_CHANGE_SIM_PIN; + int request; - sd->passwd_type = passwd_type; + switch (passwd_type) { + case OFONO_SIM_PASSWORD_SIM_PIN: + request = RIL_REQUEST_CHANGE_SIM_PIN; + break; + case OFONO_SIM_PASSWORD_SIM_PIN2: + request = RIL_REQUEST_CHANGE_SIM_PIN2; + break; + default: + goto error; + }; - g_ril_request_change_passwd(sd->ril, - old_passwd, - new_passwd, - sd->aid_str, - &rilp); + parcel_init(&rilp); - if (passwd_type == OFONO_SIM_PASSWORD_SIM_PIN2) - request = RIL_REQUEST_CHANGE_SIM_PIN2; + parcel_w_int32(&rilp, 3); + parcel_w_string(&rilp, old_passwd); + parcel_w_string(&rilp, new_passwd); + parcel_w_string(&rilp, sd->aid_str); + + g_ril_append_print_buf(sd->ril, "(old=%s,new=%s,aid=%s)", + old_passwd, new_passwd, sd->aid_str); if (g_ril_send(sd->ril, request, &rilp, ril_pin_change_state_cb, - cbd, g_free) == 0) { - g_free(cbd); - CALLBACK_WITH_FAILURE(cb, data); - } + cbd, g_free) > 0) + return; + +error: + g_free(cbd); + CALLBACK_WITH_FAILURE(cb, data); } static gboolean listen_and_get_sim_status(gpointer user) -- cgit v1.2.3