Commit Graph

68 Commits

Author SHA1 Message Date
Ulf Lamping d30d0edf20 added a "Close" button to the dialog
svn path=/trunk/; revision=10221
2004-02-24 17:53:40 +00:00
Ulf Lamping 25510cf209 changed title and menu registering to "IO Graphs"
and changed some of the labels to be more intuitive

svn path=/trunk/; revision=10207
2004-02-23 22:26:07 +00:00
Ulf Lamping 09f8a69e4c Changed all items to "Endpoint List" and get rid of the "Host List" group.
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
2004-02-23 20:28:31 +00:00
Ulf Lamping ed6148660b statistics menu redesigned, now looking more like the former menu,
items now again grouped by function, not by ISO layer

svn path=/trunk/; revision=10202
2004-02-23 19:19:39 +00:00
Ulf Lamping cdebea69ce Redesigned the menu structure of the former statistics stuff,
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
2004-02-22 18:47:04 +00:00
Guy Harris 36ece5a17a Add a "window_new()" routine that creates a window of a given type, sets
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
2004-02-13 00:53:37 +00:00
Guy Harris 6b1a0bf430 Most taps that now include "tap_menu.h" no longer need to include
<stdio.h> to define FILE; get rid of the include.

svn path=/trunk/; revision=10034
2004-02-11 04:28:49 +00:00
Guy Harris 8e4a1c1cc6 Move the declaration of "register_tap_menu_item()" into a new
"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
2004-02-11 04:17:05 +00:00
Guy Harris c7fd1b2b13 Add a routine to be used to put up alert boxes for invalid display
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
2004-02-11 00:55:28 +00:00
Guy Harris 1980fa5dbf Pass ESD_BTN_OK rather than NULL as a second argument to
"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
2004-01-31 03:22:42 +00:00
Ulf Lamping e3dd2f5472 use stock buttons whereever possible,
added some ethereal specific stock icons

svn path=/trunk/; revision=9763
2004-01-21 03:54:32 +00:00
Guy Harris 4dd10c6687 Add a routine "retap_packet()" that runs through all packets, dissecting
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
2004-01-13 22:34:10 +00:00
Guy Harris 053ec89a5d "dfilter_compile()" supplies a null dfilter pointer for an empty filter
expression; don't assume it always supplies a non-null pointer.

svn path=/trunk/; revision=9657
2004-01-13 21:10:38 +00:00
Guy Harris 982a4976c7 Add a routine "io_stat_reset()" to reset an io_stat_t; have
"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
2004-01-13 21:04:52 +00:00
Ulf Lamping ba3b94790d removed some MSVC warnings (level 3)
svn path=/trunk/; revision=9560
2004-01-05 18:11:28 +00:00
Richard Sharpe 5d7261eb78 Make Analyze/Statistics have an accelerator of Alt+A S and move
Analyze/Summary to Alt+A Y.

svn path=/trunk/; revision=9537
2004-01-03 18:05:57 +00:00
Ulf Lamping 467c05b3ea removed some MSVC warnings (conversions between double/float and int)
svn path=/trunk/; revision=9422
2003-12-23 00:16:46 +00:00
Guy Harris ac48df79f2 From Lars Roland: have common code to handle display filter dialogs in
taps, and use that in the H.225 taps.

svn path=/trunk/; revision=9327
2003-12-17 22:13:08 +00:00
Olivier Abad abb4aec1fe Use gtk compatibility macros (from compat_macros.h) instead of some gtk+
v1.2 functions which are deprecated in gtk+ v2.

Update OBJECT_SET_DATA macros to cast "data" to (gpointer).

svn path=/trunk/; revision=9296
2003-12-16 18:43:35 +00:00
Guy Harris fbcaaa19f2 From Ronnie Sahlberg: support iostat graphs with 1ms resolution.
svn path=/trunk/; revision=9283
2003-12-14 10:24:24 +00:00
Guy Harris bd9f96738c From Didier Gautheron: put an "fvalue_t" structure into a "field_info"
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
2003-12-02 21:15:49 +00:00
Guy Harris 0a7b08c9e9 Don't draw a Y-axis label if you haven't constructed the label string.
svn path=/trunk/; revision=8792
2003-10-27 23:12:53 +00:00
Ronnie Sahlberg c1ffe5216e Update to cf_get_display_name()
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
2003-10-26 03:09:03 +00:00
Ronnie Sahlberg 532bd00bbb Client LOAD measurement for io-stat
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
2003-10-15 13:10:54 +00:00
Ronnie Sahlberg 84c54268e0 Remove the unnecassary HashTable and use gtk_object_[get|set]_data
to keep track of which io structure a certain draw area is associated with.

svn path=/trunk/; revision=8704
2003-10-15 08:41:41 +00:00
Ronnie Sahlberg 3531b70362 remove an extra ';' to keep visual studio happy
svn path=/trunk/; revision=8703
2003-10-15 08:25:29 +00:00
Ronnie Sahlberg 8efb17b1b7 update to iostat,
added new plot style: filled bar

svn path=/trunk/; revision=8695
2003-10-14 10:34:58 +00:00
Ronnie Sahlberg d2097c1c88 remove the redundant count_type structure as part of the iostat cleanup
svn path=/trunk/; revision=8694
2003-10-14 10:01:00 +00:00
Ronnie Sahlberg e9df6cc9df further cleanup
remove redundant structure for yscale_max

svn path=/trunk/; revision=8693
2003-10-14 09:55:40 +00:00
Ronnie Sahlberg e7335134a0 further cleanup
remove the redundant pixels_per_tick structure

svn path=/trunk/; revision=8692
2003-10-14 09:27:42 +00:00
Ronnie Sahlberg be546393cc Simplify handling of tick val
remove unnessecary code and structures    cleanup

svn path=/trunk/; revision=8691
2003-10-14 09:15:51 +00:00
Ronnie Sahlberg 61e4447e89 update to iostat
add different styles to draw the plot

svn path=/trunk/; revision=8689
2003-10-14 09:03:03 +00:00
Ronnie Sahlberg 2bd1015a37 Further updates/rewrite of iostat
getting closer to add useful features

svn path=/trunk/; revision=8679
2003-10-12 04:20:03 +00:00
Ronnie Sahlberg c646041d36 minor cleanup and update for printing the y scale as time in units of s,ms and us
svn path=/trunk/; revision=8678
2003-10-11 23:17:46 +00:00
Ronnie Sahlberg a5158ca967 Massive update of the _draw() routine in iostat
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
2003-10-11 11:23:52 +00:00
Guy Harris 3a0d0dcbc1 Rename "max_tick_values" to "tick_interval_values", to make it clearer
what it is.

svn path=/trunk/; revision=8631
2003-10-06 22:13:36 +00:00
Guy Harris 1d27a3d370 Make the "needs_redraw" flag a gboolean, as it's a Boolean flag.
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
2003-10-06 22:10:42 +00:00
Ronnie Sahlberg 3ef7004826 Fix to IO-Stat.
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
2003-10-04 03:10:18 +00:00
Guy Harris 59938a45fe Assorted GUI cleanups.
svn path=/trunk/; revision=8544
2003-09-26 02:09:44 +00:00
Guy Harris 4e64afcb25 Pass a pointer to a "capture_file" structure to
"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
2003-09-24 02:36:35 +00:00
Guy Harris e8e9f1bdfe Provide a mechanism by which a tap can arrange to have its menu enabled
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
2003-09-19 07:24:39 +00:00
Guy Harris 1513888c99 Have "register_tap_menu_item()" put the item under Tools, not
Tools/Statistics; change the taps to put things under Statistics
themselves.  That allows taps to go elsewhere if appropriate.

svn path=/trunk/; revision=8488
2003-09-17 19:39:34 +00:00
Guy Harris f56d16abab Add a routine to return the display name for a "capture_file" structure,
rather than constructing that name when a capture file is opened and
putting a pointer to it in that structure.

svn path=/trunk/; revision=8476
2003-09-15 22:16:08 +00:00
Guy Harris 673e47d4a9 Keep a "display name" as part of a capture_file structure; for live
capture temporary files, it's "<capture", and for saved capture files,
it's the last component of the pathname of the file.  Use that in
various places when displaying the file name.

svn path=/trunk/; revision=8474
2003-09-15 20:37:37 +00:00
Guy Harris 7bfaf8caf3 From Graeme Hewson:
Don't crash if "-z" is used on the command line when a live
	capture is being done (e.g., with "-k -S" - in that case,
	"cfile.filename" is null when the window is created), just don't
	display the file name in the title.

	Don't set the title of a non-existent window - create the window
	first.

svn path=/trunk/; revision=8472
2003-09-15 19:05:01 +00:00
Ronnie Sahlberg b0bec4d79a When putting the filename in the titlebar
just put the filename there and not the full path to the file.

svn path=/trunk/; revision=8329
2003-09-02 08:27:43 +00:00
Ronnie Sahlberg cd016e69a9 Update to IO-Stat to put the capture filename on the titlebar
to make it easier to navigate when having multiple instances of ethereal
and io-stat open
at the same time.

Updates to all endpoint talkers and service response time windows to do this as well.

Bonus, when the user opens a new capture file when having these windows open,
the title bar will be updated to reflect the name of the new capture file.

svn path=/trunk/; revision=8251
2003-08-25 11:06:32 +00:00
Guy Harris 1b872b3648 Make "register_tap_listener()" return NULL on success and a "GString *"
referring to a GString containing an error message on failure, and don't
have it print anything on failure.

If it fails, have its Tethereal-tap callers print an error message
before exiting, and have its Ethereal callers pop up a dialog box with
the error (except in cases where the failure is guaranteed not to be the
user's fault, and where we exit, in which case we just print an error
message before we exit).  In all cases, the error message includes the
text of the GString.

Fix a scanf format string in the DCE RPC statistics Ethereal tap, so
that it properly skips the comma before the filter string.

Fix some Ethereal error messages not to say "tethereal".

svn path=/trunk/; revision=7542
2003-04-23 08:20:06 +00:00
Guy Harris 81ebec370d Have "register_tap_menu_item()" create submenus as necessary for a menu
item.

Convert all Ethereal (GUI) taps to use "register_tap_menu_item()" rather
than having hardcoded menu items in "gtk/menu.c".

svn path=/trunk/; revision=7541
2003-04-23 05:37:23 +00:00
Guy Harris 4cfd8b0f36 Allow taps to have menu item registration routines; the menu item
registration routines, for taps with menu items (taps that can be run
from the "Tools->Statistics" menu), create the menu item for the tap.
"make-tapreg-dotc" constructs a "register_all_tap_menus()" function that
calls all the tap menu item registration routines it finds, and Ethereal
calls that routine after the main window has been constructed (so that
the main menu exists, as the menu items are added to it).  (Tethereal
doesn't call it.)

Get rid of the "menu" and "menu_init" arguments to
"register_ethereal_tap"; the menu item is registered in the tap's menu
item registration routine, not in its main registration routine.

Have the RTP GUI tap register its menu item that way, rather than by
having it compiled into "gtk/menu.c".  (We're not ready yet to have taps
whose menu items are under a submenu register themselves in that
fashion, as "register_tap_menu_item()" can't yet create submenus.)

svn path=/trunk/; revision=7540
2003-04-23 03:51:03 +00:00