Hi list
I have checked in a few new features using the new tap system to produce
onc-rpc statistics as examples on how to use it.
Currently there is support in tethereal for two types of statistics
-z rpc,rtt,<program>,<version>
-z rpc,programs
and in the Gtk2 version of ethereal for
-z rpc,rtt,<program>,<version> (can also be enabled via Tools)
The Gtk2 version does require you to rescan the packetlist before the
windows get updated
either by reapplying a (empty) display filter or by reloading the capture.
I didnt do Gtk2 ethereal rescan the packetlist automatically since for large
captures this takes
a long time and you might want to enable many instances of it before you
rescan it ONE time.
I dont plan to port this to the Gtk1 version of ethereal, but if someone
else wants to do this
these are the issues:
* Gtk2 is multithreaded, it uses a separate low-priority thread created in
gtk2/main.c
to call draw_all_listeners() at regular intervals. This function is used to
do on demand
redraw of all windows in the background. Gtk1 is single threaded.
* Gtk1 would need some facility to call draw_all_listeners() at regular
intervals,
perhaps via a timer that triggers a signal handler? But this would mean that
the window updates would be made in the main thread thus affecting
performance and responsiveness of the
main application while the windows are being redrawn.
* If Gtk1 ethereal gets this facility by using a timer or something else
non-thread solution
you will have to remove the mutex shared between gtk2/main.c and
gtk2/gtk2-rpcstat.c since
it is no longer needed.
* Then just copy gtk2-rpcstat.[ch] to gtk1 and rename them (and remove the
mutex), also
copy the changes in menu.c and main.c related to parsing the command line.
Very primitive tests have shown no perceivable performance impact on the
ethereal application
while using taps. As long as one does not specify display-filter strings to
the tap system
when registering a tap listener.
Perhaps we soon could just focus on Gtk2 and drop Gtk1? Are there many
systems which
can not upgrade to Gtk2/Glib2
Oh, if someone want to rename everything in tap.c to something better,
PLEASE go ahead.
I could not come up with anything better than tap and tap-listeners.
I belive the functions in tap.c should all be renamed to something better
but am not capable of
coming up with what those names should be.
Right now i just wait for the legions of potential ethereal contributors to
implement heaps
of tethereal and gtk2 statistics and extensions.
best regards
ronnie sahlberg