Jaap Keuter wrote:
On Fri, 22 Oct 2004, Guy Harris wrote:
Filonenko Alexander-AAF013 wrote:
Protocol does not carry versioning info, so it is the user who has to make a
choice of what protocol version needed before Ethereal start.
If you have a single dissector that dissects all versions, with a
preference setting to specify which version, the user doesn't have to
choose before starting Ethereal - they can change it while Ethereal is
running.
Which would be nice if you have a unified source.... But than it would be
riddled with version selection logic, making it _very_ difficult to
maintain.
Why don't you put each version of your protocol into one file, and put
all these file into *one* plugin. The user can then select one of the
versions (files) using a preference setting at runtime.
This won't add a big selection logic to your plugin. Ok, the plugin will
become a bit larger, but that shouldn't be a big issue.
I'm in a similar situation as Alexander is. The protocol get changed, and
I can accomodate the change requests on the plugin very quickly, but older
captures may become unreadable.
It would be nice to have a system which used the version information in
the plugin to be able to select the desired version of the dissector.
This could be done in a similar way as enabling/disabling dissectors is
done. The defacto version numbering standard should make it easy to
select the latest vesion dissector by default.
I really don't like that approach, because you want to use a mechanism
which is not designed to be used that way.
This will complicate things for *all* users, as every option added
requires the user to make a decision.
I would think, the approach you outlined is a complete maintainance
nightmare, independant of the way you choose.
Regards, ULFL