Wireshark-dev: Re: [Wireshark-dev] How to retrieve text displayed for a proto_item ?

From: Teto <mattator@xxxxxxxxx>
Date: Fri, 23 Dec 2011 14:17:22 +0100
Thx for the quick answer as usual.

> Note this won't pass the inspection by reviewers.
That was dissuasive ^^
I've done like you said, using a temp GString* , thanks for the advice

Matt


On Thu, Dec 22, 2011 at 4:24 PM, Jaap Keuter <jaap.keuter@xxxxxxxxx> wrote:
> On 2011-12-22 15:25, Teto wrote:
>
>> Hi everybody,
>>
>> Easy question despite I couldn't find the answer. Here is an example -
>> not a real one - of what I would like to do:
>>
>> proto_item* pi = proto_tree_add_text(tree, tvb, offset, 4, "Sub-tlvs
>> number" );
>> col_add_fstr(cinfo, COL_INFO, "test: %s" ,
>> get_displayed_text_of_proto_item(pi) );
>>
>> It woud ideally display "Sub-tlvs number" in COL_INFO part. So what's
>> the equivalent for "get_displayed_text_of_proto_item(pi)". I tried
>> with PITEM_FINFO(subtree)->hfinfo->name but seems like the wrong part
>> (displayed nthg).
>>
>> Regards
>> Matt
>>
>
> Hi,
>
> This is considered bad style, not recommended, subject to change, etc.
>
> So what you should do is setup your string, like so:
>
>  const char labelstring[] = "Sub-tlvs number";
>
> and use it, like so:
>
>  proto_tree_add_text(tree, tvb, offset, 4, labelstring);
>  col_add_fstr(cinfo, COL_INFO, "test: %s", labelstring);
>
> So work out your string in a pointer and use that. If the actual string
> depends on a certain variable, Wirehshark provides several kinds of nice
> translation functions. val_to_str(), using valuestrings. It can be used in
> header fields too!
>
> But if you must, and there is no guarantee it works in every case (like
> display filters yes/no, coloring yes/no, or in tshark), you should look
> into finfo, not hfinfo. Note this won't pass the inspection by reviewers.
>
> Thanks,
> Jaap