aboutsummaryrefslogtreecommitdiff
path: root/src/mm-broadband-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-broadband-modem.c')
-rw-r--r--src/mm-broadband-modem.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 8ae17909..e5a892e4 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -11235,6 +11235,7 @@ schedule_initial_registration_checks (MMBroadbandModem *self)
typedef enum {
/* When user requests a disable operation, the process starts here */
DISABLING_STEP_FIRST,
+ DISABLING_STEP_IFACE_SIMPLE_ABORT_ONGOING,
DISABLING_STEP_WAIT_FOR_FINAL_STATE,
DISABLING_STEP_DISCONNECT_BEARERS,
/* When the disabling is launched due to a failed enable, the process
@@ -11423,6 +11424,14 @@ disabling_step (GTask *task)
ctx->step++;
/* fall through */
+ case DISABLING_STEP_IFACE_SIMPLE_ABORT_ONGOING:
+ /* Connection requests via the Simple interface must be aborted as soon
+ * as possible, because certain steps may be explicitly waiting for new
+ * state transitions and such. */
+ mm_iface_modem_simple_abort_ongoing (MM_IFACE_MODEM_SIMPLE (ctx->self));
+ ctx->step++;
+ /* fall through */
+
case DISABLING_STEP_WAIT_FOR_FINAL_STATE:
/* cancellability allowed at this point */
if (g_task_return_error_if_cancelled (task)) {