Commit Graph

689 Commits

Author SHA1 Message Date
Guy Harris b1e9d314f0 Fix a typo in a comment.
svn path=/trunk/; revision=504
1999-08-17 00:26:37 +00:00
Guy Harris ac4a2e40ef Expand some comments.
Check for errors reading the "Follow TCP Stream" temporary file.

Unlink the temporary file after attempting to open and read the file,
even if the attempt to open it failed.

svn path=/trunk/; revision=503
1999-08-17 00:10:22 +00:00
Guy Harris ce732a3267 Pick up a change from the OpenBSD ports collection, to use "mkstemp()"
to create the temporary file to which the "Follow TCP Stream" code
writes the contents of the TCP stream; this was presumably done to close
a potential security hole opened by the possibility of somebody
replacing the file referred to by the name generated by "tmpnam()"
before we open it.

(We may have to provide our own version of "mkstemp()" if there are any
platforms on which we run that lack it.  Note that Solaris 2.5.1 has it,
even though it's not documented and isn't declare in its "stdlib.h".)

Have the "Follow TCP Stream" code put up a dialog box, rather than
spitting a message out to the standard error, if the attempt to create
the temporary file fails.

Check also whether the attempt to open the "Follow TCP Stream" temporary
file for reading fails, and put up a dialog box for that as well.

svn path=/trunk/; revision=502
1999-08-16 23:58:30 +00:00
Guy Harris afe2eecfd7 Get rid of the comments saying "make ["decode_numeric_bitfield()"] shift
the value appropriately!" - a change from Olivier Abad did so.

svn path=/trunk/; revision=501
1999-08-16 05:54:32 +00:00
Gilbert Ramirez 49734a369e Fixed segfault with new gtk_tree_item deselection routine and -S option.
svn path=/trunk/; revision=500
1999-08-15 23:40:33 +00:00
Guy Harris 714eefd24e The "loop_data" structure is used only in "capture.c"; move its
definition from "capture.h" to "capture.c".

svn path=/trunk/; revision=499
1999-08-15 22:31:22 +00:00
Guy Harris 4df5d62d6e "open_cap_file()", if it succeeds, closes any capture file we had open;
that means it destroys any read filter we had, so we don't need to
destroy it in "capture()" after "open_cap_file()" succeeds.

svn path=/trunk/; revision=498
1999-08-15 22:16:59 +00:00
Guy Harris 0171508113 Don't preserve the read filter from file to file - you won't necessarily
want to read the next file with the same filter that you used on the
last file.

In the "File/Open" dialog box, parse the read filter before trying to
open the file, and if the parse fails, leave the dialog box up so the
user still has the filter and file name around and can try to fix the
problem.

Keep the compiled read filter attached to the "capture_file" structure,
so you don't have to reparse it on a "File/Reload".

svn path=/trunk/; revision=497
1999-08-15 19:18:46 +00:00
Gilbert Ramirez 77e429e1b9 Fixed the problem with an assert coming from gtkwidget.c:3196 when
selecting a field from more than one protocol tree. It turns out that
gtktree.c doesn't clear the tree-item selection list when you use
gtk_tree_clear_items() (which calls gtk_tree_remove_items() ). So the next
time a tree item is selected in a new protocol tree (which is our old
protocol tree, with everything removed, and new things added), gtk_tree
tries to _deselect_ our old selection. But that tree-item which is trying
to be deselected is long gone, resulting in the assert because widget == NULL.
A function needs to be added to gtk_tree to deselect the tree-item selection
for us. (or we need to go through the hassle of creating a new gtk_tree
instead of recycling tree_view over and over).

I stole some code from another section of gtktree.c which lets us clear
the selection in clear_tree_and_hex_views().

Also, I modified the argument to gtk_tree_set_view_mode. We were using
"TRUE", when really we should have used a member of the GtkTreeViewMode
enumeration, namely GTK_TREE_VIEW_ITEM ( which is 1, which is TRUE :-)

svn path=/trunk/; revision=496
1999-08-15 07:28:23 +00:00
Guy Harris 8f0acf3551 Have "wtap_open_offline()" return, on failure, an indication of the
reason for the failure, and have it do the checks to make sure the file
being opened is a plain file or a pipe.

Have "open_cap_file()" make use of that.

Don't automatically set "last_open_dir" if a "-r" flag was specified on
the command line - do so only if the file in question could actually be
opened.

svn path=/trunk/; revision=495
1999-08-15 06:59:13 +00:00
Guy Harris f452748340 "read_cap_file()" doesn't need to be passed a file name as an argument -
it's called after "open_cap_file()" has been called, and is always
passed the file name passed to "open_cap_file()", and that file name is
stored as "cf->filename", so "read_cap_file()" can just use
"cf->filename" as the pathname of the file.

svn path=/trunk/; revision=494
1999-08-15 01:02:26 +00:00
Guy Harris 8042652058 Oops, forgot to get rid of the "open_cap_file()" in "load_cap_file()"
when I turned the latter into "read_cap_file()".

svn path=/trunk/; revision=493
1999-08-15 00:55:22 +00:00
Guy Harris ea6a522b28 Split "load_cap_file()" into "open_cap_file()" and "read_cap_file()".
The former, which used to be called by "load_cap_file()", now just opens
the file and, if the open succeeds, closes any capture file we
previously had open, reinitializes any protocols that need
reinitialization, and saves information about the new capture file in
the "capture_file" structure to which it was passed a pointer.  The
latter reads the file already opened by "read_cap_file()".

For "File/Open", call "open_cap_file()" before dismissing the file
selection box; if it fails, "open_cap_file()" will have popped up a
message box complaining about it - just return, leaving the file
selection box open so the user can, after dismissing the message box,
either try again with a different file name, or dismiss the file
selection box.  (Other file selection boxes should be made to work the
same way.)  If "open_cap_file()" succeeds, dismiss the file selection
box, and read the capture file in.

svn path=/trunk/; revision=492
1999-08-15 00:26:11 +00:00
Guy Harris 9e58014e7f Add ICMP to the set of packet types counted in the window shown while a
capture is in progress.

svn path=/trunk/; revision=491
1999-08-14 23:47:20 +00:00
Gilbert Ramirez 499f907269 Fixed File|Save As (it was using wrong variable for source filename).
Ethereal now remembers the directory where it last opened a file, either
via the GUI File|Open or command-line '-r' option. The next time File|Open
is used, browsing starts from that directory.

svn path=/trunk/; revision=490
1999-08-14 19:53:31 +00:00
Gilbert Ramirez cb61bf1ede Fixed segfault with combination of new dfilter struct usage, rfcode,
and File | Open option.

svn path=/trunk/; revision=489
1999-08-14 18:51:26 +00:00
Gilbert Ramirez 2287f6de4e Added dfilter-int.h to list of deliverables.
svn path=/trunk/; revision=488
1999-08-14 06:42:36 +00:00
Gilbert Ramirez 8030084e93 Modified YACC grammar to use non-yy symbols, to avoid conflicts with
libpcap's that were compiled with symbols beginning with 'yy'.

svn path=/trunk/; revision=487
1999-08-14 06:24:27 +00:00
Guy Harris 6572382f9a Have the "delta" format for time stamps show the time delta between a
packet and the previous *displayed* packet, rather than the previous
packet in a capture.

svn path=/trunk/; revision=486
1999-08-14 04:23:22 +00:00
Guy Harris c7a00d29f8 Fix up the code that changes the "command-line-specified" time format to
handle a display with a display filter.

(Also, don't have it recompute the time stamps - they were computed when
the packet was added to the packet list in the first place.)

svn path=/trunk/; revision=485
1999-08-14 03:36:30 +00:00
Guy Harris edb0a778ed Enable the "Display/Options" menu item when we're capturing with "-S",
so you can change the time stamp column while you're capturing.

svn path=/trunk/; revision=484
1999-08-14 01:33:29 +00:00
Guy Harris fa50f8aa46 In "change_time_formats()", you have to set "fd->cinfo" before you can
use "check_col()", otherwise "check_col()" always fails, and the time
column never gets changed.  (How did I manage to break that?)

svn path=/trunk/; revision=483
1999-08-14 01:27:29 +00:00
Gilbert Ramirez 719c7f3ab2 Removed unneeded 'color' field from header_field_info.
svn path=/trunk/; revision=482
1999-08-14 01:26:39 +00:00
Gilbert Ramirez cd55daeefa Added Brad's <brad@openbsd.org> patch to fix compilation from
separate directory.

svn path=/trunk/; revision=481
1999-08-13 23:52:49 +00:00
Gilbert Ramirez ab6490398c Moved global memory alloction used in display filters (which was stored
in dfilter-grammar.y) to a new struct dfilter. Display filters now have
their own struct, rather than simply being GNode's. This allows multiple
display filters to exist at once, aiding John McDermott in his
work on colorization.

svn path=/trunk/; revision=480
1999-08-13 23:47:43 +00:00
Guy Harris a5acc58fe3 Create a "dfilter-int.h" file, containing stuff used internally to the
display filter code but not outside it (and not static to one of the
modules in the display filter code), with most of that stuff moved there
from "dfilter.h".

Add a declaration of "byte_str_to_guint8_array()" to "dfilter-int.h".

svn path=/trunk/; revision=479
1999-08-12 21:16:32 +00:00
Gilbert Ramirez 6c9276f03c One small regex change, just to be safe.
svn path=/trunk/; revision=478
1999-08-12 15:20:18 +00:00
Gilbert Ramirez 336b94f506 Fixed two bugs in display filter parsing.
1. Some IP addresses (like 0.0.0.0) would be interpreted as byte ranges.
2. Parens were being ignored.

Thanks to Guy for pointing these out to me.

svn path=/trunk/; revision=477
1999-08-12 15:10:48 +00:00
Guy Harris 2fd7555110 "file_sel_ok_cb()" isn't used except with the "File/Open" dialog box;
rename it to "file_open_ok_cb()", move it next to the routine to create
that dialog box, and make it static.

svn path=/trunk/; revision=476
1999-08-12 07:36:41 +00:00
Gilbert Ramirez f5d36ff3cd Added Ashok's fix for RSVP and support for RSVP+.
svn path=/trunk/; revision=475
1999-08-12 05:19:06 +00:00
Guy Harris 0b424dc9b9 The "-R" command-line filter is applied when reading the capture file;
it's not a display filter (packets that don't match the filter are
discarded completely, not just filtered out of the display), although it
has the same syntax as a display filter.

svn path=/trunk/; revision=473
1999-08-11 20:10:38 +00:00
Guy Harris d31ad7cb55 The changes to file loading decreased file loading time rather than
increasing it.

svn path=/trunk/; revision=472
1999-08-11 20:08:32 +00:00
Gilbert Ramirez 499eff7b0d Changed two #include <>'s to #include "" 's, for stylistic reasons only.
svn path=/trunk/; revision=471
1999-08-11 17:02:28 +00:00
Gilbert Ramirez d42b2df23f Fixed packaging problem (the list of deliverables in the doc/ directory).
Updated NEWS file.
Moved version to 0.7.2 for imminent release.

svn path=/trunk/; revision=470
1999-08-11 16:42:51 +00:00
Gilbert Ramirez 8b3ee0f761 Modified the flex scanner to use symbols that start with "dfilter_"
instead of "yy". (dfilter-grammar.y was modified to #define yylex as
dfilter_lex).

VERSION is no longer needed since the doc/Makefile now uses @VERSION@,
passed to it from 'configure'.

svn path=/trunk/; revision=469
1999-08-11 16:25:07 +00:00
Gilbert Ramirez c0fa3841ee Modified autoconf/automake files for doc subdirectory so that all of
Ethereal can be compiled in a build directory separated from the source
directory.

svn path=/trunk/; revision=468
1999-08-11 16:05:19 +00:00
Guy Harris 0d5e441ea0 Display counts of NetBEUI/NBF frames as "NetBIOS".
svn path=/trunk/; revision=467
1999-08-10 20:13:21 +00:00
Guy Harris 37ddd5f5ed Jeff Foster's changes to add support for NetBEUI/NBF (NetBIOS atop 802.2
LLC, the original NetBIOS encapsulation).

svn path=/trunk/; revision=466
1999-08-10 20:06:39 +00:00
Laurent Deniel 64c0d52928 Change the test of pcap_dispatch returned value
which might be -1.

svn path=/trunk/; revision=465
1999-08-10 11:30:03 +00:00
Laurent Deniel 923bc52dc6 Fix the -S option timeout handling:
- when in a live capture mode no packet is received
during a timeout, the displayer process is notified
about any remaining captured packets. Note that this
fix works on Linux only with a patched libpcap.
- remove unnecessary time() call and sync_time
loop_data field.

Thanks to John McDermott for his help during fixing
and testing.

svn path=/trunk/; revision=464
1999-08-10 11:08:38 +00:00
Guy Harris 3f14fd3d7e More whitespace fixups, and fix a typo in a comment.
svn path=/trunk/; revision=463
1999-08-10 07:54:07 +00:00
Guy Harris 16e3dd2e48 Fix up whitespace.
svn path=/trunk/; revision=462
1999-08-10 07:52:54 +00:00
Guy Harris 2dc4a15076 Fix up some comments.
svn path=/trunk/; revision=461
1999-08-10 07:37:38 +00:00
Guy Harris 8eb998e360 Add the ability to specify a filter to be used when reading the file to
the "Open File" dialog box (the "Open File" dialog box equivalent of the
"-R" flag).  Have "load_cap_file()" take the filter expression as an
argument, and make the global "rfilter" into a member of a
"capture_file" structure.

When reading a temporary capture file after a live capture, don't apply
any filter.

Move the code that pops up error boxes on file opens when reading a
capture file back to "load_cap_file()"; it also pops up error boxes if
the filter expression can't be parsed.

Don't enable "File/Save" or "File/Save As..." if an attempt to read a
capture file fails - if there was already an open capture file, it was
closed by "load_cap_file()", so we no longer have an open file to save.

svn path=/trunk/; revision=460
1999-08-10 07:16:47 +00:00
Guy Harris 7ec128ccb2 Initialize the "next" pointer of a "frame_data" structure to NULL before
putting it on the list of frames.

svn path=/trunk/; revision=459
1999-08-10 06:54:12 +00:00
Guy Harris 2563e672c8 Fix the list of descriptions of codes in ICMP Unreachable messages.
svn path=/trunk/; revision=458
1999-08-10 04:57:47 +00:00
Guy Harris 86a8ad1dcd Building a GList by adding elements to the end with "g_list_append()" is
N^2 in the ultimate size of the list (as "g_list_append()" is linear in
the size of the list, at least when used in the way the GLib
documentation says to use it); instead, maintain our own linked list of
"frame_data" structures for all packets read, including a pointer to the
last element.

"gtk_clist_set_row_data()" is linear in the row number, so if it's used
to attach a pointer to the "frame_data" structure for a packet to the
packet list GtkClist row for each packet, that's also N^2 in the number
of packets in that packet list; instead, store the row number in the
"frame_data" structure, and find the packet for a given row by scanning
the list for it (we were already scanning the list linearly to find that
packet's index in the list of all packets; that's only done when a
packet's selected, so it's not *too* bad, but it might be nice to avoid
having to do that scan).

svn path=/trunk/; revision=457
1999-08-10 04:13:37 +00:00
Gilbert Ramirez 5ad4d240bb Fixed a bug in displaying RIF ring/bridge pairs.
svn path=/trunk/; revision=456
1999-08-10 02:54:59 +00:00
Gilbert Ramirez e3e125878f Added John McDermott's patch for handling ICMP Unreachable|Fragmentation
Required packets.

svn path=/trunk/; revision=455
1999-08-09 18:18:38 +00:00
Guy Harris 059d89e65b Jochen Friedrich's patch to add a "-R" flag, which takes a
display-filter syntax expression as an argument, and causes that filter
to be applied to all packets when a capture file is read in; packets
that don't match the filter are discarded.

svn path=/trunk/; revision=454
1999-08-08 01:29:24 +00:00