From e3188e7d4382fdca5b18de0d1d0af20d34927298 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 3 Dec 2015 10:33:10 -0600 Subject: rilmodem: Implement mtk_pin_retries_cb inline --- drivers/rilmodem/sim.c | 25 ++++++++++++++++--------- 1 file 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); } -- cgit v1.2.3