Hi Kristen,

>>>> Then this code is incorrect, as it handles len 3 attrs only at the end
>>>> of the array.  Also please note that SIM Toolkit Text Attributes are
>>>> always coded on 4 bytes (see 102.223 Section 8.72 for details).  You
>>>> might want to assume 4 byte alignment or invent a data structure for
>>>> these attributes.
>>>
>>> I should have said that attrs_len does not always have to be a multiple
>>> of 4 -- it is allowed to only have 3 byte attrs as the last attribute,
>>> so the code is correct.  However, since not all attributes are
>>> required to be of len 4, we can't just assume attrs_len is a multiple
>>> of 4.
>>>
>>
>> How do you figure this?  From 23.040 Section 9.2.3.24.10.1.1 Text Formatting
>>
>> "Octet 4
>>
>> This Octet may be omitted by setting the IED length accordingly."
> 
> This isn't the clearest language, so my interpretation of this is
> you may omit one byte if you set the length properly.  Clearly
> the spec tell you that the byte is optional, so I think it would
> be wrong to assume that all are 4 bytes.  Also, since obviously
> we can't support mixed 3 and 4 byte fields since we'd have no
> way to know if the next byte was the start of the next attribute,
> it's got to be at the end of the array.

Actually it is not.  Each Text attribute is put into an SMS header, with
the header having an IEI (Information Element Identifier), Length and
Data.  See SMS_IEI_TEXT_FORMAT in smsutil.h

Hence, when an EMS PDU is parsed, you know whether this is a 3 byte or a
4 byte element.

Regards,
-Denis
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to