On Mon, Oct 21, 2002 at 11:51:05PM +0000, Pia Sahlberg wrote:
> Guy wrote:
> >It'd also be nice to be able to run taps from menu items; a
> >re-dissection pass would be made through all the packets when
> >the menu item is selected, with the tap listener being called.
>
> Do you mean that the tap should react to actually selecting the menu
> item, or just when a tap listener has been started from the menu?
When you select the menu item, Ethereal should start scanning through
all packets, dissect each packet, and hand it to the tap.
The tap in question wouldn't necessarily be one that was selected from
the command line; this is a way to get statistics, etc. that you didn't
ask for when you started Ethereal.
> >In addition, it'd be nice to have a tap that requires *no* dissector
> >changes, and that just gets handed a protocol tree - or that registers >a
> >set of fields and gets handed some data structure with the values of
> >those fields, if present.
>
> What dissector tree?
> Do you mean the epan_dissect_t *edt variable?
I was just thinking of edt->tree.
> I did not know that that variable was useful.
It would be useful for a tap that didn't involve any changes to
dissectors to cause stuff from the dissector to be passed to the tap.
> No dissector changes, or no specific protocol?
No dissector changes *at all* - the idea is to let somebody add a new
tap operation without having to change any dissectors (or, if the tap
operation is a plugin, without changing Ethereal at all).
That might let you implement "Protocol Hierarchy Statistics" as a tap.