mirror of git://git.sysmocom.de/ofono
Refactor: Update the subaddress structure
This commit is contained in:
parent
bbf67bd4a0
commit
e5dff20ff5
|
@ -95,8 +95,8 @@ static gboolean parse_dataobj_alpha_id(struct comprehension_tlv_iter *iter,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Defined in TS 102.223 Section 8.3 */
|
/* Defined in TS 102.223 Section 8.3 */
|
||||||
static gboolean parse_dataobj_subaddress(
|
static gboolean parse_dataobj_subaddress(struct comprehension_tlv_iter *iter,
|
||||||
struct comprehension_tlv_iter *iter, void *user)
|
void *user)
|
||||||
{
|
{
|
||||||
struct stk_subaddress *subaddr = user;
|
struct stk_subaddress *subaddr = user;
|
||||||
const unsigned char *data;
|
const unsigned char *data;
|
||||||
|
@ -110,9 +110,11 @@ static gboolean parse_dataobj_subaddress(
|
||||||
if (len < 1)
|
if (len < 1)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
if (len > sizeof(subaddr->subaddr))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
data = comprehension_tlv_iter_get_data(iter);
|
data = comprehension_tlv_iter_get_data(iter);
|
||||||
subaddr->subaddr_len = len;
|
subaddr->len = len;
|
||||||
subaddr->subaddr = g_malloc(len);
|
|
||||||
memcpy(subaddr->subaddr, data, len);
|
memcpy(subaddr->subaddr, data, len);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -198,10 +198,23 @@ struct stk_address {
|
||||||
char *number;
|
char *number;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Defined in TS 102.223 Section 8.3 */
|
/*
|
||||||
|
* Defined in TS 102.223 Section 8.3
|
||||||
|
*
|
||||||
|
* The maximum size of the subaddress is different depending on the referenced
|
||||||
|
* specification. According to TS 24.008 Section 10.5.4.8: "The called party
|
||||||
|
* subaddress is a type 4 information element with a minimum length of 2 octets
|
||||||
|
* and a maximum length of 23 octets"
|
||||||
|
*
|
||||||
|
* According to TS 31.102 Section 4.4.2.4: "The subaddress data contains
|
||||||
|
* information as defined for this purpose in TS 24.008 [9]. All information
|
||||||
|
* defined in TS 24.008, except the information element identifier, shall be
|
||||||
|
* stored in the USIM. The length of this subaddress data can be up to 22
|
||||||
|
* bytes."
|
||||||
|
*/
|
||||||
struct stk_subaddress {
|
struct stk_subaddress {
|
||||||
unsigned int subaddr_len;
|
unsigned char len;
|
||||||
unsigned char *subaddr;
|
unsigned char *subaddr[23];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Defined in TS 102.223 Section 8.4 */
|
/* Defined in TS 102.223 Section 8.4 */
|
||||||
|
|
Loading…
Reference in New Issue