Add parser for capability configuration parameters objects

This commit is contained in:
Yang Gu 2010-03-05 12:45:31 +08:00 committed by Denis Kenzior
parent 7b663e9474
commit cb33d07764
2 changed files with 33 additions and 1 deletions

View File

@ -113,6 +113,30 @@ static gboolean parse_dataobj_subaddress(
return TRUE;
}
/* Defined in TS 102.223 Section 8.4 */
static gboolean parse_dataobj_capability_configuration_parameters(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_capability_configuration_parameters *ccp = user;
const unsigned char *data;
unsigned int len;
if (comprehension_tlv_iter_get_tag(iter) !=
STK_DATA_OBJECT_TYPE_CAPABILITY_CONFIGURATION_PARAMETERS)
return FALSE;
len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
return FALSE;
data = comprehension_tlv_iter_get_data(iter);
ccp->ccp_len = len;
ccp->ccp = g_malloc(len);
memcpy(ccp->ccp, data, len);
return TRUE;
}
/* Described in TS 102.223 Section 8.8 */
static gboolean parse_dataobj_duration(struct comprehension_tlv_iter *iter,
void *user)
@ -331,6 +355,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
return parse_dataobj_alpha_identifier;
case STK_DATA_OBJECT_TYPE_SUBADDRESS:
return parse_dataobj_subaddress;
case STK_DATA_OBJECT_TYPE_CAPABILITY_CONFIGURATION_PARAMETERS:
return parse_dataobj_capability_configuration_parameters;
case STK_DATA_OBJECT_TYPE_DURATION:
return parse_dataobj_duration;
case STK_DATA_OBJECT_TYPE_RESPONSE_LENGTH:

View File

@ -87,7 +87,7 @@ enum stk_data_object_type {
STK_DATA_OBJECT_TYPE_DURATION = 0x04,
STK_DATA_OBJECT_TYPE_ALPHA_IDENTIFIER = 0x05,
STK_DATA_OBJECT_TYPE_ADDRESS = 0x06,
STK_DATA_OBJECT_TYPE_CCP = 0x07,
STK_DATA_OBJECT_TYPE_CAPABILITY_CONFIGURATION_PARAMETERS = 0x07,
STK_DATA_OBJECT_TYPE_SUBADDRESS = 0x08,
STK_DATA_OBJECT_TYPE_SS_STRING = 0x09,
STK_DATA_OBJECT_TYPE_USSD_STRING = 0x0A,
@ -205,6 +205,12 @@ struct stk_subaddress {
unsigned char *subaddr;
};
/* Defined in TS 102.223 Section 8.4 */
struct stk_capability_configuration_parameters {
unsigned int ccp_len;
unsigned char *ccp;
};
/*
* Icon ID denotes a file on the SIM filesystem. Since EF cannot have record
* ids of 0, we use icon_id with 0 to denote empty icon_identifier objects