aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index c11203d9..2e849e08 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -3342,6 +3342,17 @@ cancel_command_ready (MMBroadbandModem *self,
g_simple_async_result_complete (simple);
g_object_unref (simple);
+ /* Complete the pending action, if any */
+ if (self->priv->pending_ussd_action) {
+ g_simple_async_result_set_error (self->priv->pending_ussd_action,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_CANCELLED,
+ "USSD session was cancelled");
+ g_simple_async_result_complete_in_idle (self->priv->pending_ussd_action);
+ g_object_unref (self->priv->pending_ussd_action);
+ self->priv->pending_ussd_action = NULL;
+ }
+
mm_iface_modem_3gpp_ussd_update_state (MM_IFACE_MODEM_3GPP_USSD (self),
MM_MODEM_3GPP_USSD_SESSION_STATE_IDLE);
}