Anders Broman wrote:
Should we look into the possibility of adding a preference to the PRES
dissector where you can "force" a certain context to be dissected by a
higher layer dissector such as MMS?
How would you identify the context if you don't have the presentation
context identifier?
What we might *really* want is a mechanism by which a dissector that
fails to find a sub-dissector can, if it would make sense for the user
to explicitly indicate the sub-dissector to be used, can indicate that?
This would create a data structure for the current frame (it wouldn't
have to be persistent, as it'd be recreated whenever the frame was
selected) with some indication of what to display as the item to be
"decoded as", something to indicate which of the dissectors should be
offered as choices, and a routine to call back. At least in Wireshark,
the "Decode As" code would add additional tabs to the dialog for this,
and would call the callback if you click "OK" and have selected that tab.
In the case of the PRES dissector, the "item to be decoded as" would be
something to indicate to the user that it's the context, the list of
dissectors would be all the dissectors registered with
register_ber_oid_dissector(), and the callback would internally
associate the OID for the selected dissector with the context.
We might be able to use this for the DCE RPC "decode as" function as well.
(In fact, we could have dissectors use this even in cases where a
sub-dissector *was* found, if we want to allow users to override the
decision; that might let us get rid of the "Decode as" code that knows
about Ethertypes, IP protocols, and TCP/UDP ports, if we add a few more
items to the data structure in question.