Hi,
Rather than building a translator like idl2eth which will create C code, how
about a runtime/end-user method of adding dissectors. The problem with any
scheme that generates C code is that you still need to compile Ethereal to
use your new dissector. Unfortunately compiling Ethereal is not trivial on
some platforms (e.g. Windows) and anyone who can get it to compile probably
could have written their dissector directly in C anyway.
Both Analyzer and Airopeek have a meta-language which is used to describe
protocols and users can add their own protocols simply by providing files in
this format. I have some colleagues who would have no idea how to compile
Analyzer, but they have managed to add dissectors for the Bluetooth protocol
suite using the built in protocol-description-language.
The drawback of a non-compiled solution is speed, but personally I would
give up some speed for the advantage of being able to quickly add a
dissector for a new protocol.
My preference would be to use a scripting language, such as lua
(www.lua.org), to describe the protocols. It is well suited to describing
data structures, such as simple arrays of fields, but because it is a
scripting language you can write as much or as little code as you like to
handle complicated protocols.
Regards,
Chris.
----- Original Message -----
From: <andreas.sikkema@xxxxxxxxxxx>
To: "Jason House" <jhouse@xxxxxxxxx>
Cc: <ethereal-dev@xxxxxxxxxxxx>; "Ph. Marek" <philipp.marek@xxxxxxxxxx>
Sent: Wednesday, December 18, 2002 9:27 AM
Subject: Re: [Ethereal-dev] Easier dissector building
> > It's definitely do-able to have an automated tool to write dissectors
> > for you.
>
> Exactly. I have adapted an ASN.1 compiler to generate code that
> can be used for an Ethereal dissector. It took me a couple of
> months of hard work, but you can do it ;-)
>
> And then it still needs some manual work....
>
> --
> Andreas
>
>
> _______________________________________________
> Ethereal-dev mailing list
> Ethereal-dev@xxxxxxxxxxxx
> http://www.ethereal.com/mailman/listinfo/ethereal-dev
>