From 7de1717d4296266c3ea980613698acf9a70563fc Mon Sep 17 00:00:00 2001 From: Jeevaka Badrappan Date: Wed, 16 Mar 2011 10:57:30 -0700 Subject: stk: fix issue with Get Inkey variable timeout --- src/stk.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'src/stk.c') 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: -- cgit v1.2.3