use window_new instead of dlg_window_new for the statistics windows
(as these are no dialog windows)
do some code cleanup
svn path=/trunk/; revision=10979
(including remebering of the dialog size in recent file).
for a first step, I replaced all window_new() calls from dialogs
into dlg_window_new() ones, and removed all gtk_window_set_position
calls, this should be done in a more generalized way
svn path=/trunk/; revision=10964
called "IO stats" now "Throughput Graph" as this might be somewhat more descriptive IMHO.
Same applies to the "TCP Stream Analysis" -> "TCP Stream Graphs"
svn path=/trunk/; revision=10203
now sorted by ISO-layer, than alphabetically (now longer by functionality).
Seperated the tap registering from the actual menu making stuff,
so the seperate step of registering the tap and the menu is no longer needed.
Removed all things related to this double registering.
svn path=/trunk/; revision=10180
the title, and arranges to set the icon for it. Use that instead of
"gtk_window_new()" and separate calls to set the title and arrange to
set the icon.
Regularize #includes a bit.
Clean up white space.
svn path=/trunk/; revision=10054
"tap_menu.h" file, and have the Ethereal taps include that rather than
"menu.h", so we don't have to worry about making sure we've included
<stdio.h> to define FILE, etc. just because some "menu.h" functions
require it.
svn path=/trunk/; revision=10031
filter expressions; use that in a number of places, so we use the same
alert box. (More work is needed to figure out the right way to handle
some other "dfilter_compile()" failures.)
Use the error message from the display filter as the primary error, as
that's the message that tells you what the underlying problem is. (The
GNOME HIG says "In most situations the user should only need the primary
text to make a quick decision", so the primary text should tell you
what's wrong with the filter, not just that it's invalid. If there are
messages from the display filter code that don't give enough
information, or are a bit cryptic, such as "Unexpected end of filter
string," those should be fixed in the display filter code.)
Improve the error used if an empty filter is used for "find frame".
svn path=/trunk/; revision=10025
"simple_dialog()"; NULL might be #defined to be a pointer expression on
some platforms, causing compiler warnings (and, on platforms where a
null pointer doesn't have all its bits 0, possibly causing misbehavior,
although I don't think there are any such platforms on which Ethereal
runs).
Don't allow 0 as button mask argument to "simple_dialog()".
Squelch a compiler warning.
Report fatal problems as errors, not warnings.
Report file I/O errors with "file_open_error_message()".
Report file write errors (including those reported by "close()", e.g.
some errors writing to an NFS server) when saving raw packet data to a
file.
svn path=/trunk/; revision=9915
them and running all taps on them, but not reconstructing the packet
list. Use that in the IO-stat tap rather than "redissect_packet()"; the
latter does more work and redraws the display, neither of which are
necessary.
Call the filter callback when the Calc field is changed, to redraw the
graphs; that change also fixes things so that it's called when the
Filter field is changed.
Rename the "filter_button" member of an io_stat_graph_t to
"filter_field", as it's not the "Filter:" button, it's the text field
containing the filter expression.
svn path=/trunk/; revision=9659
"gtk_iostat_reset()" call it, and have calls to
"gtk_iostat_reset(&io->graphs[0])" just call "io_stat_reset(io)".
Add a routine "io_stat_draw()" to draw an io_stat_t; have
"gtk_iostat_draw()" call it, and have calls to
"gtk_iostat_draw(&io->graphs[0])" just call "io_stat_draw(io)".
Add a routine "io_stat_redraw()" to set the "needs_redraw" flag on an
io_stat_t and call "io_stat_draw()" on it, in order to force a redraw.
Use that in place of set flag/io_stat_draw pairs.
Add a routine "enable_graph()" to set an io_stat_graph_t's display flag
to TRUE and register a tap listener for it, and add a routine
"disable_graph()" to, if an io_stat_graph_t's display flag is set, clear
it, remove its tap listener, and turn its display button off. Use
"disable_graph()" to disable graphs, rather than just turning the
display flag off, so that we ensure that the invariant "tap listener
present iff graph enabled" is preserved - the code to destroy an io-stat
window only removes tap listeners for enabled graphs, so it depends on
that invariant being preserved.
Check the validity of a display filter by compiling it, not by going
through the whole sequence of registering a tap listener.
svn path=/trunk/; revision=9656
structure, rather than separately allocating "fvalue_t"s and having the
"field_info" structure point to them - this appears to speed up protocol
tree construction a bit.
svn path=/trunk/; revision=9146
return "<no file>" if there is no file loaded yet instead of crashing in io-stat
io-stat only print the label for the top tick on the y axis to make it look less cluttered
svn path=/trunk/; revision=8781
See manpage (hopefully manpage does not reformat my nice ascii graph)
While Service Response Times and the MIN/MAX/AVG thing in io-stat are measurements on the server load. The new measurement type LOAD is a measurement of Client LOAD.
Or rather, it is an attempt to measure client LOAD by measuring how much concurrency in its requests the client generates. It the client is slow in starting new i/o when a previous i/o has completed, this willb e indicated by the concurrency being lowered.
it is an experiment. i am not aware of any other attempts in deducing client workload from looking at captures.
svn path=/trunk/; revision=8706
in preparation of more features.
The most visible changes are
graps drawn as sawtoots instead of bars.
relative times (mainly used for response times FT_RELATIVE_TIME) will be plotted as time measured in "s" "ms" or "us" on the y axis
future updates may be smoothed graphs and better relative time support
svn path=/trunk/; revision=8676
Rename "max_count_types and "max_calc_types" to "count_type_names" and
"calc_type_names", to make it clearer what they are.
For the advanced statistics, give different error messages for the case
where no field name was specified and where an invalid field name was
specified.
Give better error messages for the cases where the calculation type
isn't supported for a particular field.
Initialize the calculation type for a given field.
svn path=/trunk/; revision=8630
IO-Stat failed to produce Advanced/COUNT(*) statistics for fields of type FT_NONE.
Fixed.
Now it is possible to do :
Advanced/COUNT(*) Filter:tcp.analysis.retransmission Field:tcp.analysis.retransmission
Advanced/COUNT(*) Filter:tcp.analysis.duplicate_ack Field:tcp.analysis.duplicate_ack
And it will plot the number of Retransmissions and Duplicate ACKs seen in each time interval.
svn path=/trunk/; revision=8609
"set_menus_for_selected_packet()" and
"set_menus_for_selected_tree_row()", and have them decide whether to
enable or disable menu items based on whether that structure indicates
that a packet or field is selected and, if one is, on its properties.
Pass to the "selected packet enabled" routine for a menu item the
"frame_data" and "edt" members of the "capture_file" structure, and pass
to the "selected tree row enabled" routine the "field_info" member of
that structure.
Clear "cf->current_frame" if no packet is selected.
svn path=/trunk/; revision=8525
or disabled based on a currently-selected packet (or lack of same) or a
currently-selected protocol tree item (or lack of same). Not currently
used, but necessary if we ever make the TCP graph stuff a tap. API is
tentative and subject to change.
Also, enable and disable taps based on whether we have any packets to
process.
svn path=/trunk/; revision=8498
Tools/Statistics; change the taps to put things under Statistics
themselves. That allows taps to go elsewhere if appropriate.
svn path=/trunk/; revision=8488