Wireshark-dev: [Wireshark-dev] Ability to "Decode As" arbitrary protocol

From: "Douglas Pratley" <Douglas.pratley@xxxxxxxxxx>
Date: Thu, 21 Dec 2006 11:32:11 -0000
Title: Ability to "Decode As" arbitrary protocol

Hiya

One thing I'd would like to able to do (and there seemed to be some demand for it in recent mails in the users list) is to be able to select an "unexpected" protocol to "Decode As" in the GUI on the fly.

Playing around in the code and with Lua, this looks quite easy as a one off - just grab the dissector required, and call dissector_add_handle to add it to the list of dissectors available for the parent protocol's dissector table. It then appears in the available list of dissectors, and can be selected.

So, I'd like to be able to display a list of _all_ dissectors (together with a big warning that selecting a non-standard dissector could have unpredictable effects and should be done at your own risk), brought up from the Decode As dialog. My problem is that I can't see a consistent way to list all dissectors - some dissectors call register_dissector to put a named one in a global map that I can search, some call dissector_add to put the dissector in a particular dissector table, some call register_heur_dissector list. I'm not yet up to speed on the details of the relationships between protocols and dissectors - some seem to do none of the above.

Is there a simple way to list all the dissectors available? If not, I think I'd have to add a new collection of "all" dissectors built from several places (I'd have to investigate all the possibilities). This could be built the first time that it was required, and would tolerate finding the same dissector in two places (e.g. in the list of protocols or in the list of dissectors registered by name). Awkward, but free of side-effects.

Cheers

Doug




This message should be regarded as confidential. If you have received this email in error please notify the sender and destroy it immediately.
Statements of intent shall only become binding when confirmed in hard copy by an authorised signatory. The contents of this email may relate to dealings with other companies within the Detica Group plc group of companies.

Detica Limited is registered in England under No: 1337451.

Registered offices: Surrey Research Park, Guildford, Surrey, GU2 7YP, England.