summaryrefslogtreecommitdiffstats
path: root/src/stk.c
diff options
context:
space:
mode:
authorJeevaka Badrappan <jeevaka.badrappan@elektrobit.com>2011-03-16 10:57:30 -0700
committerDenis Kenzior <denkenz@gmail.com>2011-03-16 21:36:11 -0500
commit7de1717d4296266c3ea980613698acf9a70563fc (patch)
tree0608072e758405d8d4bad7ff0c330b1ce4a6c2ba /src/stk.c
parent2f0485e757d46206335d0181ae9d9705b29898d7 (diff)
downloadofono-7de1717d4296266c3ea980613698acf9a70563fc.tar.bz2
stk: fix issue with Get Inkey variable timeout
Diffstat (limited to 'src/stk.c')
-rw-r--r--src/stk.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/stk.c b/src/stk.c
index e933e4e6..68b6240c 100644
--- a/src/stk.c
+++ b/src/stk.c
@@ -1396,7 +1396,19 @@ static void request_confirmation_cb(enum stk_agent_result result,
break;
case STK_AGENT_RESULT_TIMEOUT:
- send_simple_response(stk, STK_RESULT_TYPE_NO_RESPONSE);
+ memset(&rsp, 0, sizeof(rsp));
+
+ rsp.result.type = STK_RESULT_TYPE_NO_RESPONSE;
+
+ if (cmd->duration.interval) {
+ rsp.get_inkey.duration.unit = cmd->duration.unit;
+ set_get_inkey_duration(&rsp.get_inkey.duration,
+ &stk->get_inkey_start_ts);
+ }
+
+ if (stk_respond(stk, &rsp, stk_command_cb))
+ stk_command_cb(&error, stk);
+
break;
case STK_AGENT_RESULT_TERMINATE:
@@ -1439,7 +1451,19 @@ static void request_key_cb(enum stk_agent_result result, char *string,
break;
case STK_AGENT_RESULT_TIMEOUT:
- send_simple_response(stk, STK_RESULT_TYPE_NO_RESPONSE);
+ memset(&rsp, 0, sizeof(rsp));
+
+ rsp.result.type = STK_RESULT_TYPE_NO_RESPONSE;
+
+ if (cmd->duration.interval) {
+ rsp.get_inkey.duration.unit = cmd->duration.unit;
+ set_get_inkey_duration(&rsp.get_inkey.duration,
+ &stk->get_inkey_start_ts);
+ }
+
+ if (stk_respond(stk, &rsp, stk_command_cb))
+ stk_command_cb(&error, stk);
+
break;
case STK_AGENT_RESULT_TERMINATE: