From 6de5b7f5bba9d2e375da752b9df4e680f1cac94c Mon Sep 17 00:00:00 2001 From: Andrzej Zaborowski Date: Wed, 7 Jul 2010 00:39:07 +0200 Subject: 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. --- src/stkutil.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/stkutil.c') 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); } -- cgit v1.2.3