I would like to write "prot.has.error" in the filter and find all of my packets that have any condition that my dissector determines to be "an error". Otherwise I have to type a filter like prot && (_ws.expert.severity == "Error" || _ws.expert.severity == "Warn")
To do that now, I have to write something like if ({condition}) { expert_add_info(pinfo, pitem, efield); my_prot_context.has_error = TRUE; } for each condition in my dissector code. Instead, I would like to write methods such as ei_add_if_is_gint(pinfo, pitem, expected_gint, efield); and have the methods do ei_add_if_is_gint(...) { if (expected_gint == (gint)proto_item_get_guint(pitem)) { expert_field_info* eiinfo; expert_add_info(pinfo, pitem, efield); EXPERT_REGISTRAR_GET_NTH(efield->ei, eiinfo); if (PI_ERROR == eiinfo->severity || PI_WARN == eiinfo->severity) my_prot_context.has_error = TRUE; } } Otherwise, my dissector code will be sprinkled with the above block of "if"s instead of easily maintained ei_add_if_is_gint() and similar calls. Thank you, Jay Turner -----Original Message----- From: Wireshark-dev <wireshark-dev-boun...@wireshark.org> On Behalf Of Guy Harris Sent: Saturday, January 23, 2021 8:01 PM To: Developer support list for Wireshark <wireshark-dev@wireshark.org> Subject: Re: [Wireshark-dev] Plugin dissector - lookup expert_field_info On Jan 23, 2021, at 1:06 PM, jayrturne...@gmail.com wrote: > I want to wrap expert_add_info calls so that I can check the expert_field* > argument, see if the severity is PI_ERROR, and set a generated field in my > protocol that says “this packet has errors”. For what purpose? There's already something in the protocol tree saying "this packet has errors", namely the added expert info. A packet-matching expression that will match all packets that have a PI_ERROR expert info is _ws.expert.severity == "Error" ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe