stk: Display action information while sending USSD
authorPhilippe Nunes <philippe.nunes@linux.intel.com>
Tue, 28 Aug 2012 13:33:52 +0000 (15:33 +0200)
committerDenis Kenzior <denkenz@gmail.com>
Thu, 30 Aug 2012 21:36:49 +0000 (16:36 -0500)
src/stk.c

index 7a7bd75..b471446 100644 (file)
--- a/src/stk.c
+++ b/src/stk.c
@@ -2021,11 +2021,6 @@ static gboolean handle_command_send_ussd(const struct stk_command *cmd,
                                        cmd->send_ussd.ussd_string.len,
                                        send_ussd_callback, stk);
 
-       if (err >= 0) {
-               stk->cancel_cmd = send_ussd_cancel;
-
-               return FALSE;
-       }
 
        if (err == -ENOSYS) {
                rsp->result.type = STK_RESULT_TYPE_NOT_CAPABLE;
@@ -2038,6 +2033,20 @@ static gboolean handle_command_send_ussd(const struct stk_command *cmd,
                return TRUE;
        }
 
+       if (err < 0) {
+               unsigned char no_cause_result[] = { 0x00 };
+
+               /*
+                * We most likely got an out of memory error, tell SIM
+                * to retry
+                */
+               ADD_ERROR_RESULT(rsp->result, STK_RESULT_TYPE_TERMINAL_BUSY,
+                                       no_cause_result);
+               return TRUE;
+       }
+
+       stk->cancel_cmd = send_ussd_cancel;
+
        stk_alpha_id_set(stk, cmd->send_ussd.alpha_id,
                                &cmd->send_ussd.text_attr,
                                &cmd->send_ussd.icon_id);