Wireshark mailing list archives
Re: Question for data argument of dissector_try_heuristic
From: Guy Harris <guy () alum mit edu>
Date: Mon, 25 Mar 2013 17:35:34 -0700
On Mar 25, 2013, at 1:57 PM, Roland Knall <rknall () gmail com> wrote:
Under Mac OS X some warnings came up, and among them is a repeated warning about an unused *data parameter for every call to a heuristic dissector.
Or, rather, a repeated warning about an unused *data parameter in every *definition* of a heuristic dissector *that doesn't use it or explicitly flag it as unused*. No existing dissectors use it, but they all flag it as unused, so the warnings do *not* come up when you compile the Wireshark trunk; they only show up if you're adding your own dissector, or have changed an existing dissector, and have a heuristic dissector that doesn't use the argument and doesn't flag it as unused.
As I do use the heuristic dissector, but do not use the data argument, I looked up every occurence, where dissection is passed to a heuristic dissector. In every case, NULL is passed as *data argument.
To be precise, in the *current* Wireshark source tree, NULL is passed as the *data argument in all calls to dissector_try_heuristic().
So my question is this: What is the *data arguments intention
To allow the calling dissector to pass private information to the called dissector, rather than using the pinfo->private_data variable; that way, you don't have to worry about, for example, saving and restoring private_data values. (It replaces a quasi-global variable with an argument.)
and who uses it actually?
No heuristic dissectors currently use it, but it's there for use in the future; we may convert heuristic dissectors to use it in the future.
But from a software development point of view, this is faulty behaviour. If we do have an argument we should use it or throw it away.
In places where arbitrary functions can be registered in tables, or passed as callback routines, the function signature is fixed, but not all functions necessarily have a use for all the information passed to them, even if some functions do. ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Question for data argument of dissector_try_heuristic Roland Knall (Mar 25)
- Re: Question for data argument of dissector_try_heuristic Guy Harris (Mar 25)