diff options
-rw-r--r-- | src/mm-iface-modem.c | 2 | ||||
-rw-r--r-- | src/mm-sim.c | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 868df81c..5edbbae0 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -4470,7 +4470,7 @@ interface_initialization_step (InitializationContext *ctx) * This will try to load any missing property value that couldn't be * retrieved before due to having the SIM locked. */ mm_sim_initialize (sim, - NULL, /* TODO: cancellable */ + ctx->cancellable, (GAsyncReadyCallback)sim_reinit_ready, ctx); g_object_unref (sim); diff --git a/src/mm-sim.c b/src/mm-sim.c index da667e22..7cd84ffe 100644 --- a/src/mm-sim.c +++ b/src/mm-sim.c @@ -1468,6 +1468,16 @@ STR_REPLY_READY_FN (operator_name, "Operator name") static void interface_initialization_step (InitAsyncContext *ctx) { + if (g_cancellable_is_cancelled (ctx->cancellable)) { + g_simple_async_result_set_error (ctx->result, + MM_CORE_ERROR, + MM_CORE_ERROR_CANCELLED, + "Interface initialization cancelled"); + g_simple_async_result_complete_in_idle (ctx->result); + init_async_context_free (ctx); + return; + } + switch (ctx->step) { case INITIALIZATION_STEP_FIRST: /* Fall down to next step */ |