Koen Smets wrote:
After reading some docs about developing plugins and tapping systems,
we noticed that most of the information is concerning about new
protocol dissectors (that's not what we're looking for, isn't?) and so
we didn't found an answer to our main problem: getting data from
ethereal in a proper manner.
Currently, the only plugins Ethereal supports are dissectors. At some
point, it'd be nice to have plugin taps as well, although for that we'd
either need to
1) have a way to have taps that don't directly have GUI code (such as a
way to have a tap that computes some statistics and displays them just
register a table to hold the statistics, with Tethereal printing them
and Ethereal displaying them)
or
2) keep different types of plugins separate, so Tethereal can load only
the ones that lack GUI code.
(We might want both, as the first of those would make it easier to write
statistical taps and would let some of the Tethereal and Ethereal taps
merge, and the second of those might be necessary if all dissectors ahve
to be registered before all taps.)
If this wasn't already hard enough, we also need a way to handle
events like clicking on a packet in sequence diagram -> highlight
packet details in ethereal...
(we thought to write some kind of protocol and also use sockets to get
that job done , but therefore I think we need to bind some callbacks
from Ethereal)
It sounds as if what you really want is a way to make Ethereal
"drivable" from outside, using e.g. COM (or something COM-based, as I
think ActiveX is) on Windows, perhaps KParts in KDE and Bonbo in GNOME
(if they allows this), Apple Events in OS X, etc..
We currently don't have that. It'd need something in Ethereal's event
loop so that it can respond to "events" from outside Ethereal as well as
UI input events.