diff options
author | Eric Caruso <ejcaruso@chromium.org> | 2021-06-09 11:14:56 -0700 |
---|---|---|
committer | Eric Caruso <ejcaruso@chromium.org> | 2021-06-10 06:47:18 -0700 |
commit | 611d59883606e30a226dd9066b503c3b857edd39 (patch) | |
tree | 6e4f543a5b6d3c59456ae48b62cb8b7371ee1fb2 /src | |
parent | 43d705ab933ee021ff1c4c0ea5075db205be7a40 (diff) |
mm-sim-qmi: parse ICCID as hex instead of BCD
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-sim-qmi.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mm-sim-qmi.c b/src/mm-sim-qmi.c index 1dbec3a0..a4aa3cb9 100644 --- a/src/mm-sim-qmi.c +++ b/src/mm-sim-qmi.c @@ -336,6 +336,7 @@ uim_get_iccid_ready (QmiClientUim *client, { GError *error = NULL; GArray *read_result; + g_autofree gchar *raw_iccid = NULL; gchar *iccid; read_result = uim_read_finish (client, res, &error); @@ -345,10 +346,14 @@ uim_get_iccid_ready (QmiClientUim *client, return; } - iccid = mm_bcd_to_string ((const guint8 *) read_result->data, read_result->len, - TRUE /* low_nybble_first */); - g_assert (iccid); - g_task_return_pointer (task, iccid, g_free); + raw_iccid = mm_utils_bin2hexstr ((const guint8 *) read_result->data, read_result->len); + g_assert (raw_iccid); + iccid = mm_3gpp_parse_iccid (raw_iccid, &error); + if (!iccid) { + g_task_return_error (task, error); + } else { + g_task_return_pointer (task, iccid, g_free); + } g_object_unref (task); g_array_unref (read_result); |