diff options
author | Jeevaka Badrappan <jeevaka.badrappan@elektrobit.com> | 2011-03-16 10:57:30 -0700 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-03-16 21:36:11 -0500 |
commit | 7de1717d4296266c3ea980613698acf9a70563fc (patch) | |
tree | 0608072e758405d8d4bad7ff0c330b1ce4a6c2ba /src/stk.c | |
parent | 2f0485e757d46206335d0181ae9d9705b29898d7 (diff) | |
download | ofono-7de1717d4296266c3ea980613698acf9a70563fc.tar.bz2 |
stk: fix issue with Get Inkey variable timeout
Diffstat (limited to 'src/stk.c')
-rw-r--r-- | src/stk.c | 28 |
1 files changed, 26 insertions, 2 deletions
@@ -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: |