summaryrefslogtreecommitdiffstats
path: root/drivers/rilmodem/sim.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2015-11-12 11:39:35 -0600
committerDenis Kenzior <denkenz@gmail.com>2015-11-12 11:41:03 -0600
commita3e4a5258379eeaba4c95015b47419d555f434de (patch)
treeb9005dd7dc8eb8e31f5e75bfcd15da6500f4bfaf /drivers/rilmodem/sim.c
parentc4806f1f43cbee6de8559272e26708d950361715 (diff)
downloadofono-a3e4a5258379eeaba4c95015b47419d555f434de.tar.bz2
rilmodem: Implement ril_change_passwd inline
Diffstat (limited to 'drivers/rilmodem/sim.c')
-rw-r--r--drivers/rilmodem/sim.c38
1 files changed, 25 insertions, 13 deletions
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)