summaryrefslogtreecommitdiffstats
path: root/src/stkutil.c
diff options
context:
space:
mode:
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>2010-07-07 00:39:07 +0200
committerDenis Kenzior <denkenz@gmail.com>2010-07-08 14:27:33 -0500
commit6de5b7f5bba9d2e375da752b9df4e680f1cac94c (patch)
tree7b4eadc064b0213e15f16e261ac6aa966737a3f7 /src/stkutil.c
parentc4519941394b2fce3d4ef276a51459561f2e14e1 (diff)
downloadofono-6de5b7f5bba9d2e375da752b9df4e680f1cac94c.tar.bz2
stkutil: Timer Value is conditional, not optional.
Make the parser check that the value is present when necessary, so that stk.c doesn't have to check this.
Diffstat (limited to 'src/stkutil.c')
-rw-r--r--src/stkutil.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/stkutil.c b/src/stkutil.c
index d2cd126a..94ff182f 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -3000,6 +3000,7 @@ static enum stk_command_parse_result parse_timer_mgmt(
struct comprehension_tlv_iter *iter)
{
struct stk_command_timer_mgmt *obj = &command->timer_mgmt;
+ enum stk_data_object_flag value_flags = 0;
if (command->src != STK_DEVICE_IDENTITY_TYPE_UICC)
return STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD;
@@ -3007,10 +3008,13 @@ static enum stk_command_parse_result parse_timer_mgmt(
if (command->dst != STK_DEVICE_IDENTITY_TYPE_TERMINAL)
return STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD;
+ if ((command->qualifier & 3) == 0) /* Start a timer */
+ value_flags = DATAOBJ_FLAG_MANDATORY;
+
return parse_dataobj(iter, STK_DATA_OBJECT_TYPE_TIMER_ID,
DATAOBJ_FLAG_MANDATORY | DATAOBJ_FLAG_MINIMUM,
&obj->timer_id,
- STK_DATA_OBJECT_TYPE_TIMER_VALUE, 0,
+ STK_DATA_OBJECT_TYPE_TIMER_VALUE, value_flags,
&obj->timer_value,
STK_DATA_OBJECT_TYPE_INVALID);
}