Hi Harald,
> instead of building more hacks on existing hacks, we should probably
> consider to use our TLV parser instead
[... patch snipped ...]
> all that we need is a second 'struct tlv_parsed' on the stack, as well as
> a 'static const struct tlv_definition' for the nested attributes such as
> SW_DESCR and FILE_ID, FILE_VERSION (or any others, if they exist).
Mmmm, I don't really see how to do that without another hack ...
* You can view it either as flat (liek the wireshard dissector does) like this :
SW_CONFIG
FILE_ID len_16 data
FILE_VERSION len_16 data
SW_CONFIG
FILE_ID len_16 data
FILE_VERSION len_16 data
But then the problem is that the tag will override each other in the tlv_parser, you can't really 'choose' which config you get.
* Or you can view the FILE_ID & FILE_VERSION as 'nested into' SW_CONFIG:
SW_CONFIG
FILE_ID len_16 data
FILE_VERSION len_16 data
SW_CONFIG
FILE_ID len_16 data
FILE_VERSION len_16 data
But that's not better, because even if I start tlv_parsing a sw_config+1, SW_CONFIG tag doesn't have a 'length' it's just defined as having two child, so I can't really tell the tlv_parser to stop and it will continue past the first FILE_VERSION and into the second SW_CONFIG tag.
Or am I missing something obvious here ?
Sylvain