aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-11-20 21:55:20 +0100
committerAleksander Morgado <aleksander@aleksander.es>2021-12-11 12:53:37 +0100
commit8cfddef2be31556e4f11eebeed071d8d14c8337b (patch)
treeb2eba7a2e90736889896c93b3a5fe4e8aef845c8
parent8aef73ab53d27e95110a3aa1242616bcbe339702 (diff)
base-sim: reorder init ready() methods
The ready() methods for each step in the initialization sequence must be ordered from bottom to top, so that we can read the logic in that same order.
-rw-r--r--src/mm-base-sim.c136
1 files changed, 68 insertions, 68 deletions
diff --git a/src/mm-base-sim.c b/src/mm-base-sim.c
index 59af3a88..8c26b748 100644
--- a/src/mm-base-sim.c
+++ b/src/mm-base-sim.c
@@ -2293,38 +2293,53 @@ initable_init_finish (GAsyncInitable *initable,
return g_task_propagate_boolean (G_TASK (result), error);
}
+#undef STR_REPLY_READY_FN
+#define STR_REPLY_READY_FN(NAME,DISPLAY) \
+ static void \
+ init_load_##NAME##_ready (MMBaseSim *self, \
+ GAsyncResult *res, \
+ GTask *task) \
+ { \
+ InitAsyncContext *ctx; \
+ GError *error = NULL; \
+ gchar *val; \
+ \
+ val = MM_BASE_SIM_GET_CLASS (self)->load_##NAME##_finish (self, res, &error); \
+ mm_gdbus_sim_set_##NAME (MM_GDBUS_SIM (self), val); \
+ g_free (val); \
+ \
+ if (error) { \
+ mm_obj_warn (self, "couldn't load %s: %s", DISPLAY, error->message); \
+ g_error_free (error); \
+ } \
+ \
+ /* Go on to next step */ \
+ ctx = g_task_get_task_data (task); \
+ ctx->step++; \
+ interface_initialization_step (task); \
+ }
+
static void
-init_load_sim_identifier_ready (MMBaseSim *self,
- GAsyncResult *res,
- GTask *task)
+init_load_preferred_networks_ready (MMBaseSim *self,
+ GAsyncResult *res,
+ GTask *task)
{
InitAsyncContext *ctx;
- GError *error = NULL;
- gchar *simid;
-
- ctx = g_task_get_task_data (task);
- simid = MM_BASE_SIM_GET_CLASS (self)->load_sim_identifier_finish (self, res, &error);
- if (!simid) {
- /* TODO: make the retries gobi-specific? */
-
- /* Try one more time... Gobi 1K cards may reply to the first
- * request with '+CRSM: 106,134,""' which is bogus because
- * subsequent requests work fine.
- */
- if (++ctx->sim_identifier_tries < 2) {
- g_clear_error (&error);
- interface_initialization_step (task);
- return;
- }
+ GError *error = NULL;
+ GList *preferred_nets_list;
- mm_obj_warn (self, "couldn't load SIM identifier: %s", error ? error->message : "unknown error");
- g_clear_error (&error);
+ preferred_nets_list = MM_BASE_SIM_GET_CLASS (self)->load_preferred_networks_finish (self, res, &error);
+ if (error) {
+ mm_obj_warn (self, "couldn't load list of preferred networks: %s", error->message);
+ g_error_free (error);
}
- mm_gdbus_sim_set_sim_identifier (MM_GDBUS_SIM (self), simid);
- g_free (simid);
+ mm_gdbus_sim_set_preferred_networks (MM_GDBUS_SIM (self),
+ mm_sim_preferred_network_list_get_variant (preferred_nets_list));
+ g_list_free_full (preferred_nets_list, (GDestroyNotify) mm_sim_preferred_network_free);
/* Go on to next step */
+ ctx = g_task_get_task_data (task);
ctx->step++;
interface_initialization_step (task);
}
@@ -2355,62 +2370,47 @@ init_load_emergency_numbers_ready (MMBaseSim *self,
interface_initialization_step (task);
}
+STR_REPLY_READY_FN (operator_name, "operator name")
+STR_REPLY_READY_FN (operator_identifier, "operator identifier")
+STR_REPLY_READY_FN (eid, "EID")
+STR_REPLY_READY_FN (imsi, "IMSI")
+
static void
-init_load_preferred_networks_ready (MMBaseSim *self,
- GAsyncResult *res,
- GTask *task)
+init_load_sim_identifier_ready (MMBaseSim *self,
+ GAsyncResult *res,
+ GTask *task)
{
InitAsyncContext *ctx;
- GError *error = NULL;
- GList *preferred_nets_list;
+ GError *error = NULL;
+ gchar *simid;
- preferred_nets_list = MM_BASE_SIM_GET_CLASS (self)->load_preferred_networks_finish (self, res, &error);
- if (error) {
- mm_obj_warn (self, "couldn't load list of preferred networks: %s", error->message);
- g_error_free (error);
+ ctx = g_task_get_task_data (task);
+ simid = MM_BASE_SIM_GET_CLASS (self)->load_sim_identifier_finish (self, res, &error);
+ if (!simid) {
+ /* TODO: make the retries gobi-specific? */
+
+ /* Try one more time... Gobi 1K cards may reply to the first
+ * request with '+CRSM: 106,134,""' which is bogus because
+ * subsequent requests work fine.
+ */
+ if (++ctx->sim_identifier_tries < 2) {
+ g_clear_error (&error);
+ interface_initialization_step (task);
+ return;
+ }
+
+ mm_obj_warn (self, "couldn't load SIM identifier: %s", error ? error->message : "unknown error");
+ g_clear_error (&error);
}
- mm_gdbus_sim_set_preferred_networks (MM_GDBUS_SIM (self),
- mm_sim_preferred_network_list_get_variant (preferred_nets_list));
- g_list_free_full (preferred_nets_list, (GDestroyNotify) mm_sim_preferred_network_free);
+ mm_gdbus_sim_set_sim_identifier (MM_GDBUS_SIM (self), simid);
+ g_free (simid);
/* Go on to next step */
- ctx = g_task_get_task_data (task);
ctx->step++;
interface_initialization_step (task);
}
-#undef STR_REPLY_READY_FN
-#define STR_REPLY_READY_FN(NAME,DISPLAY) \
- static void \
- init_load_##NAME##_ready (MMBaseSim *self, \
- GAsyncResult *res, \
- GTask *task) \
- { \
- InitAsyncContext *ctx; \
- GError *error = NULL; \
- gchar *val; \
- \
- val = MM_BASE_SIM_GET_CLASS (self)->load_##NAME##_finish (self, res, &error); \
- mm_gdbus_sim_set_##NAME (MM_GDBUS_SIM (self), val); \
- g_free (val); \
- \
- if (error) { \
- mm_obj_warn (self, "couldn't load %s: %s", DISPLAY, error->message); \
- g_error_free (error); \
- } \
- \
- /* Go on to next step */ \
- ctx = g_task_get_task_data (task); \
- ctx->step++; \
- interface_initialization_step (task); \
- }
-
-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")
-
static void
init_wait_sim_ready (MMBaseSim *self,
GAsyncResult *res,