Ethereal-dev: Re: [Ethereal-dev] Arbitrarily choosing a protocol
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
Yann Samama wrote:
Is it possible to call an upper-level dissector from a lower-level
dissector even if the upper-level dissector has not registered itself by
its name?
Not unless the upper-level dissector has registered itself in a
dissector table and your lower-level dissector can use that dissector
table. For example, if the lower-level protocol header includes an
Ethernet type field, it can use the dissector table for Ethernet types
(and, in fact, *should* do so, rather than handling the Ethernet type
itself).
My goal is to achieve this without modifying the source code of the
upper-level dissector.
Given that Ethereal is free software, why is that a goal? If you need
some particular dissector to register itself by name, you could just
modify Ethereal to do that, and send us a patch so that, in the next
release, you don't have to modify Ethereal. This means that your
lower-level dissector won't work with an unmodified Ethereal, so you
might have to build it yourself for the platforms on which it needs to
run until a release comes out with your change, but if you can live with
that restriction....