diff options
author | Eric Caruso <ejcaruso@chromium.org> | 2020-06-12 15:16:50 -0700 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-10-19 20:38:43 +0000 |
commit | 9fca0467801d41598666dd63e9394ed806c5a399 (patch) | |
tree | 40a57dd67ca0001ffd8d2ad4449b9031e614400c | |
parent | 1ed9f7e94e5948f408d1d09ad8c219a594669066 (diff) |
mm-base-sim: add EID D-Bus property
This provides a new D-Bus property on the Sim object that
exposes the EID of the SIM, if available.
-rw-r--r-- | docs/reference/libmm-glib/libmm-glib-sections.txt | 2 | ||||
-rw-r--r-- | introspection/org.freedesktop.ModemManager1.Sim.xml | 7 | ||||
-rw-r--r-- | src/mm-base-sim.c | 19 | ||||
-rw-r--r-- | src/mm-base-sim.h | 8 |
4 files changed, 36 insertions, 0 deletions
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt index 1e283f2c..107cd94d 100644 --- a/docs/reference/libmm-glib/libmm-glib-sections.txt +++ b/docs/reference/libmm-glib/libmm-glib-sections.txt @@ -3110,6 +3110,8 @@ MmGdbusSimIface mm_gdbus_sim_get_active mm_gdbus_sim_get_imsi mm_gdbus_sim_dup_imsi +mm_gdbus_sim_get_eid +mm_gdbus_sim_dup_eid mm_gdbus_sim_get_sim_identifier mm_gdbus_sim_dup_sim_identifier mm_gdbus_sim_get_operator_identifier diff --git a/introspection/org.freedesktop.ModemManager1.Sim.xml b/introspection/org.freedesktop.ModemManager1.Sim.xml index f214ba5f..87891e31 100644 --- a/introspection/org.freedesktop.ModemManager1.Sim.xml +++ b/introspection/org.freedesktop.ModemManager1.Sim.xml @@ -96,6 +96,13 @@ <property name="Imsi" type="s" access="read" /> <!-- + Eid: + + The EID of the SIM card, if any. + --> + <property name="Eid" type="s" access="read" /> + + <!-- OperatorId: The ID of the network operator that issued the SIM card, diff --git a/src/mm-base-sim.c b/src/mm-base-sim.c index c9d24fbb..d692554d 100644 --- a/src/mm-base-sim.c +++ b/src/mm-base-sim.c @@ -1503,6 +1503,7 @@ typedef enum { INITIALIZATION_STEP_WAIT_READY, INITIALIZATION_STEP_SIM_IDENTIFIER, INITIALIZATION_STEP_IMSI, + INITIALIZATION_STEP_EID, INITIALIZATION_STEP_OPERATOR_ID, INITIALIZATION_STEP_OPERATOR_NAME, INITIALIZATION_STEP_EMERGENCY_NUMBERS, @@ -1631,6 +1632,7 @@ init_load_emergency_numbers_ready (MMBaseSim *self, } STR_REPLY_READY_FN (imsi, "IMSI") +STR_REPLY_READY_FN (eid, "EID") STR_REPLY_READY_FN (operator_identifier, "operator identifier") STR_REPLY_READY_FN (operator_name, "operator name") @@ -1714,6 +1716,22 @@ interface_initialization_step (GTask *task) ctx->step++; /* Fall through */ + case INITIALIZATION_STEP_EID: + /* EID is meant to be loaded only once during the whole + * lifetime of the modem. Therefore, if we already have them loaded, + * don't try to load them again. */ + if (mm_gdbus_sim_get_eid (MM_GDBUS_SIM (self)) == NULL && + MM_BASE_SIM_GET_CLASS (self)->load_eid && + MM_BASE_SIM_GET_CLASS (self)->load_eid_finish) { + MM_BASE_SIM_GET_CLASS (self)->load_eid ( + self, + (GAsyncReadyCallback)init_load_eid_ready, + task); + return; + } + ctx->step++; + /* Fall through */ + case INITIALIZATION_STEP_OPERATOR_ID: /* Operator ID is meant to be loaded only once during the whole * lifetime of the modem. Therefore, if we already have them loaded, @@ -1807,6 +1825,7 @@ initable_init_async (GAsyncInitable *initable, { mm_gdbus_sim_set_sim_identifier (MM_GDBUS_SIM (initable), NULL); mm_gdbus_sim_set_imsi (MM_GDBUS_SIM (initable), NULL); + mm_gdbus_sim_set_eid (MM_GDBUS_SIM (initable), NULL); mm_gdbus_sim_set_operator_identifier (MM_GDBUS_SIM (initable), NULL); mm_gdbus_sim_set_operator_name (MM_GDBUS_SIM (initable), NULL); diff --git a/src/mm-base-sim.h b/src/mm-base-sim.h index 9a290e0b..7e860f56 100644 --- a/src/mm-base-sim.h +++ b/src/mm-base-sim.h @@ -76,6 +76,14 @@ struct _MMBaseSimClass { GAsyncResult *res, GError **error); + /* Load EID (async) */ + void (* load_eid) (MMBaseSim *self, + GAsyncReadyCallback callback, + gpointer user_data); + gchar * (* load_eid_finish) (MMBaseSim *self, + GAsyncResult *res, + GError **error); + /* Load operator identifier (async) */ void (* load_operator_identifier) (MMBaseSim *self, GAsyncReadyCallback callback, |