Commit Graph

333 Commits

Author SHA1 Message Date
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
Guy Harris af8cfdb6aa Mark arguments as unused.
Clean up indentation.

svn path=/trunk/; revision=9532
2004-01-03 05:13:12 +00:00
Ulf Lamping b81609e779 recent files: make submenu insensitive if empty and
add a menu item to clear the list

svn path=/trunk/; revision=9524
2004-01-02 17:27:00 +00:00
Guy Harris 4b37928246 Make the "max count of recently-visited files" preference unsigned.
Get rid of an unused variable.

Fix up whitespace.

svn path=/trunk/; revision=9475
2003-12-29 19:59:05 +00:00
Richard Sharpe 015681b24e Connect the recent_file_count_max variable to the prefs.gui_recent_file_count_max variable entry, and fix a small spelling/grammar mistake.
Now all we need is some enterprising individual to write the small amount of
preferences code to actually allow it to be changed etc, but I have to go to
Costco, so, later...

svn path=/trunk/; revision=9463
2003-12-28 21:10:26 +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
Ulf Lamping 55e4a8112f removed some MSVC warnings (casting gdouble to gint, which is ok)
svn path=/trunk/; revision=9319
2003-12-17 20:28:49 +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
Ulf Lamping 5321986b03 if user clicks recent capture file item, and this file no longer exists,
remove the menu item

svn path=/trunk/; revision=9289
2003-12-15 06:38:48 +00:00
Ulf Lamping 156be8aa9f added "most recently used" lists for
"opened capture files" and "display filter used",
the settings will be saved in the file "recent" in the users config path

svn path=/trunk/; revision=9275
2003-12-13 18:01:30 +00:00
Ulf Lamping 4b890b83fd print system enhanced, more print ranges and expanded states
svn path=/trunk/; revision=9223
2003-12-09 22:41:07 +00:00
Ulf Lamping 26ac41f3dd moved "File->Save Highlighted Data" to "File->Export->Raw Packet Data"
svn path=/trunk/; revision=9199
2003-12-08 19:25:01 +00:00
Ulf Lamping 32d83ab647 removed seperator between the two print menuitems
svn path=/trunk/; revision=9197
2003-12-08 17:49:20 +00:00
Guy Harris 95ea8dbdec From Greg Morris: the "File->Save Highlighted" menu item has no icon, so
don't use "ITEM_FACTORY_STOCK_ENTRY()" for it.

svn path=/trunk/; revision=9155
2003-12-03 19:59:28 +00:00
Guy Harris dcd98ae8d3 The "ptr_u" unions no longer have a "next" pointer - they now just have
one member - or have one that's not used, so get rid of those unions.

svn path=/trunk/; revision=9151
2003-12-03 09:28:26 +00:00
Richard Sharpe a168545845 Fix the accelerator issue ...
svn path=/trunk/; revision=9124
2003-12-01 01:57:14 +00:00
Richard Sharpe 45f226fc2c Rename that to Save Highlighted with Ctl-H as the accellerator.
svn path=/trunk/; revision=9121
2003-11-30 04:40:19 +00:00
Richard Sharpe d9cb6a9d64 Add Save Selected as a menu item in the File Menu.
This still has a way to go, though, because the menu item should be greyed out
until something is Highlighted.

svn path=/trunk/; revision=9120
2003-11-30 04:37:50 +00:00
Richard Sharpe 114c52bf0b Move print_file_cb out of gtk/print_dlg.c and into gtk/file_dlg.c and
rename it to select_file_cb to reflect its function.

While this cleans things up a bit, I am still not happy because now
filter_prefs.h must be included before file_dlg.h just to get
construct_args_t.

svn path=/trunk/; revision=9119
2003-11-30 04:21:55 +00:00
Richard Sharpe fa68b4af87 Properly capitalize the string for the menu item.
svn path=/trunk/; revision=9117
2003-11-29 06:15:05 +00:00
Richard Sharpe 02087e332f Add an entry in the byte_view pane that allows the user to save the highlighted
data to a file. This allows the user to select some stuff, and analyse it with
external tools, and is very useful for quickly prototying dissectors etc.

This works by retrieving the info that is needed to define where the selected
region is.

It puts up a dialog box that asks for the file to save in.

However, it is an ugly hack, because it reuses print_file_cb, while
print_file_cb should be moved into file_dlg.c.

It also needs to have some warning dialogs put up in error cases.

Finally, it would be good to be able to select a region in the byte_view,
which you can do with click and drag, and then have a menu item to save the
selected bytes.

svn path=/trunk/; revision=9116
2003-11-29 06:09:54 +00:00
Ulf Lamping 1ef427d649 renamed frame to packet in all GUI elements
moved "Enabled Protocols" and such
from "View" to "Analyze" toplevel menu

svn path=/trunk/; revision=9114
2003-11-28 19:13:25 +00:00
Ulf Lamping ad6b446228 Redesign of the whole menu structure, to be more intuitive to the user and
conforms somewhat better to the Gnome Human Interface Guideline

svn path=/trunk/; revision=9100
2003-11-27 20:34:01 +00:00
Guy Harris 122dd3959c Make the recent epan/proto.{c,h} change compile.
svn path=/trunk/; revision=9075
2003-11-24 22:11:55 +00:00
Ulf Lamping 007b97900c added supported_protos menu item
svn path=/trunk/; revision=9021
2003-11-19 00:04:15 +00:00
Guy Harris a8fc1d810d From Michael Lum: add <shift><control> hotkeys for Protocols and
Preferences.

svn path=/trunk/; revision=8975
2003-11-15 23:48:52 +00:00
Ulf Lamping 1a42ad1d50 GTK2 specific: use some Ethereal specific stock icons generated in toolbar.c
svn path=/trunk/; revision=8974
2003-11-15 11:46:09 +00:00
Guy Harris a37ef3e1e2 "File->Open" should be available whether or not we have a captue file
open.

The toolbar equivalent should *not* be available if we have an "Update
list of packets in real time" capture running.

The toolbar "Save" button should not be available if we don't have an
unsaved capture file.

svn path=/trunk/; revision=8902
2003-11-07 01:29:05 +00:00
Guy Harris 27b2678cca Make Shift+Control+S an accelerator for "Save As...", as per the GNOME
HIG.

svn path=/trunk/; revision=8901
2003-11-06 23:02:06 +00:00
Guy Harris ef74a0b574 If a tap menu item doesn't have a "selected_packet_enabled()" or
"selected_tree_row_enabled()" routine, enable it by default, so that
tap windows can be popped up even if you have no capture file.

Assorted code cleanups.

svn path=/trunk/; revision=8740
2003-10-20 22:28:22 +00:00
Olivier Abad daea60d65c From Olivier Biot : remove packet capture code when compiling without
libpcap.

svn path=/trunk/; revision=8726
2003-10-17 17:28:38 +00:00
Guy Harris a27dcb4e3f From Ulf Lamping: toolbar.
svn path=/trunk/; revision=8707
2003-10-15 19:40:42 +00:00
Ronnie Sahlberg 3d32354336 Updates to TimeReference Frames
Add a Goto Next/Previous  time reference menu option

svn path=/trunk/; revision=8657
2003-10-10 08:39:24 +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 dd628e00c7 Make "finfo_selected" a member of a "capture_file" structure rather than
an independent global variable.

svn path=/trunk/; revision=8524
2003-09-24 00:47:37 +00:00
Ronnie Sahlberg 6ac634b8f0 Update the menu text for Time Reference and give it a hot-key : ctrl-T
svn path=/trunk/; revision=8512
2003-09-22 09:08:42 +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
Ronnie Sahlberg 007d873671 Added TimeReference frames.
One can now select a packet and mark it as a TimeReference packet using the menu.
A TimeReference packet will be indicated by having all timestamp related column entries replaced by the string *REF*
A TimeReference packet will always be displayed in the packet pane, and overrides any display filters.

When a frame is a TimeReference frame, all later frames will calculate the TimeRelativeToFirstPacket  relative to the timestamp of the TimeReference frame instead of the first frame of the capture.

You can have any number of TimeReference frames you like.

svn path=/trunk/; revision=8459
2003-09-12 02:48:23 +00:00
Guy Harris e22b6afeb7 From Matthijs Melchior:
make the "Help" menu the rightmost menu item, as is done in

		recent versions of Windows;

		Mac OS X;

		recent versions of KDE;

		recent versions of GNOME;

	rather than making it an item on the far right side.

	Make the "Protocol" display in the help mention the number of
	entries, and give it has 3 columns, starting with the one that
	was used to sort this list.

	Make the "Display Filters" display mention the number of fields
	for each protocol and at the end the total number of fields.
	Give it 4 columns, including the 'blurb'.

	List all fields with the correct protocol.

svn path=/trunk/; revision=8253
2003-08-25 21:42:33 +00:00
Guy Harris ca318813a4 Rename "proto_alloc_dfilter_string()" to
"proto_construct_dfilter_string()", to more accurately reflect what it
does.

Give it, and "proto_can_match_selected()", an "epan_dissect_t *"
argument, which replaces the raw data pointer argument to
"proto_construct_dfilter_string()".

For fields that don't have a type we can directly filter on, we don't
support filtering on the field as raw data if:

	the "epan_dissect_t *" argument is null;

	the data source tvbuff for the field isn't the tvbuff for the
	"epan_dissect_t" in question (i.e., it's in the result of a
	reassembly, and "frame[N:M]" can't get at it).

Trim the length the raw data in the case of such a field to the length
of the tvbuff for the "epan_dissect_t" in question, so we don't go past
it.  Fetch the raw data bytes to match from that tvbuff.

Have "proto_construct_dfilter_string()" return a null pointer if it
can't construct the filter string, and have "protocolinfo_packet()" in
the tap-protocolinfo tap ignore a field if
"proto_construct_dfilter_string()" can't construct a filter string for
it - and have it pass NULL as the "epan_dissect_t *", for now.  If
somebody decides it makes sense to dump out a "frame[N:M] =" value for
non-registered fields, it can be changed to pass "edt".

svn path=/trunk/; revision=7635
2003-05-03 00:48:37 +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
Guy Harris 6b0b09b402 Add a routine to create a new menu item under "/Tools/Statistics" for
taps.  (It has to be called after we've created the main menu, but GUI
taps are registered before that so that they can be referred to by
command-line arguments, so that routine will only be usable if we have a
"register menu item" routine for all GUI taps.)

Disable the entire "/Tools/Statistics/MGCP" menu item, not just the
"RTD" item under it, if we don't have an "mgcp" tap.

svn path=/trunk/; revision=7539
2003-04-23 03:13:16 +00:00
Guy Harris 7d29272f54 The main menu "/Display/{Match,Prepare}" menu items, and the tree view
"{Match,Prepare}" pop-up menu items, should be enabled only if we have a
field selected.

The main menu item "/Tools/Statistics" should be enabled only if we have
a capture.

The packet list "Show Packet In New Window" pop-up menu item should be
enabled only if there's a packet selected.

svn path=/trunk/; revision=7523
2003-04-22 04:49:17 +00:00
Guy Harris 3a4644bf42 "gtk_item_factory_get_widget()" returns, for a menu item with a submenu,
the submenu widget, not the menu item widget.  For items with submenus,
set the sensitivity on the menu item widget, not the submenu widget, so
that the menu item is grayed out when not sensitive.

svn path=/trunk/; revision=7522
2003-04-22 04:02:49 +00:00
Guy Harris 5b8500241e Have "set_menu_sensitivity()" take, as an argument, a pointer to the
GtkItemFactory for the item it's modifying, with NULL meaning "all
pop-up menus".  Use the full path for the menu item in all such calls;
have separate calls for the main menu item and pop-up menu items as
necessary.

svn path=/trunk/; revision=7521
2003-04-22 00:16:58 +00:00
Guy Harris 7ddca7ecaf From Lars Roland:
Add Response-Time statistics for each known mgcp message-type.

	Fix a few bugs and remove trailing whitespace.

	Use "gdouble" for printing time-values and calculating the
	average.  It is easier to use and shouldn't overflow on big
	trace files like "guint32".

	Move some functions for time statistics into the new file
	timestats.c in the main directory.  This code may be useful in
	the rpc and smb rtt-taps as well.

svn path=/trunk/; revision=7469
2003-04-16 07:25:12 +00:00
Laurent Deniel 58a4a837e0 Move RTP Analysis to Statistics menu
(all taps should be located here especially
 very protocol specific ones)

svn path=/trunk/; revision=7299
2003-03-06 21:21:43 +00:00
Ronnie Sahlberg 05dad0c310 From Miha Jemec :
Functionality to reassemble a RTP stream and save it as a file.
Support for G.711 coded

svn path=/trunk/; revision=7297
2003-03-06 20:35:12 +00:00
Ronnie Sahlberg 48d3d8eb26 SMB RTT statistics for tethereal and ethereal.
SMB RTT statistics are similar to the RTT statistics already supported by ONC-RPC and DCE-RPC.
It will present a table with all seen SMB commands and present the Min/Max and Avg response time in ms.

Transaction2 and NT-Transaction commands are broken out and presented in its own subtables.

tethereal feature is activated with -z smb,rtt    switch
and in ethereal it is activated either through -0z smb,rtt switch or through the Menu.

svn path=/trunk/; revision=6966
2003-01-22 00:40:36 +00:00
Olivier Abad 5429cf9b3f Replace :
popup_menu_object = gtk_widget_new(GTK_TYPE_WIDGET, NULL);
with
popup_menu_object = gtk_menu_new();

so that ethereal runs with Gtk+ v2.2

svn path=/trunk/; revision=6879
2003-01-08 23:33:38 +00:00
Guy Harris 63a4260c9d Rename "Go To Specified Frame" to "Go To Corresponding Frame" (I'm not
sure there *is* a good name for it).

Put it in the "Tools" menu as well (although I'm not sure what top-level
menu it belongs in, or if it should get a new one).

Make those items sensitive only if there's an FT_FRAMENUM item selected
in the protocol tree pane.

Clean up some menu paths in "set_menu_sensitivity()" (not that it
matters, as only the last component, and the first component if it's a
menu factory name, are used).

svn path=/trunk/; revision=6803
2002-12-19 03:56:04 +00:00
Guy Harris a97b83a7f4 Add a new field type FT_FRAMENUM; an FT_FRAMENUM is a 32-bit unsigned
frame number, which is always decimal.  If you select an FT_FRAMENUM
field, there are menu items that let you go to the frame whose frame
number appears in that field.

Add FT_FRAMENUM fields for the ONC RPC "matching request is in this
frame" and "matching reply is in this frame" protocol tree items.

svn path=/trunk/; revision=6802
2002-12-19 02:58:53 +00:00
Ronnie Sahlberg 31f4e6b38f update for gui version of io-stat
the graph now has a scrollbar one can use to scroll the graph window

svn path=/trunk/; revision=6652
2002-11-17 11:43:40 +00:00
Olivier Abad 380bd12489 New gtk1/gtk2 compatibility macros used for menu entries.
svn path=/trunk/; revision=6641
2002-11-15 23:50:06 +00:00
Guy Harris fb67329086 Clean up the GTK+ 1.2[.x] menu items. (This really calls for another
"compat_macros.h" macro....)

Add some comments on #else's and #endif's to make it a bit easier to
follow the twisty maze.

svn path=/trunk/; revision=6637
2002-11-15 18:45:18 +00:00
Ronnie Sahlberg a361b76756 Gtk1 version of io-stat
svn path=/trunk/; revision=6636
2002-11-15 10:55:19 +00:00
Ronnie Sahlberg 76f5391acc Feature for Gtk2: GUI version of IO-STAT. Looks reasonable with one graph. Looks "sub-optimal" with multiple graphs overwriting eachothers.
We can just delete it later if it cant be improved visually.

svn path=/trunk/; revision=6629
2002-11-14 10:32:22 +00:00
Olivier Abad 189640857a In the gtk2 port, make double click in the tree view expand or collapse
a row.

svn path=/trunk/; revision=6615
2002-11-11 18:46:16 +00:00
Olivier Abad 29011060de Use gtk1/gtk2 compatibility macros to reduce #ifdefs.
svn path=/trunk/; revision=6610
2002-11-11 15:39:06 +00:00
Olivier Abad c2c5e20927 Replace gtk_rpcprogs_init with gtk_rpcprogs_cb in the gtk2 menu entry.
svn path=/trunk/; revision=6609
2002-11-11 12:37:15 +00:00
Ronnie Sahlberg b3e0a56390 First step in creating an API to register TAPs for use with ethereal instead of hardcoding them in main.c/menu.c
This adds functions to register the command line arguments to use the API in the same way as is done for tethereal.

Later it may be extended to also register the GUI/Menu entry point to ethereal using this api but that iwll be later since the changes required to menu.c are not as intrusive as the main.c command line parsing ones were.


Some of the latest changes (before this checkin) has made ethereal to produce lots of GTK errors when starting up the extension windows.
They were there before this checking but will be investigated.

svn path=/trunk/; revision=6566
2002-11-06 10:53:36 +00:00
Olivier Abad 05ef1fc475 Merge gtk and gtk2 directories.
svn path=/trunk/; revision=6552
2002-11-03 17:38:45 +00:00
Guy Harris 35c1970720 From Ronnie Sahlberg: Ethereal support for DCERPCSTAT.
svn path=/trunk/; revision=6499
2002-10-25 01:08:49 +00:00
Ronnie Sahlberg 5b2510fb8e Tap system supprot for Gtk1 and both rpc_stat and rpc_progs
Gtk1 is still single threaded so if the tap extensions need to do something
time consuming or cpu intensive, then the main application will suffer.

It is better than nothing.

svn path=/trunk/; revision=6215
2002-09-07 10:02:36 +00:00
Jörg Mayer e4a2e2cefe Include cleanups in gtk and gtk2:
Remove unneded includes
Add include wrappers where missing

svn path=/trunk/; revision=6191
2002-09-05 18:48:52 +00:00
Jörg Mayer 7c4176d868 Removed trailing whitespaces from .h and .c files using the
winapi_cleanup tool written by Patrik Stridvall for the wine
project.

svn path=/trunk/; revision=6117
2002-08-28 21:04:11 +00:00
Guy Harris d6d0a33cf7 Give the routines that implement the "Match" and "Prepare" menu items
more meaningful names, indicating whether they look at something in the
protocol tree or the packet list.

svn path=/trunk/; revision=6077
2002-08-24 01:17:09 +00:00
Jörg Mayer 96ab70e209 Replace the types from sys/types.h and netinet/in.h by their glib.h
equivalents for the gtk/ directory.

svn path=/trunk/; revision=5930
2002-08-02 22:34:54 +00:00
Guy Harris 71f8208bf9 From Didieer Gautheron:
Don't show progress bar for quick "Find Frame" searches
	Add "Find Next" and "Find Previous" to repeat searches

Add documentation for "Find Next" and "Find Previous".

svn path=/trunk/; revision=5378
2002-05-03 21:55:15 +00:00
Guy Harris ee5ca25d31 Include files from the "epan" directory and subdirectories thereof with
"epan/..." pathnames, so as to avoid collisions with header files in any
of the directories in which we look (e.g., "proto.h", as some other
package has its own "proto.h" file which it installs in the top-level
include directory).

Don't add "-I" flags to search "epan", as that's no longer necessary
(and we want includes of "epan" headers to fail if the "epan/" is left
out, so that we don't re-introduce includes lacking "epan/").

svn path=/trunk/; revision=4586
2002-01-21 07:37:49 +00:00
Guy Harris 0a03b0f73e Add a preferences page for the name resolution flags.
Separate the preferences value for those flags and the name resolution
code's value into separate variables; this means that the resolution
code no longer depends on the preferences code, and may let us
eventually have the current setting and the preference setting differ
(so that a user can temporarily override the preference setting without
causing subsequent saves of the preferences to save the temporary
value).

Add routines to create various types of widgets for preferences, and to
fetch the values for "enumerated" preferences, and use them both in the
code to handle hardwired preference pages and table-driven preference
pages.

svn path=/trunk/; revision=4536
2002-01-13 20:35:12 +00:00
Guy Harris 30a043931e From Jirka Novak:
Support for generating filter expressions based on packet list
	    column values
	Support for adding filter expressions generated from column or
	    protocol tree field values to the current expression rather
	    than replacing the current expression

svn path=/trunk/; revision=4522
2002-01-11 08:21:02 +00:00
Guy Harris feb5791d6a Have a routine to create a scrolled window, set its vertical scrollbar
preference, and add it to the list of scrolled windows; call that
routine to create scrolled windows, rather than creating it and calling
other routines to do the other two operations.

As "set_scrollbar_placement_all()" and "set_ctree_styles_all()" always
set the styles to match the user's preference, don't have them take an
argument, have them just use the user's preference settings.

Get rid of unnecessary includes of "prefs_dlg.h", replacing them with
includes of "prefs.h" if necessary.  Don't have "prefs_dlg.h" include
"prefs.h" - its sole purpose is to declare routines defined in
"prefs_dlg.c" - and add any additional includes of "prefs.h" this
requires.

Get rid of unnecessary includes of "prefs.h" and "gtkglobals.h".

Fix up white space.

svn path=/trunk/; revision=4521
2002-01-11 07:40:32 +00:00
Gilbert Ramirez 791f5774d0 Provide for per-protocol-tree data in the proto_tree code.
Put a hash-table of "interesting" fields in the per-proto-tree data.
The dfilter code records which fields/protocols are "interesting" (by which
I mean, their value or existence is checked). Thus, the proto_tree routines
can create special arrays of field_info*'s that are ready for the dfilter
engine to use during a filter operation.

Also store the "proto_tree_is_visible" boolean, renamed "visible", in
the per-proto-tree data.

Move epan_dissect_t to its own header file to make #include dependencies
easier to handle.

Provide epan_dissect_fill_in_columns(), which accepts just the epan_dissect_t*
as an argument.

epan_dissect_new() needs to be followed by epan_dissect_run() for the
dissection to actually take place. Between those two calls,
epan_dissect_prime_dfilter() can be run 0, 1, or multiple times in order to
prime the empty proto_tree with the "intersesting" fields from the dfilter_t.

svn path=/trunk/; revision=4422
2001-12-18 19:09:08 +00:00
Guy Harris cc97eed136 TCP time-sequence, round-trip time, and throughput graphs, from Pavel
Mores.

svn path=/trunk/; revision=4360
2001-12-08 09:27:51 +00:00
Gilbert Ramirez 8743a4a8a7 Remove the global packet_info called "pi". Dissectors now only
access their own "pinfo". A packet_info is stored in epan_dissect_t,
which is created for the dissection of a single packet.

GUI functions which need to access the packet_info of the currently
selected packet used to use "pi"; now they use cfile.edt->pi. cfile's
"edt" member is the epan_dissect_t of the currently-selected packet.

The functionality of blank_packetinfo() was moved into
dissect_packet(), as that's the only place that called blank_packetinfo(),
after a spurious call to blank_packetinfo() was removed from
packet_list_select_cb().

svn path=/trunk/; revision=4246
2001-11-21 23:16:26 +00:00
Ed Warnicke 718e062823 Added a "Mark Frame" option to the packet_list_menu_items
so that you can right click on a packet in the packet list
and mark it.

svn path=/trunk/; revision=3737
2001-07-17 05:44:58 +00:00
Guy Harris fafefda449 Don't offer the ability to edit capture filters if Ethereal wasn't
linked with libpcap.

svn path=/trunk/; revision=3613
2001-06-27 10:00:14 +00:00
Guy Harris 2851b7ef76 Enable "Match Selected" only if there's a field selected *and* we can do
a "Match Selected" on it - we can't do a "Match Selected" if the field
has no value (e.g., FT_NULL) and has a length of 0.

If we unselect the current packet, we don't have a protocol tree, so we
don't have a currently selected field - clear the "Match Selected" menu
item and the display in the status line of information about the
currently selected field.

Move the low-level statusbar manipulation into "gtk/main.c", in routines
whose API doesn't expose anything GTK+-ish.

"close_cap_file()" calls one of those routines to clear out the status
bar, so it doesn't need to take a pointer to the statusbar widget as an
argument.

"clear_tree_and_hex_views()" is purely a display-manipulating routine;
move it to "gtk/proto_draw.c".

Extract from "tree_view_unselect_row_cb()" an "unselect_field()" routine
to do all the work that needs to be done if the currently selected
protocol tree row is unselected, and call it if the currently selected
packet list row is unselected (if it's unselected, there *is* no
protocol tree, so no row can be selected), as well as from
"tree_view_unselect_row_cb()".

Before pushing a new field-description message onto the statusbar, pop
the old one off.

Get rid of an unused variable (set, but not used).

svn path=/trunk/; revision=3513
2001-06-05 07:39:31 +00:00
Guy Harris f8c9764894 There's no "enable name resolution in captures" preference in Ethereal,
and never was - there's only an Ethereal-wide "enable name resolution"
preference.  Name it just "name_resolve".

Replace all tests of "g_resolving_actif" with tests of
"prefs.name_resolv", and replace all code that sets "g_resolving_actif"
with code that sets "prefs.name_resolv", so that the setting of
"prefs.name_resolv" actually affects whether names are resolved or not.

svn path=/trunk/; revision=3300
2001-04-15 03:37:16 +00:00
Jeff Foster 78ce39994c Added the ethereal capture preferences to the preference file.
svn path=/trunk/; revision=3298
2001-04-13 14:59:30 +00:00
Gilbert Ramirez 2218ce1220 Add a new tool which summarizes packet counts by protocols, but
organizes the protocols in the same hierarchical order in which
they are found in the packet.

The GUI needs some more refinement (placment of vertical
scrollbar, style of GtkCTree, initial sizing of window).

I need to add an option to honor/not honor the current display filter.

svn path=/trunk/; revision=3162
2001-03-22 23:54:47 +00:00
Guy Harris 55662a3607 Inactivate the "Decode As" menu item if the "Decode As" dialog box
wouldn't actually offer any options to the user.

Make a bunch of routines static that aren't used outside
"decode_as_dlg.c".

Remove the declaration of the nonexistent "decode_as_register_tcpudp()"
routine.

svn path=/trunk/; revision=3020
2001-02-11 23:02:05 +00:00
Guy Harris 8b51643203 "Decode As" dialog, from David Hampton.
svn path=/trunk/; revision=2965
2001-02-01 07:34:33 +00:00
Guy Harris ceef26d2c1 Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.

Have separate menu items for editing the capture and display filter
lists.

Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.

Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.

svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
Guy Harris fb84384942 Move the declaration of "g_resolving_actif" from the top-level
"globals.h" file to "epan/resolv.h", as it's exported by
"epan/resolv.c", have files that use "g_resolving_actif" include
"resolv.h", and don't have "epan/resolv.c" include "globals.h" so that
it doesn't drag in, for example, headers that, in turn, drag in GTK+
headers.

svn path=/trunk/; revision=2517
2000-10-19 22:59:24 +00:00
Guy Harris 54ecbe2d4e Santeri Paavolainen's patch to add a "Capture->Stop" menu item to let
you stop an "Update list of packets in real time" capture from the main
window as well as from the capture statistics dialog.

svn path=/trunk/; revision=2487
2000-10-11 06:01:16 +00:00
Guy Harris a11b619f2a "#if 0" out the code that puts "Cut", "Copy", and "Paste" items into the
"Edit" menu, pending the implementation of cut/copy/paste, so that users
don't think that there's something they can do (other than implementing
cut/copy/paste :-)) to be able to use those functions.

svn path=/trunk/; revision=2402
2000-09-09 08:17:51 +00:00
Laurent Deniel 85a4718c6b Small update (add accelerator).
svn path=/trunk/; revision=2340
2000-08-22 14:21:27 +00:00
Laurent Deniel dea8f0c202 Add some menu items related to the "frame mark" feature in
the Edit menu which allow you to:

- mark (or unmark) the currently selected frame
- mark all _displayed_ frames
- unmark all _displayed_ frames

Should I be more precise in the menu label ?
(e.g. "Mark All Displayed Frame" instead of "Mark All Frames"
  and "Mark Selected Frame" instead of "Mark Frame" ?)

svn path=/trunk/; revision=2325
2000-08-21 19:36:19 +00:00
Laurent Deniel a3d48f0972 Make work better the (hexdump) popup menus.
- have popup_menu_handler return TRUE or FALSE according
  to the fact that the event is really processed or not.
- use gtk_signal_connect instead of gtk_signal_connect_object
  to have the widget that emitted the signal _and_ the popup
  menu widget.
- call gtk_signal_emit_stop_by_name to abort the propagation
  if the signal was processed.

svn path=/trunk/; revision=2318
2000-08-21 12:33:22 +00:00
Laurent Deniel e0a8d41556 Add a popup menu for the hexdump window. For now, it has only the
common items but let's prepare the future (e.g. Match selected)...

svn path=/trunk/; revision=2314
2000-08-20 21:55:58 +00:00
Laurent Deniel df89199498 - remove "Match Selected" from the packet list popup menu.
- reorganise a bit the two right click popup menus :

  . the first part is common to the packet list and protocol tree menus
  . the second part is window-specific.

 (if we had a popup menu for the hexdump window, that would be the same).

svn path=/trunk/; revision=2281
2000-08-16 19:15:11 +00:00
Guy Harris 75a756e881 Rename the "Properties" pop-up menu item "Protocol Properties", to make
it clearer what properties it lets you edit.  (Perhaps it should say
"Edit Protocol Properties", to make it even clearer?)

svn path=/trunk/; revision=2279
2000-08-15 21:35:34 +00:00
Laurent Deniel e559d013fc Oups. Forgot some set_menus_for_selected_tree_row calls.
svn path=/trunk/; revision=2277
2000-08-15 21:03:55 +00:00
Laurent Deniel 5a326952de Implements the "Properties" menu item which displays the preferences window
at the correct notebook page when a particular protocol (which has registered
some preferences) is selected in the tree view.

- add set_menus_for_selected_tree_row() in menu.[ch]

- add prefs_is_registered_protocol() and
      prefs_get_title_by_name() in prefs.[ch]

svn path=/trunk/; revision=2275
2000-08-15 20:46:17 +00:00
Laurent Deniel cc36f0b931 Add the "Edit:Protocols..." feature which currently only implements
the following:

It is now possible to enable/disable a particular protocol decoding
(i.e. the protocol dissector is void or not). When a protocol
is disabled, it is displayed as Data and of course, all linked
sub-protocols are disabled as well.

Disabling a protocol could be interesting:

- in case of buggy dissectors
- in case of wrong heuristics
- for performance reasons
- to decode the data as another protocol (TODO)

Currently (if I am not wrong), all dissectors but NFS can be disabled
(and dissectors that do not register protocols :-)

I do not like the way the RPC sub-dissectors are disabled (in the
sub-dissectors) since this could be done in the RPC dissector itself,
knowing the sub-protocol hfinfo entry (this is why, I've not modified
the NFS one yet).

Two functions are added in proto.c :

gboolean proto_is_protocol_enabled(int n);
void proto_set_decoding(int n, gboolean enabled);

and two MACROs which can be used in dissectors:

OLD_CHECK_DISPLAY_AS_DATA(index, pd, offset, fd, tree)
CHECK_DISPLAY_AS_DATA(index, tvb, pinfo, tree)

See also the XXX in proto_dlg.c and proto.c around the new functions.

svn path=/trunk/; revision=2267
2000-08-13 14:09:15 +00:00
Guy Harris 42f7676996 Give the Help menu the more-or-less canonical style from most
Motif/KDE/GNOME(?) and Windows applications, with "Help" above "About",
and separated from "About" by a separator line.

(This also makes "Help->Help" the default, which is probably what most
users would want, especially if, as, and when we fill out the help.)

svn path=/trunk/; revision=2239
2000-08-09 06:43:22 +00:00
Laurent Deniel cedac6e3f1 Add a Help window that contains:
- short overview
- list of known protocols
- list of display filters
- short capture filter help

The display filter help can be extended in the future
when we will have a GUI for filter construction. But
this is better than nothing ;-)
And cut & paste from the text help window and the filter
input field works...

svn path=/trunk/; revision=2227
2000-08-08 12:28:50 +00:00
Gilbert Ramirez a3e7190456 Add a "Save As" feature to the TCP Follow dialogue, to save the stream
file to a user-specified file.

Move the file-copy routine in save_cap_file() to an indepenent
function in file.c  (copy_binary_file()) so that follow_dlg.c can use it.

Remove #include "follow.h" from the C files that don't need it.

svn path=/trunk/; revision=2200
2000-08-03 12:44:40 +00:00
Guy Harris ed5651a909 Get rid of the stuff to let the callback that pops up the Preferences
dialog select a particular page - I think that was used only by the
filter code back when "Filter:" buttons popped up a Preferences dialog
with the Filter page (which is no longer a Preferences dialog page)
selected, but now there's a separate Filter dialog box.

svn path=/trunk/; revision=2116
2000-07-05 06:33:02 +00:00
Guy Harris f3feac3b1d Put in a comment to note what we'd do if we ever wanted to make the
contents of the popup menu differ based on what row or column we're in.

svn path=/trunk/; revision=1902
2000-05-02 07:44:37 +00:00
Guy Harris 592f641bfc Make "P" a mnemonic for "Print" in the "File" menu.
svn path=/trunk/; revision=1901
2000-05-02 03:21:41 +00:00
Guy Harris 1a460aa453 Define "popup_menu_object" only in "gtk/menu.c", and just declare it as
an "extern" in "gtk/menu.h", to avoid complaints from the linker on some
platforms.

svn path=/trunk/; revision=1810
2000-04-06 06:52:10 +00:00
Guy Harris 7dbe2ffaf2 Get rid of the "Find Frame" and "Go To Frame" items under "Display"; we
put them under "Edit" a while ago.

svn path=/trunk/; revision=1764
2000-03-29 22:39:19 +00:00
Guy Harris 7c11334000 Jeff Foster's changes, with my additions, to allow the user to pop up a
window showing the protocol tree and hex/ASCII data for the currently
selected packet.

svn path=/trunk/; revision=1670
2000-02-29 06:24:41 +00:00
Laurent Deniel e7d574dd39 Add "Resolve Name" item in detailed tree popup.
svn path=/trunk/; revision=1658
2000-02-20 14:52:28 +00:00
Guy Harris 55c8a368b8 Split the color manipulation stuff into "color_dlg.[ch]", containing the
dialog boxes for editing color filtes, and "colors.[ch]", containing the
toolkit-dependent code to manipulate colors.

svn path=/trunk/; revision=1622
2000-02-12 08:31:49 +00:00
Guy Harris 80de78aaad Move the declarations of the routines in "gtk/file_dlg.c" out of
"gtk/main.h" and into a new "gtk/file_dlg.h" file.

svn path=/trunk/; revision=1620
2000-02-12 06:58:42 +00:00
Guy Harris 2cad7bc346 Make the routines internal to the filter-editing dialog box static.
Declare the one routine exported by "gtk/filter_prefs.c" in
"gtk/filter_prefs.h" rather than in "gtk/main.h".  Declare
"E_FILT_TE_PTR_KEY" there, as well, rather than in "prefs_dlg.h", as the
filter-editing dialog box is no longer a preference tab.

Don't include "prefs_dlg.h" unless the stuff declared therein is of
interest.

Fix "gtk/find_dlg.c" to fire up the filter-editing dialog box, not the
no-longer-extant preferences tab for filters, if the "Filter:" button is
clicked.

svn path=/trunk/; revision=1619
2000-02-12 06:46:54 +00:00
Gerald Combs b7a9eca9ba If we open a file, and immediately try to open another file while the first
one is loading, we dump core.  Add the "Open..." menu item to the list of
items that we disable while a file is loading.

svn path=/trunk/; revision=1551
2000-01-25 03:48:16 +00:00
Guy Harris f09b4f0ace Use "strrchr()" instead of "rindex()" - "strrchr()" is the routine the
ANSI C standard specifies.

Fix up some menu stuff that should've been fixed when I put "Find Frame"
and "Go To Frame" under "Edit".

svn path=/trunk/; revision=1509
2000-01-18 19:01:35 +00:00
Guy Harris aa718b5e74 Put the "Find Frame" and "Go To Frame" menu items under "Edit"; leave
them under "Display" as well for now.

svn path=/trunk/; revision=1505
2000-01-18 09:05:30 +00:00
Guy Harris 4603877dc4 Jerry Talkington's changes to support, in the packet list and protocol
tree panes, menus popped up by the right mouse button.

svn path=/trunk/; revision=1504
2000-01-18 08:38:18 +00:00
Olivier Abad fdc1055f9f We have to #include "plugins.h" before using the HAVE_PLUGINS define.
svn path=/trunk/; revision=1500
2000-01-17 17:12:43 +00:00
Gilbert Ramirez 339d67b043 Merge in the final code to make Ethereal run on Win32, compiled
with MSVC 6.0 and 'nmake', the make tool that comes with MSVC.

It compiles, links, and runs. It doesn't run correctly. There's a problem
when reading files. I'm getting short reads.  I'm not linking in zlib or
libsnmp because it first needs to be debugged.

I changed the plugin code to use gmodule instead of libltdl, but the
Unix build still links ethereal against libltdl. I'll fix that tonight; sorry
about leaving it in such a sad state, but I wanted to check in this code
before I left work on a Friday night. Ethereal still works, but the
building is less than optimal.

svn path=/trunk/; revision=1479
2000-01-15 00:23:13 +00:00
Guy Harris 0452dfe11e Allow people to print packets if there are packets to print, even if
we're in the middle of an "Update list of packets in real time" capture.

svn path=/trunk/; revision=1440
2000-01-08 23:34:50 +00:00
Guy Harris 91801fd5dd Make "menus_init()", set_menu_sensitivity()", and "grp" static to
"gtk/menu.c", as they're not used outside it.

Move the definition of "GTK_MENU_FUNC()" from "gtk/menu.h" to
"gtk/menu.c", as it's not used outside of "gtk/menu.c".

Get rid of the declaration of "menus_create()" in "gtk/menu.h", as that
routine doesn't exist.

svn path=/trunk/; revision=1411
2000-01-03 04:06:09 +00:00
Guy Harris 2ef301bcf6 Have "gtk/menu.c" (and, in the future, code for other UIs) export a set
of routines to enable and disable various sets of menu items; call only
those routines, not routines to enable or disable particular menu items,
from files in the top-level directory, as other UIs may not refer to
menu items with path strings of the sort used in GTK+, and as this
buries knowledge of the menu items available in "gtk/menu.c" rather than
requiring stuff outside of "gtk/menu.c" to know what menu items exist.

svn path=/trunk/; revision=1410
2000-01-03 03:57:04 +00:00
Guy Harris f47ff8dfd0 Squelch a GCC complaint.
svn path=/trunk/; revision=1278
1999-12-10 07:04:30 +00:00
Guy Harris 7537c5cc73 Jerry Talkington's patch to remove the filter stuff from
"Edit:Preferences" and put it directly under "Edit:Filters", and to add
an "Apply" button to it, which makes the currently selected filter the
current filter and applies it to the current capture.

svn path=/trunk/; revision=1275
1999-12-10 06:28:24 +00:00
Gilbert Ramirez 71b7cd5031 Move GTK code out of summary.c and into gtk/summary_dlg.c
summary.c now provides a struct of info (see summary.h)

Changed the name of the summary dialogue callback (hence the change
in menu.c), and added a close button to the dialogue.

Moved #include <gtk/gtk.h> out of print.c and into prefs.h where it
was needed for GdkColor.

svn path=/trunk/; revision=1273
1999-12-10 04:21:04 +00:00
Olivier Abad 564a1c1d62 plugins support (i.e. Dynamically loadable dissectors)
depends on dlopen() being available on the target platform

svn path=/trunk/; revision=1263
1999-12-09 20:43:38 +00:00
Guy Harris 0de40f3c42 Add ^G as an accelerator for Display:Go To Frame.
svn path=/trunk/; revision=1222
1999-12-05 23:44:24 +00:00
Guy Harris ac4026f37a Add a "Go To Frame" menu item, which lets you go to a frame by frame
number.

svn path=/trunk/; revision=994
1999-11-10 07:01:53 +00:00
Guy Harris f0889e55c1 Add a "Find Frame" menu item under "Display"; it lets you use a display
filter to search forward or backward in the list of displayed frames for
a matching frame.

When filtering the display, readjust the display to show the "current"
frame if it passed the display filter.  When a file is read in, the
first frame becomes the "current" frame; when a frame is selected, it
becomes the "current" frame, and remains so *even if you unselect it*,
until another frame is selected.

Select the first frame when a file is read in.

Disable most of the "Display" and "Tools" menu items if there's no
current capture file, and enable the relevant ones if there is.

svn path=/trunk/; revision=982
1999-11-06 06:28:07 +00:00
Gilbert Ramirez 10fcfef266 Move display.[ch] --> gtk/display_opts.[ch]
svn path=/trunk/; revision=883
1999-10-18 12:48:14 +00:00
Laurent Deniel e466de51ad Collapse/Expand All protocol tree added in Display menu.
svn path=/trunk/; revision=660
1999-09-11 12:38:18 +00:00
Gilbert Ramirez 8617c58f3c More shuffling of GTK-related routines to gtk subdirectory.
svn path=/trunk/; revision=636
1999-09-09 03:32:03 +00:00
Gilbert Ramirez 3c49e45cf7 More shuffling of GTK-related files to gtk subdirectory.
svn path=/trunk/; revision=635
1999-09-09 02:42:40 +00:00
Gilbert Ramirez 65c3e8d9bf Moved GTK-dependent routines for file dialogues, print dialogues, print
preferences, and menus to gtk subdirectory.

svn path=/trunk/; revision=623
1999-09-01 03:04:24 +00:00