On Oct 14, 2011, at 1:16 PM, Ed Beroset wrote:

> I did two earlier versions of the code that did something like that. One 
> version used knowledge of what the tags are and recalculated the length based 
> on the length of the tvb.  The other one looked attempted to verify that the 
> expected tag really was the expected number of bytes ahead of the data.  Both 
> versions seemed messy and complex to me.

So why does not a #.FN_BODY such as

        int start_offset = offset;
        int length;

        $(DEFAULT_BODY)

        length = offset - start_offset;

        <copy "length" bytes of stuff starting at "start_offset">

work?  No need to know what the tags are, no need to verify anything, from what 
I can see.

>>> The more serious problem is that to enable filtering based on
>>> crypto results (e.g. "c1222.crypto_good == true"), the code must
>>> also work on packets that haven't yet been parsed.
>> 
>> Why is that the case?  "c1222.crypto_good" is part of the protocol
>> tree, and gets put there as part of the parsing process.  You can put
>> it into the protocol tree at any point in the parsing process,
>> including after all the other parsing has been done.
> 
> I don't know why that is, but it's what I observe.  When I replace this if 
> statement which is in the working code:
> 
>  if (PNODE_FINFO(tree)->hfinfo->id == hf_c1222_user_information)
>    pkt_tree = proto_item_get_parent_nth(tree, 2);
>  else
>    pkt_tree = tree;
> 
> with this one:
> 
>  if (PNODE_FINFO(tree)->hfinfo->id == hf_c1222_user_information)
>    pkt_tree = proto_item_get_parent_nth(tree, 2);
>  else
>    return FALSE;

None of that has anything to do with adding hf_c1222_crypto_good to the 
protocol tree, which is what is relevant for making a "c1222.crypto_good" field 
work; where is the code that adds that to the tree?

> The *displayed* values for parsed packets are all correct,

Where is the "c1222.crypto_good" field displayed in the protocol tree?  (Don't 
make it a hidden field; making it visible

        1) means the user sees it so they don't have to know its name to know 
how to filter on it in Wireshark - they could just use the "add filter" and 
"prepare filter" menu items;

        2) the dissection tells you directly whether the crypto is good or not.)
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to