diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-22 13:17:05 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-22 13:33:34 +0200 |
commit | ea10c57056996dcc888444a5386d4cfe43b94950 (patch) | |
tree | f1236ca1f4ea2e2c2225cafd3c6b29fec1c7bc1e /src | |
parent | ce33bcfd7a2389a1d7255991afd0383eff763c53 (diff) |
broadband-modem: cancel pending USSD request if USSD session cancelled
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem.c | 11 |
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); } |