Commit graph

552 commits

Author SHA1 Message Date
Guy Harris
a0d7e90519 Make the blurbs for protocol preference items into tooltips. (This also
lets us add tooltips to other preference items whose widgets are created
with the "create_preference_XXX()" routines - just pass in a tooltip
text string rather than a null pointer.)

svn path=/trunk/; revision=4577
2002-01-20 20:05:18 +00:00
Guy Harris
4d81335d28 Squelch a valid compiler warning (passing a "char" to the "is..." macros
can give the wrong answer if the 8th bit of the "char" is set).

svn path=/trunk/; revision=4567
2002-01-18 19:46:19 +00:00
Guy Harris
7fbd9f378f Memory freeing fix, from Jirka Novak.
svn path=/trunk/; revision=4565
2002-01-18 07:29:40 +00:00
Guy Harris
b4867007ca Support for hex dump mode in "Follow TCP Stream" window showing hex and
ASCII data, from Jirka Novak.

svn path=/trunk/; revision=4564
2002-01-18 07:25:22 +00:00
Guy Harris
32d7eac1ce Get the current value of Boolean preferences before adding widgets for
them (by putting back a line that got accidentally deleted in a previous
checkin).

svn path=/trunk/; revision=4537
2002-01-14 01:14:52 +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
649cc279d6 Put the labels of check boxes to the left of the checkboxes,
right-aligned, and give all of them a colon at the end, to match the
style of other preferences.

svn path=/trunk/; revision=4535
2002-01-12 11:09:09 +00:00
Guy Harris
6437001da6 Get rid of unused variables.
Put the labels of check boxes to the left of the checkboxes,
right-aligned, and give all of them a colon at the end, to match the
style of module preferences.

svn path=/trunk/; revision=4534
2002-01-12 11:02:47 +00:00
Guy Harris
ea02d23f06 While you're at it, use the key for the auto scroll option checkbox for
the pointer to the auto scroll options checkbox....

svn path=/trunk/; revision=4532
2002-01-12 09:19:59 +00:00
Guy Harris
0ad27ce8a7 Make the key for the capture preference window's pointer to the auto
scroll option checkbox distinct from the key for the pointer to the
real-time capture option checkbox, so thee auto scroll option checkbox
can be fetched.

svn path=/trunk/; revision=4531
2002-01-12 09:13:50 +00:00
Guy Harris
1aadf9cfc2 Label the window popped up by "Capture->Start" "Capture Options", not
"Capture Preferences", to avoid confusion with the "Capture" item in the
"Preferences" dialog (which sets the initial default values for the
"Capture Options" dialog).

svn path=/trunk/; revision=4523
2002-01-11 08:55:02 +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
Guy Harris
e592fa4a6b Have routines to create GtkCTrees, set their line and expander style
based on the user's UI preferences, and add them to a list of GtkCTrees.
Use those routines to create all GtkCTrees.

Have a routine to update the preferences for all of those GtkCTrees.
Call that routine whenever the preferences change.

Label the line and expander style preferences as "Tree line style" and
"Tree expander style", as they no longer apply only to protocol trees.

Move the routines to maintain a list of scrolled windows, and to update
scrollbar placement for scrolled windows, to "ui_util.c".

svn path=/trunk/; revision=4520
2002-01-11 06:43:18 +00:00
Guy Harris
b3f81eb30c Separate the promiscuous mode, "Update list of packets in real time",
and "Automatic scrolling in live capture" options from the preference
settings for them, so that the preference settings affect the initial
values of those options, but changing those values in a capture don't
affect the preferences, and don't automatically get saved when you save
the preferences.

If we're building without libpcap, don't have an "Automatic scrolling in
live capture" option anywhere.

svn path=/trunk/; revision=4514
2002-01-10 11:05:50 +00:00
Guy Harris
d663cdb4a1 Fix some problems with building Ethereal/Tethereal without libpcap.
Get rid of a #include I'd #if 0'ed out.

svn path=/trunk/; revision=4513
2002-01-10 09:51:23 +00:00
Guy Harris
9357047df5 Add a preferences page for capture preferences, so that the user can
directly edit the capture preferences, rather than only being able to
set them implicitly from the values for the most recent capture.

Add a preferences item for the interface on which to capture.

Get rid of some unused variables.

svn path=/trunk/; revision=4510
2002-01-10 07:43:39 +00:00
Guy Harris
3ecfaeedb5 Don't process a color filter if there's no filter associated with it.
Don't put a color filter into the list of color filters if we can't
allocate the colors for the filter.

Clean up white space.

svn path=/trunk/; revision=4502
2002-01-08 21:35:17 +00:00
Guy Harris
12d566c0ac Add a routine to kill a capture child if it exists, so that if we exit
(by deleting the main window or selecting File->Quit or typing ^Q) while
an "Update list of packets in real time" capture is in progress, we can
abort the capture.

Arrange that "fork_child" is -1 when there is no capture child, so said
routine knows when it can kill the child.

When we exit, kill off any capture child, using that routine, and, if
we're exiting due to a request to delete the main window and, if a read
is in progress (from an "Update list of packets in real time" capture),
don't delete the main window - just set the "Read aborted" flag, so that
the code doing the read will see that flag (it will be called because
the pipe to the capture child is closed due to the child exiting) will
see that and clean up and exit itself.

svn path=/trunk/; revision=4498
2002-01-08 09:32:15 +00:00
Guy Harris
6b2ee38ad3 From Albert Chin: eliminate a GCCism.
svn path=/trunk/; revision=4467
2002-01-03 20:01:07 +00:00
Gerald Combs
e8839785ad Fix a pointer error in find_stat_node.
Define a default width and maximum height for the stats dialog.

svn path=/trunk/; revision=4463
2001-12-31 20:40:34 +00:00
Gerald Combs
30c5551caa Add preferences to save the main window size and position. If enabled,
the geometry is saved at exit.  Should we save the main window pane
sizes as well?

Move the DEF_WIDTH and DEF_HEIGHT #defines from gtk/main.h to prefs.h.
Remove the reference to DEF_WIDTH from proto_hier_stats_dlg.c.

svn path=/trunk/; revision=4462
2001-12-31 04:41:50 +00:00
Guy Harris
fef1e91788 Print out messages if any of the ring buffer checks fail.
Do the ring buffer checks at the same time other command-line argument
checks are done.

svn path=/trunk/; revision=4439
2001-12-21 20:33:47 +00:00
Guy Harris
b89a117a61 There is no such thing as an optional parameter to a command-line flag
if you're using "getopt" - if a flag requires a parameter, not
specifying the parameter is an error.

svn path=/trunk/; revision=4437
2001-12-21 20:18:40 +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
794f0c04f4 Add an extra argument to "epan_dissect_new()" that indicates whether the
display representation should be put into protocol tree items if a
protocol tree is to be constructed; have it set "proto_tree_is_visible"
from that argument.

svn path=/trunk/; revision=4408
2001-12-16 22:16:14 +00:00
Guy Harris
f589b96f81 Fix up the comment on "set_main_window_name()" (I'm not sure why I put
that note in about KWM, unless I was noting that the title bar entry for
a window has the window title rather than the icon title, but, as we're
setting both, I'm not sure it's relevant), and change the name of its
argument, as it's used to set both the window and icon titles.

Add some more information to the comments for "reactivate_window()" and
"window_icon_realize_cb()".

svn path=/trunk/; revision=4394
2001-12-13 09:26:15 +00:00
Gerald Combs
7e092f2dd8 Go nuts with the 3D logo.
Add a routine to ui_util.c that sets a window's icon pixmap to a 16x16
version of the 3D logo.  Call the routine for each window that is created.
This has been tested with kwm and Sawfish (which expect a 16x16 icon), but
we may have to come up with a better solution for other window managers
(e.g. olwm and mwm).

Add a 3D exclamation point image.  Replace the exclamation point and
Ethereal logo images used in simple_dialog() with their 3D counterparts.

Remove the old icons from the source distribution.

svn path=/trunk/; revision=4390
2001-12-12 21:39:01 +00:00
Guy Harris
39362af814 From Motonori Shindo:
fix a bogus batch mode inference rule of make, so that
	"vc60.pdb" files are created in the proper directory;

	delete ".pdb" files in a "nmake -f Makefile.nmake clean";

	include the text2pcap and mergecap ".pdb" files in the Windows
	binary distribution.

svn path=/trunk/; revision=4385
2001-12-12 01:29:13 +00:00
Guy Harris
c5b1e310e3 From Motonori Shindo: add a cast of "ip" to "guint8 *" so pointer
arithmetic can be done on it.

svn path=/trunk/; revision=4384
2001-12-12 01:19:28 +00:00
Guy Harris
975be62d24 Put in a comment indicating that even loading a one-byte field from an
unaligned data structure could get an unaligned load fault on Alpha.

svn path=/trunk/; revision=4381
2001-12-10 23:27:25 +00:00
Guy Harris
be4179a865 Test the link-layer type of the frame being looked at, not the
currently-selected frame - they're not necessarily the same.

svn path=/trunk/; revision=4380
2001-12-10 21:42:02 +00:00
Guy Harris
b2d9276356 Use the encapsulation type of the current frame to decide what
link-layer header it has.

svn path=/trunk/; revision=4379
2001-12-10 21:26:25 +00:00
Guy Harris
3e55e6702f Get rid of the stuff to use bitfields to dissect IP and TCP headers -
bitfields are a pain to use when dealing with structures with a fixed
layout in memory (you have to worry about bit order, for example).

Don't assume that the Ethernet header is aligned on a 2-byte boundary -
use "pntohs()" to extract stuff from it.  (Perhaps C will force it onto
a 2-byte boundary, but why take chances, and why leave the code
vulnerable to changes outside this module?)

Don't assume that the pointers to the IP and TCP headers are nicely
aligned - use "memcpy()", not structure assignment, to copy the headers.
(They're probably *not* nicely aligned on platforms that require 4-byte
alignment of 4-byte integral quantities; the code was dumping core on
SPARC with an alignment error.)

Don't even make those pointers be pointers to structures, as that may
cause the C compiler to generate in-line 4-byte loads and stores for
"memcpy()" (in fact, it *did* do so with GCC 2.95.1 on SPARC), which has
the same problem as structure assignment.

Don't test the IP protocol number twice when handling PPP.

svn path=/trunk/; revision=4378
2001-12-10 21:19:13 +00:00
Gilbert Ramirez
156abcce61 Change a printf() error message to a simple_dialog() error message.
svn path=/trunk/; revision=4377
2001-12-10 20:34:52 +00:00
Guy Harris
23319ff023 Move the pointer to the "column_info" structure in the "frame_data"
structure to the "packet_info" structure; only stuff that's permanently
stored with each frame should be in the "frame_data" structure, and the
"column_info" structure is not guaranteed to hold the column values for
that frame at all times - it was only in the "frame_data" structure so
that it could be passed to dissectors, and, as all dissectors are now
passed a pointer to a "packet_info" structure, it could just as well be
put in the "packet_info" structure.

That saves memory, by shrinking the "frame_data" structure (there's one
of those per frame), and also lets us clean up the code a bit.

svn path=/trunk/; revision=4370
2001-12-10 00:26:21 +00:00
Guy Harris
5cc85c2426 Check for invalid maximum packet count values.
svn path=/trunk/; revision=4368
2001-12-09 03:20:19 +00:00
Guy Harris
b93a7716e2 From Gordon McKinney: make IP-over-PPP work with the TCP graph code.
svn path=/trunk/; revision=4367
2001-12-09 01:20:14 +00:00
Guy Harris
39581e769b On Win32, a GUI application apparently can't use "popen()" (it
"returns an invalid file handle, if used in a Windows program,
that will cause the program to hang indefinitely"), so we can't
use a pipe to a print command to print to a printer.

Eventually, we should try to use the native Win32 printing API
for this (and also use various UNIX printing APIs, when present?).

For now, we support only printing to a file in Windows.

svn path=/trunk/; revision=4366
2001-12-09 01:12:07 +00:00
Guy Harris
d4959b176e Give the help window a title.
svn path=/trunk/; revision=4361
2001-12-08 09:39:23 +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
Guy Harris
75cc056222 Attach a descriptive name field type and base to dissector tables; that
specifies how the selector values used as keys in those tables are to be
displayed, and the title to use when displaying the table.

Use that information in the code to display the initial and current
entries of various dissector tables.

Have the dissector for BACnet APDUs register itself by name, and have
the BACnet NPDU dissector call it iff the BAC_CONTROL_NET bit isn't set,
rather than doing it with a dissector table.

svn path=/trunk/; revision=4358
2001-12-08 06:41:48 +00:00
Guy Harris
824071e92f Handle the case of the initial, or current, dissector handle for a
particular port number being null.

svn path=/trunk/; revision=4347
2001-12-06 08:50:14 +00:00
Gilbert Ramirez
6542c18172 Remove proto_tree from capture_file and PacketWinData, since they
already contain a pointer to an epan_dissect_t, which contains
the proto_tree.

Routines calling epan_dissect_new() do not create their own
proto_tree via proto_tree_create_root(); instead, they pass a boolean
to epan_dissect_new() telling it whether it should create the root
proto_tree.

svn path=/trunk/; revision=4343
2001-12-06 04:25:09 +00:00
Guy Harris
2026f857bc Don't update the "Save As..." dialog box if it doesn't exist.
Update some comments.

svn path=/trunk/; revision=4342
2001-12-06 03:09:28 +00:00
Guy Harris
a936b559df Make the "Save only marked frames" button in the "Save As..." dialog box
sensitive only if there *are* marked frames.

svn path=/trunk/; revision=4341
2001-12-06 02:21:26 +00:00
Guy Harris
c95680e052 When making the "number of ring buffer files" spin button sensitive or
insensitive, make its label sensitive or insensitive too.

When "update list of packets in real time" mode is on, make the ring
buffer mode toggle button, and the "number of ring buffer files" spin
button, insensitive, as ring buffer mode is not supported in "update
list of packets in real time" captures.

When "update list of packets in real time" mode is off, make the
auto-scroll mode button insensitive, as auto-scroll mode is meaningless
unless you're doing an "update list of packets in real time" capture.

Bundle all the sensitivity setting into a single common routine.

Make "ring buffer" two words.

svn path=/trunk/; revision=4325
2001-12-04 09:46:01 +00:00
Guy Harris
8032fa8a1b Make the bytes-written information from Wiretap a long, as we allow
files to get that big.

From Thomas Wittwer and Matthias Nyffenegger:

Support for "ring buffer mode", wherein there's a ring buffer of N
capture files; as each capture file reaches its maximum size (the ring
buffer works only with a maximum capture file size specified), Ethereal
rolls over to the next capture file in the ring buffer, replacing
whatever packets might be in it with new packets.

svn path=/trunk/; revision=4323
2001-12-04 08:26:00 +00:00
Guy Harris
a1660d6d3a Support for stopping capture at specified capture file size or capture
duration, from Thomas Wittwer and Matthias Nyffenegger.

svn path=/trunk/; revision=4322
2001-12-04 07:32:05 +00:00
Guy Harris
9426c4ad15 From Thomas Wittwer: remove unnecessary calls to
"prefs_module_foreach()".

svn path=/trunk/; revision=4321
2001-12-04 07:23:47 +00:00