> I would like to use ethereal to display a custom
> protocol that's on top of UDP or TCP. I have existing
> code to interpret the data. Is there a ways to extend
> ethereal to display the custom protocol layer and call
> the external code for interpretation, without
> recompiling the whole thing?
That depends on what you mean by "external".
You can write a plug-in dissector module - but that would require that
you change your existing code into the standard Ethereal form for a
dissector module, or write some code that works just like a standard
Ethereal dissector module and calls your code. There's no mechanism for
plugging in, say, another *program* as a dissector for some protocol.
See, in the Ethereal source code tree, the "plugins" directory, and the
directories underneath it, for examples of how to write a plug-in
dissector module; see also the "README.design", "README.developer",
"README.plugins", and "README.tvbuff" files in the "doc" directory.
You won't have to recompile Ethereal, in its entirety, to make a plugin
dissector.
> If I need to write C code to extend ethereal, can
> someone tell me what compiler to use on Windows?
Microsoft Visual C++ 6.0 has been used; 5.0 might also work. I don't
know whether anybody's successfully used any other compiler (GCC from
Cygwin, Borland compilers, etc.) - I haven't heard any reports of
anybody having done so.