summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-10-29 19:30:33 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-10-29 19:39:51 +0100
commitcb37ab29a21a174af74e7412d121df54db8fb9df (patch)
tree961b39720d3d4391aef963673c0ea7359dc661f4
parent8eab903a6bce6f7152010bc3f3dde9211965f412 (diff)
cli: new `--uim-read-eficcid' actionuim
-rw-r--r--cli/qmicli-uim.c37
1 files changed, 33 insertions, 4 deletions
diff --git a/cli/qmicli-uim.c b/cli/qmicli-uim.c
index 9593837..2dcd85b 100644
--- a/cli/qmicli-uim.c
+++ b/cli/qmicli-uim.c
@@ -44,6 +44,7 @@ static Context *ctx;
/* Options */
static gboolean read_efspn_flag;
static gboolean read_efimsi_flag;
+static gboolean read_eficcid_flag;
static gboolean reset_flag;
static gboolean noop_flag;
@@ -56,6 +57,10 @@ static GOptionEntry entries[] = {
"Read the EFimsi file",
NULL
},
+ { "uim-read-eficcid", 0, 0, G_OPTION_ARG_NONE, &read_eficcid_flag,
+ "Read the EFiccid file",
+ NULL
+ },
{ "uim-reset", 0, 0, G_OPTION_ARG_NONE, &reset_flag,
"Reset the service state",
NULL
@@ -93,6 +98,7 @@ qmicli_uim_options_enabled (void)
n_actions = (read_efspn_flag +
read_efimsi_flag +
+ read_eficcid_flag +
reset_flag +
noop_flag);
@@ -241,8 +247,9 @@ typedef struct {
} SimFile;
static const SimFile sim_files[] = {
- { "EFspn", { 0x3F00, 0x7F20, 0x6F46 } },
- { "EFimsi", { 0x3F00, 0x7F20, 0x6F07 } }
+ { "EFspn", { 0x3F00, 0x7F20, 0x6F46 } },
+ { "EFimsi", { 0x3F00, 0x7F20, 0x6F07 } },
+ { "EFiccid", { 0x3F00, 0x2FE2, 0x0000 } },
};
static QmiMessageUimReadTransparentInput *
@@ -262,8 +269,14 @@ read_transparent_build_input (const gchar *file_name)
file_path = g_array_sized_new (FALSE, FALSE, sizeof (guint16), 3);
g_array_append_val (file_path, sim_files[i].path[0]);
- g_array_append_val (file_path, sim_files[i].path[1]);
- file_id = sim_files[i].path[2];
+ if (sim_files[i].path[2] != 0) {
+ g_array_append_val (file_path, sim_files[i].path[1]);
+ g_array_append_val (file_path, sim_files[i].path[2]);
+ file_id = sim_files[i].path[2];
+ } else {
+ g_array_append_val (file_path, sim_files[i].path[1]);
+ file_id = sim_files[i].path[1];
+ }
input = qmi_message_uim_read_transparent_input_new ();
qmi_message_uim_read_transparent_input_set_session_information (
@@ -324,6 +337,22 @@ qmicli_uim_run (QmiDevice *device,
return;
}
+ /* Request to read EFiccid? */
+ if (read_eficcid_flag) {
+ QmiMessageUimReadTransparentInput *input;
+
+ input = read_transparent_build_input ("EFiccid");
+ g_debug ("Asynchronously reading EFiccid...");
+ qmi_client_uim_read_transparent (ctx->client,
+ input,
+ 10,
+ ctx->cancellable,
+ (GAsyncReadyCallback)read_transparent_ready,
+ NULL);
+ qmi_message_uim_read_transparent_input_unref (input);
+ return;
+ }
+
/* Request to reset UIM service? */
if (reset_flag) {
g_debug ("Asynchronously resetting UIM service...");