Commit Graph

500 Commits

Author SHA1 Message Date
Guy Harris f57403fe46 When printing a packet, do it from the protocol tree, not from the GTK+
tree constructed from the protocol tree:

	1) The value of "level" field of GTK+ tree items appears to
	   depend on various random things - see a change I made to
	   "packet-dns.c" a while ago, to change the order in which
	   items were put in the tree, so that DNS trees printed with
	   correct indentation - and, right now, we appear to be doing
	   *something* wrong, as some packets I printed from one file
	   here had randomly bogus indentation; I could probably track
	   the problem down and fix it, but that might just hold us
	   until we accidentally do something *else* wrong by GTK+'s
	   lights.

	   The new code provides its own tree level as it goes.

	2) The new code is independent of GTK+, so it could be used with
	   other toolkits, or with non-GUI variants of Ethereal.

	3) This may make it easier to add a "Print..." menu item to let
	   the user print packets other than the currently selected
	   packet.

Make the internal routines used to print the packet static.

For the "Print Packet" menu item, put up a message box if they haven't
yet selected a packet.

svn path=/trunk/; revision=362
1999-07-13 04:38:15 +00:00
Guy Harris 8369394c07 Look for <sys/socket.h>, not <sys/socket>.
svn path=/trunk/; revision=361
1999-07-13 03:31:40 +00:00
Gilbert Ramirez 57e49071ef Since ethereal is now dependent on GTK+-1.2.x (because of proto_tree and
display filter code, which uses features in GLIB-1.2.x), I removed
the vestigial code supporting old 1.0.x and 1.1.x GTK+ versions.

svn path=/trunk/; revision=360
1999-07-13 03:08:06 +00:00
Gilbert Ramirez 601c52f0fb Added support for compiling on win32 with Visual C and 'nmake'. It compiles,
but does not link. Perhaps someone who understands the MS tools can help
out. I made it link a few months ago, but with different version of glib/gtk+.
I can't remember how I made it link.

Most of the compatibility issues were resolved with adding
#ifdef HAVE_UNISTD_H the the source code. Please be sure to add this to all
future code.

svn path=/trunk/; revision=359
1999-07-13 02:53:26 +00:00
Gilbert Ramirez 093f28c382 Fixed packet.h for good.
svn path=/trunk/; revision=358
1999-07-12 21:39:28 +00:00
Richard Sharpe 87be6de734 Some more updates. Now have open_andx decoded mostly ... Still some funnies
and some difficult things.

I should not have blown away any of Gilbert's stuff this time around ...

Hope not anyway ...

svn path=/trunk/; revision=357
1999-07-12 14:26:16 +00:00
Guy Harris 6a6f7bb8d8 Don't claim that display filters have "tcpdump" filter syntax, as they
no longer do.  (Leave a placeholder comment; the syntax should perhaps
be described here.)  Update the example filter to match current reality.

Note that the <Return> and <Enter> keys, when typed in the display
filter field, cause the filter to be applied.

svn path=/trunk/; revision=356
1999-07-12 05:47:29 +00:00
Guy Harris bb0eaf66b7 When you hit <Return> in the text entry box for the display filter,
apply the filter (if it isn't invalid).

Apply the filter by clearing the Clist that shows packet summary lines
and scanning through the list of all packets and adding to the Clist
those that match the filter.

Get rid of "if (dfilter_proto_tree)" test in "load_cap_file()";
"dfilter_proto_tree" is always FALSE, and all the test does is keep us
from doing a "gtk_clist_freeze()" of the packet list, and we don't want
to do that (we don't want the packet to be updated until we're done
reading in the file).

Get rid of "dfilter_proto_tree", as it's no longer used.

Move the test that checks whether the display filter matches the current
packet to "add_packet_to_packet_list()"; this allows us to run
"dissect_packet()" only once - if we have a display filter, we generate
the summary info *and* the protocol tree in the same call, using the
summary info to make the packet list item and the protocol tree when
checking the display filter.

In "dfilter_compile()", destroy "*p_dfcode" if it's not NULL, so we
don't leak memory.

svn path=/trunk/; revision=355
1999-07-11 08:40:52 +00:00
Guy Harris d35862ac07 The previous checkins were based on versions of the file prior to
Gilbert's new protocol-tree code (and to a bunch of other changes); put
all the missing changes back in.

svn path=/trunk/; revision=354
1999-07-11 07:24:57 +00:00
Richard Sharpe 9b8cd07087 More decoding of fields. Now handle enumerated fields, but still have
problems with single bit fields when declared as an enumerated field.

It shows an unknown ... Damn ... Can't see what the problem is.

svn path=/trunk/; revision=353
1999-07-10 14:01:53 +00:00
Guy Harris d8dab1fd95 Add back in the note about GNU "make", "flex", and "bison"/Berkeley
"yacc" being required.

svn path=/trunk/; revision=352
1999-07-09 04:28:45 +00:00
Gilbert Ramirez 5a7e28ca46 Added the ability to create a read-only ethereal, i.e., one that
doesn't link with libpcap, so no packet captures can be made. The
"--disable-pcap" option has been added to the configure script. Docs
have been updated. And the string buffer size in the simple_dialog()
has been doubled so that Johan's e-mail address in the "About" dialogue
window doesn't get chopped off.

svn path=/trunk/; revision=351
1999-07-09 04:18:36 +00:00
Guy Harris 5617c18368 Declare "dissect_radius()" here.
svn path=/trunk/; revision=350
1999-07-08 20:31:42 +00:00
Guy Harris da00ae83bf "pntohl()" doesn't actually return a "long" (or an "unsigned long"), it
returns a "guint32", which is an "unsigned int" on all platforms Glib
supports, so print what it returns with "%u", not "%lu".

svn path=/trunk/; revision=349
1999-07-08 06:03:21 +00:00
Gilbert Ramirez 53d2a96094 Added Johan's RADIUS dissector, finally. I modified it to fit in with the
new proto_tree routines. I also removed the check for lex and yacc from
wiretap's configure script. The IP dissector now uses
proto_register_field_array().

svn path=/trunk/; revision=348
1999-07-08 04:23:28 +00:00
Gilbert Ramirez e578a22f4c Put the XOR logic in place, where previously I had left an inclusive-OR
place-holder. Also removed the printf() telling the world that the parser
found some punctuation.

svn path=/trunk/; revision=347
1999-07-08 03:35:30 +00:00
Gilbert Ramirez acad5a3730 Documented the proto_register_field_array() function, and converted
the registration functions in packet-fddi.c and packet-eth.c to this new
registration method.

svn path=/trunk/; revision=346
1999-07-08 03:18:20 +00:00
Gilbert Ramirez 56c0587491 Fixed the byte_range implementation, and removed some of the C-style
operators that I had thrown in at the last moment. Sorry! But I'm trying
to get rid of those embarrassing shift/reduce and reduce/reduce warnings.
I also removed wiretap/wiretap.c, which is no longer needed.

svn path=/trunk/; revision=345
1999-07-08 03:05:55 +00:00
Guy Harris 856e356a7a "const"ifty some function arguments and structure members, and "#if 0"
out the declaration of a variable used only by "#if 0"ed out code, to
eliminate some compiler warnings.

svn path=/trunk/; revision=344
1999-07-07 23:54:13 +00:00
Gilbert Ramirez 9f9d19f529 Removed old #include's.
svn path=/trunk/; revision=343
1999-07-07 22:58:37 +00:00
Gilbert Ramirez 07f42b5b31 Created a new protocol tree implementation and a new display filter
mechanism that is built into ethereal. Wiretap is now used to read all
file formats. Libpcap is used only for capturing.

svn path=/trunk/; revision=342
1999-07-07 22:52:57 +00:00
Guy Harris fba49cfe85 From Jason Lango <jal@netapp.com>, a fix to a long-standing problem
(which could cause core dumps in "Follow TCP Stream") -
"check_fragments()" was, when deleting a TCP segment at the beginning of
the list of segments, setting "src[index]" to point to the next segment,
not "frags[index]".  "src[index]" is the source IP address, not a
pointer to a fragment.

Also, make some routines not used outside "follow.c" static.

svn path=/trunk/; revision=341
1999-07-07 01:41:15 +00:00
Guy Harris b547681d56 Add support for RTSP (RFC 2326) over TCP, and SDP (RFC 2327) inside
RTSP, from Jason Lango <jal@netapp.com>.

svn path=/trunk/; revision=340
1999-07-07 00:34:58 +00:00
Guy Harris bec7c4afe5 "pntohl()" doesn't actually return a "long" (or an "unsigned long"), it
returns a "guint32", which is an "unsigned int" on all platforms Glib
supports, so print what it returns with "%u", not "%lu".

svn path=/trunk/; revision=339
1999-07-06 06:10:31 +00:00
Guy Harris 7a4fe9b1c3 Include <sys/types.h> before including <netinet/in.h> - you have to do
that on FreeBSD, at least.

svn path=/trunk/; revision=338
1999-07-04 06:47:09 +00:00
Guy Harris aca6d29e7b Note that non-GNU "make"s appear not to be able to build Ethereal, and
that you need "flex" and either "bison" or Berkeley "yacc".  (XXX -
should notes such as this go in some other file, e.g. INSTALL?  I
discovered the "flex" and "bison"/byacc requirement on a Solaris 7
system, but it's probably a problem on other commercial UNIXes, as well,
so it probably doesn't belong in, say, "README.solaris".)

svn path=/trunk/; revision=337
1999-07-04 06:45:53 +00:00
Guy Harris 057f3639a3 In GTK+ 1.0[.x], "gtk_window_set_position()" was called
"gtk_window_position()", so use "gtk_window_position()" if we're using
GTK+ 1.0[.x].

svn path=/trunk/; revision=336
1999-07-04 06:41:19 +00:00
Richard Sharpe 4cef485bd4 Fixed a small problem that would have prevented Ethereal from compiling.
svn path=/trunk/; revision=335
1999-07-01 04:04:38 +00:00
Richard Sharpe e10ddc676c Added some more, auto-generated decoding to packet-smb.c.
Hope it is all OK.

This is getting interesting.

svn path=/trunk/; revision=334
1999-06-28 10:57:57 +00:00
Guy Harris ea9053b4f7 When checking to see if a packet is of a given type by checking the
source and destination port numbers, check both port numbers against the
specified port, rather than checking the lower of the two port numbers
against the specified port, just in case you happen to either have

	1) the port number for that type being high enough that you can
	   get client sockets using it

or

	2) client sockets using it for some other reason.

svn path=/trunk/; revision=333
1999-06-25 07:15:02 +00:00
Guy Harris 8f8923a33b If WITH_WIRETAP is defined, don't define variables used only if
WITH_WIRETAP isn't defined.

svn path=/trunk/; revision=332
1999-06-25 06:49:46 +00:00
Gilbert Ramirez 8596488569 In my haste to get rid of the compilation warning, I converted the
pointer to a signed int instead of an unsigned int. In my testing the
code still worked, but it's better to do the conversion correctly.

svn path=/trunk/; revision=331
1999-06-25 02:57:42 +00:00
Gilbert Ramirez 11394d515f Added Ashok's Match Selected functionality, and changes to move ethereal
to version 0.6.3.

svn path=/trunk/; revision=330
1999-06-24 16:25:59 +00:00
Guy Harris 5a128fea68 If the "Cancel" button is clicked in the "Display Options"
window, revert the timestamp type display option to the value it
	had before that window was popped up, undoing any changes
	applied with the "Apply" button.

	If "Display/Options" is selected while there's a "Display
	Options" window active, don't pop up another "Display Options"
	window (we really should, if that's done, switch the input focus
	to the existing "Display Options" window, if possible).

svn path=/trunk/; revision=329
1999-06-24 05:37:04 +00:00
Gilbert Ramirez 3b0b8e40f4 Finally! Got rid of compilation warning about converting pointer to int
in line 198.

svn path=/trunk/; revision=328
1999-06-23 20:09:58 +00:00
Gilbert Ramirez 98f51e741e Added an "apply" button to the display option gui, so we can try new
timestamp display w/o having the display option GUI disappear.

svn path=/trunk/; revision=327
1999-06-22 22:43:56 +00:00
Gilbert Ramirez 7ea29fb80d Added Aaron Hillegass' summary dialogue. We're ignoring the problem with
NetMon statistic packets for now. We might fix that problem with wiretap,
either filtering out those packets, and/or providing the summary
information through a new wiretap API.

svn path=/trunk/; revision=326
1999-06-22 22:02:39 +00:00
Guy Harris 919fe8f24c Update the display if the "command-line-specified" time format is
changed by updating those columns showing the time in the
"command-line-specified" format, not by redoing the entire packet list
display; that way, the display continues to show the same packets and
any packet the user selected remains selected.  (It's also less work to
do that - you don't have to re-dissect the packet.)

Turn "redisplay_packets()" into "filter_packets()", and do some other
cleanups.

svn path=/trunk/; revision=325
1999-06-22 03:39:07 +00:00
Gilbert Ramirez 851d27fff1 Found some erroneous usages of gtk_signal_connect_object. I always wondered
why I had to swap fields (data = w) in some of the callback functions when
I added support for gtk+-1.1. Because of the use of gtk_signal_connect_object,
the wrong value was being sent to the callback function. We were just lucky
that with gtk+-1.0 it worked.

gtk_signal_connect_object is for use with callbacks that take one argument.
gtk_signal_connect is for use with callbacks that take two arguments.

svn path=/trunk/; revision=324
1999-06-21 19:04:35 +00:00
Gilbert Ramirez 6533d5cae6 Added "0x" to a couple of proto_tree_add_item printf-style labels that
were printing values in hex. The lack of "0x" in fron of the hex numbers
made me think the values were decimal, causing me to waste a bit of time
during debugging.

svn path=/trunk/; revision=323
1999-06-21 16:20:18 +00:00
Gilbert Ramirez d5fab31737 Added a paragraph explaining that the SNMP decode in ethereal uses
either the UCD or CMU SNMP library. Also documented the fact that SNMP
support in ethereal can be disabled with the "--disable-snmp" option to
'configure'.

svn path=/trunk/; revision=322
1999-06-21 16:02:22 +00:00
Guy Harris f8ff7a6a79 Update the man page to reflect the "Capture/Start" and "Display/Options"
menu items.

svn path=/trunk/; revision=321
1999-06-19 08:48:30 +00:00
Guy Harris 5d565b7fee Update a comment.
svn path=/trunk/; revision=320
1999-06-19 03:22:46 +00:00
Guy Harris becbefffcb Use "gtk_toggle_button_set_state()" rather than
"gtk_toggle_button_set_active()" to set the state of radio buttions;
"gtk_toggle_button_set_active()" doesn't exist in GTK+ 1.0[.x], and
"gtk_toggle_button_set_state()" is an alias for it in GTK+ 1.2[.x].

Compute the column widths in the summary display based on the longest
string in the column; recompute it whenever we update the columns.

svn path=/trunk/; revision=319
1999-06-19 03:14:32 +00:00
Guy Harris fe725bec8c Update the column widths if we change the time stamp format from the
"Display/Options" dialog box.

"get_column_width()" should check "timestamp_type" against ABSOLUTE, not
against COL_ABS_TIME.

Clean up the code to check the state of the time stamp radio buttons in
the "Display/Options" dialog box.

Check in "timestamp.h", which we failed to check in on the previous
commit.

svn path=/trunk/; revision=318
1999-06-19 01:47:43 +00:00
Guy Harris 88e94a0186 Added "Capture" and "Display" menus; "Capture" has a "Start" item, which
is the same as "Tools/Capture", and "Display" has an "Options" item,
which pops up a dialog box to let you change the "default" time-stamp
column display format on the fly (the "default" is what the "-t"
command-line option sets), and have the display change when you do that.

Made infrastructure changes to make the immediate display update work.

Removed some unused functions, declared some functions used only in the
file in which they're defined "static", and removed some unnecessary
#includes.

svn path=/trunk/; revision=317
1999-06-19 01:14:51 +00:00
Gilbert Ramirez 6a971ea03c Found a small bug in how the Token-Ring code tried to be smart and looked
for RIF bytes w/o the source-route bit being set.

svn path=/trunk/; revision=316
1999-06-16 20:14:51 +00:00
Guy Harris b39ceabd92 Put "..." after menu items that will cause a dialog box to be popped up
(standard convention in many GUIs).

Make "Save as" be "Save As", and make "A" be the menu mnemonic for it in
the "File" menu, with GTK 1.2.

svn path=/trunk/; revision=315
1999-06-15 04:48:57 +00:00
Guy Harris 5e1f2e3a46 Get rid of an extra line in the author credits (Brad Robel-Forrest
already appears in the list; the extra line is probably leftover from
cutting-and-pasting the author list from the AUTHORS file).

svn path=/trunk/; revision=314
1999-06-15 03:58:42 +00:00
Guy Harris 66fb2e7ae6 Don't load the capture file in "main_realize_cb()", load it after the
"gtk_widget_show()" of the main window; that way:

	1) any alert box popped up because a capture file specified with
	   the "-r" flag can't be read shows up after the main window
	   shows up, and is more likely to end up on top of the main
	   window, rather than behind it;

	2) as the main window is up before we start reading a capture
	   file specified with the "-r" flag, the progress bar can show
	   our progress reading that file.

If the "-k" flag was specified, make sure "-i" and "-w" were specified
as well, rather than just dropping core trying to dereference NULL
"cf.iface" or "cf.save_file" pointers.

svn path=/trunk/; revision=313
1999-06-15 03:46:46 +00:00