summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2015-12-03 10:33:10 -0600
committerDenis Kenzior <denkenz@gmail.com>2015-12-03 10:33:10 -0600
commite3188e7d4382fdca5b18de0d1d0af20d34927298 (patch)
treeb742abb23bc6f21891c04595aed1476acf3bdb06
parentbe716557418c08e8159814fc87b8587882f34de9 (diff)
downloadofono-e3188e7d4382fdca5b18de0d1d0af20d34927298.tar.bz2
rilmodem: Implement mtk_pin_retries_cb inline
-rw-r--r--drivers/rilmodem/sim.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/rilmodem/sim.c b/drivers/rilmodem/sim.c
index c19b6cef..1e7183eb 100644
--- a/drivers/rilmodem/sim.c
+++ b/drivers/rilmodem/sim.c
@@ -965,7 +965,9 @@ static void mtk_pin_retries_cb(struct ril_msg *message, gpointer user_data)
struct cb_data *cbd = user_data;
ofono_sim_pin_retries_cb_t cb = cbd->cb;
struct sim_data *sd = cbd->user;
- struct parcel_str_array *str_arr = NULL;
+ struct parcel rilp;
+ char **strv;
+ char *debug_str;
int pin[MTK_EPINC_NUM_PASSWD];
int num_pin;
@@ -975,31 +977,36 @@ static void mtk_pin_retries_cb(struct ril_msg *message, gpointer user_data)
goto error;
}
- str_arr = g_ril_reply_oem_hook_strings(sd->ril, message);
- if (str_arr == NULL || str_arr->num_str < 1) {
+ g_ril_init_parcel(message, &rilp);
+
+ strv = parcel_r_strv(&rilp);
+ if (strv == NULL) {
ofono_error("%s: parse error", __func__);
goto error;
}
- num_pin = sscanf(str_arr->str[0], "+EPINC:%d,%d,%d,%d",
+ debug_str = g_strjoinv(",", strv);
+ g_ril_append_print_buf(sd->ril, "{%d,%s}",
+ g_strv_length(strv), debug_str);
+ g_free(debug_str);
+ g_ril_print_response(sd->ril, message);
+
+ num_pin = sscanf(strv[0], "+EPINC:%d,%d,%d,%d",
&pin[0], &pin[1], &pin[2], &pin[3]);
+ g_strfreev(strv);
- if (num_pin != MTK_EPINC_NUM_PASSWD) {
- ofono_error("%s: failed parsing %s", __func__, str_arr->str[0]);
+ if (num_pin != MTK_EPINC_NUM_PASSWD)
goto error;
- }
sd->retries[OFONO_SIM_PASSWORD_SIM_PIN] = pin[0];
sd->retries[OFONO_SIM_PASSWORD_SIM_PIN2] = pin[1];
sd->retries[OFONO_SIM_PASSWORD_SIM_PUK] = pin[2];
sd->retries[OFONO_SIM_PASSWORD_SIM_PUK2] = pin[3];
- parcel_free_str_array(str_arr);
CALLBACK_WITH_SUCCESS(cb, sd->retries, cbd->data);
return;
error:
- parcel_free_str_array(str_arr);
CALLBACK_WITH_FAILURE(cb, NULL, cbd->data);
}