Commit graph

619 commits

Author SHA1 Message Date
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
Guy Harris
28009b86d2 Don't include in the list of interfaces offered by the "capture" dialog
box interfaces we can't open; this filters out loopback interfaces on
e.g. Solaris (which you can't get at with a DLPI device, so you can't
capture traffic on them), and also means we don't report *any*
interfaces if you don't have permission to open any (which means you
don't have permission to capture packets).

If we don't find any interfaces, pop up a message box saying so.

Free up the interface "ioctl" buffer, and close the socket we were
using, before returning from "get_interface_list()".

If "get_interface_list()" returns a null pointer (meaning it failed),
don't pop up the "capture" dialog box.

svn path=/trunk/; revision=634
1999-09-08 05:41:25 +00:00
Guy Harris
cde9b4699c Add in a bunch of changes based on the IBM specification for the NetBIOS
Frame protocol (that being what this dissects).

If you're cutting up something into bitfields, the bitfield dissection
returned by "dissect_bitfield_XXX()" should be the first text on the
line - if not, then if the text items that come before the various
bitfields aren't all the same length, the bits don't line up.

Cope with packets from one of Gilbert's captures, where the sender
"name" in some NBF datagrams isn't a NetBIOS name, it's 10 octets of 0
followed by a MAC address!

The "name type" in the "Data2" field of NBF frames is 0x00 for unique
names and 0x01 for group names, not a "16th character of a NetBIOS name"
name type.

Fix up various other things.

svn path=/trunk/; revision=633
1999-09-03 07:20:15 +00:00
Guy Harris
37af231761 Add in a pile of additional packet formats from
http://ourworld.compuserve.com/homepages/TimothyDEvans/contents.htm

Assorted minor cleanups.

svn path=/trunk/; revision=632
1999-09-03 04:37:11 +00:00
Guy Harris
fdc29358f3 Stuff to IPX socket 0x0455 (NetBIOS), and to sockets 0x0551 and 0x0553
(NWLink), are sufficiently different that they should be handled in
different routines.

Change the decode to match NetMon a bit more.

svn path=/trunk/; revision=631
1999-09-03 03:22:19 +00:00
Guy Harris
27c0d2d022 Use "process_netbios_name()", rather than "canonicalize_netbios_name()",
to turn NetBIOS names into a nice printable form.

Put the description of NetBIOS name types into places where it fits;
have "packet-netbios.c" export a routine to interpret them.

svn path=/trunk/; revision=630
1999-09-03 01:43:09 +00:00
Guy Harris
dec805ba0d Dissect the name type flag in NBIPX name service packets (at least
according to what NetMon thinks the bits are).

svn path=/trunk/; revision=629
1999-09-03 00:38:50 +00:00
Guy Harris
3d7691d432 Add a bunch more NetBIOS name types.
That makes the space of name types even more sparse; use "val_to_str()"
to decode them, rather than an indexed table.

Make a "process_netbios_name()" routine that shows non-printable
characters in NetBIOS names as <XX>, where "XX" is the value of the
character in hex (the way Network Monitor does), and have
"get_netbios_name()" use it (NetBIOS-over-TCP will be made to use it in
the future).

When displaying NetBIOS names, include the name type character at the
end, in angle brackets, the way Network Monitor does (show it in hex
even if it *is* printable - 0x20 is 0x20, not "space", in that context).

svn path=/trunk/; revision=628
1999-09-03 00:24:40 +00:00
Guy Harris
f9a1fea17c Have the IPX code set "pi.len" and "pi.captured_len" based on the length
in the IPX header, and have the dissectors it calls use it rather than
being passed the length as an argument.

Treat both packet type 20 ("WAN Broadcast") and 4 ("IPX", although 3 is
also "IPX", according to Network Monitor) as potentially being NetBIOS
packets.

The packet types for the IPX NetBIOS socket (0x0455) and the NWLink
sockets (0x0551 and 0x0553) are different (perhaps because there's one
socket for the 0x0455 NBIPX, so you have to do name service and datagram
service and have the packet types distinguish them, but NWLink has
separate sockets for name service and datagram service).

The packet type for name service and for datagram service are at
*different locations* in the packet, which is unfortunate if you want to
use the packet type to distinguish name service and datagram service
packets.  Use the packet length, for now, to distinguish them, with
socket 0x0455.

Dissect datagram packets differently from name service packets.

Export "packet-netbios.c"'s "netbios_add_name()" routine, and use it
when dissecting NBIPX packets as well.

Label NBIPX packets as "NBIPX" rather than "NetBIOS".

svn path=/trunk/; revision=627
1999-09-02 23:17:58 +00:00
Guy Harris
c135be4e53 When skipping over the padding at the end of a record in a capture file,
don't seek around it - some implementations of the standard I/O library
routines (e.g., the ones in Solaris 2.5.1, at least) appear not to be
clever enough to handle seeks that occur within the buffer by moving the
current buffer position; instead, they do a seek on the underlying file
descriptor *and* appear to throw out the buffer, forcing them to do
another read.

Instead, read it into a buffer.

svn path=/trunk/; revision=626
1999-09-02 00:14:06 +00:00
Guy Harris
b87ec88778 When reading packets from a capture file, don't seek around record
header fields we don't look at - some implementations of the standard
I/O library routines (e.g., the ones in Solaris 2.5.1, at least) appear
not to be clever enough to handle seeks that occur within the buffer by
moving the current buffer position; instead, they do a seek on the
underlying file descriptor *and* appear to throw out the buffer, forcing
them to do another read.

Instead, read the entire record header into a structure, and pick the
relevant bits out of it.

Also, skip over the FCS in LAPB captures by reading it rather than
seeking around it (should we put it in the pseudo-header?).

svn path=/trunk/; revision=625
1999-09-01 23:53:58 +00:00
Guy Harris
bb12ec7ba1 Bert Driehuis' patch to add a "--with-ucdsnmp" option that specifies the
directory in which the UCD SNMP library is found (and to check for the
UCD SNMP stuff in "$prefix" if "$prefix" isn't "/usr/local"), and to
have "Makefile.am" use "$(MAKE)" rather than "make".

svn path=/trunk/; revision=624
1999-09-01 22:59:48 +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
Guy Harris
25502bc8fc Bert Driehuis' patch to handle "libpcap" stuff being installed in
subdirectories of "$prefix", if "$prefix" is neither "/usr" nor
"/usr/local".

svn path=/trunk/; revision=622
1999-08-31 23:24:25 +00:00
Guy Harris
fa1930a89c We now use "snprintf()" in "dissect_ip_tcp_options()", so we may need to
include "snprintf.h" to declare it.

svn path=/trunk/; revision=621
1999-08-31 23:21:29 +00:00
Guy Harris
9d14dfd6a9 Fix, from Bert Driehuis, to the stuff that checks for BSD/OS.
svn path=/trunk/; revision=620
1999-08-31 22:36:20 +00:00
Guy Harris
81cda54d24 Olivier Abad's fix to the problem where some capture files appeared to
be truncated - treat a record with a data length of 0 as an end of file.

svn path=/trunk/; revision=619
1999-08-31 17:40:49 +00:00
Gilbert Ramirez
4b5b164ab4 Packaging fix for doc subdirectory changes.
svn path=/trunk/; revision=617
1999-08-31 06:26:12 +00:00
Gilbert Ramirez
978375cc2b Added info about Linux libpcap misbehavior, and where to download the libpcap
patch.

svn path=/trunk/; revision=616
1999-08-31 06:09:25 +00:00
Gilbert Ramirez
cc7387e116 Removed hacked-up doc/Makefile.in, and replaced it with simple doc/Makefile.am.
svn path=/trunk/; revision=615
1999-08-31 05:58:48 +00:00
Gilbert Ramirez
bf20c06bea Changed gtk subdirectory to use only Makefile.am, and not have a configure
script. The configuration is faster this way. Also, moved version to 0.7.3.

svn path=/trunk/; revision=614
1999-08-31 05:52:08 +00:00
Guy Harris
2f1f2b08ed Convert the seconds value to the right byte order before using it at
all, not just before the third time you use it....

svn path=/trunk/; revision=613
1999-08-31 00:25:19 +00:00
Guy Harris
d6147cd00a Fixes from Olivier Abad to the code to maintain "wth->data_offset".
Use "pletohs()" and "pletohl()" to access 16-bit and 32-bit fields in
the file and packet headers, as those fields are little-endian.

svn path=/trunk/; revision=612
1999-08-30 20:40:13 +00:00
Gilbert Ramirez
6edb400771 Now that FT_BOOLEAN display filter fields are treated differently (only
their existence is checked), some FT_BOOLEAN-related functions in dfilter.c
are no longer called. So I removed them.

svn path=/trunk/; revision=611
1999-08-30 16:01:42 +00:00
Gilbert Ramirez
fc7bf366a3 Fixed problem with not being able to filt on field values.
svn path=/trunk/; revision=610
1999-08-30 15:51:44 +00:00
Gilbert Ramirez
af5f43fb70 Fix some compilation warnings.
svn path=/trunk/; revision=609
1999-08-29 04:15:31 +00:00
Gilbert Ramirez
10adb4dbee Removed from the display filter/proto_tree code the assumption that
a protocol occurs only once in a packet. Because of encapsulation (IP within
IP), a protocol can occur more than once. I don't have a packet trace
showing such a packet, but the code should handle it now. The one thing
that it cannot do, though, is differentiate the levels. It might be
nice to say:
	ip{1}.src == 192.168.1.1 && ipx{2}.dst == 10.0.0.1

In the dfilter grammar I had left IPXNET variables out of the list
of variables that could be checked for existence. Now you can check
for the existence of ipx.srcnet and ipx.dstnet. Hurrah.

svn path=/trunk/; revision=608
1999-08-29 04:06:43 +00:00
Gilbert Ramirez
0d9fcad21c Stop processing of colorization display filters after first match.
Remove debugging statements from colors.c.
Add blurb about Match Selected and Colorization to man page.

svn path=/trunk/; revision=607
1999-08-28 23:47:50 +00:00
Gilbert Ramirez
165c3724dd Updated RSVP with Ashok's patch. Fixes code for 64-bit platforms.
svn path=/trunk/; revision=606
1999-08-28 21:59:30 +00:00
Guy Harris
670cf84e9b For unknown options without "syntax" errors, show the length in bytes.
svn path=/trunk/; revision=605
1999-08-28 19:38:37 +00:00
Guy Harris
f9068da3e0 Handle unknown options in "dissect_ip_tcp_options()" better; we assume
that the only options that contain *no* length byte are the IP and TCP
EOL and NOP options so that we can treat unknown options as
VARIABLE_LENGTH with a minimum of 2, and at least be able to move on to
the next option by using the length in the option, rather than just
reporting the unknown option and processing no options after it.

svn path=/trunk/; revision=604
1999-08-28 19:17:17 +00:00
Guy Harris
55d77f70d8 A slightly cleaner version - hide the "if it's the last row, the element
is pointed to by 'row_list_end', otherwise use 'g_list_nth()'" stuff
inside a macro.

Use that macro in place of an additional "g_list_nth()" call.

svn path=/trunk/; revision=603
1999-08-28 18:48:55 +00:00
Guy Harris
6ffae25d35 "CFILTERS_CONTAINS_FILTER()" should check for the presence of color
filters by checking whether the structure pointed to by "cf->colors" has
a non-zero "num_of_filters", not a non-null "color_filters" (the latter
points to the CList widget holding the list of filters, and may be
non-null even if there currently aren't any filters).

svn path=/trunk/; revision=602
1999-08-28 18:42:28 +00:00
Guy Harris
18ecb7c367 PPP options in LCP, IPCP, etc. are like IP and TCP options - one octet
of option code, one octet of length (which includes the two option code
and length bytes), followed by 0 or more octets of option data, with
some options being fixed-length and some being variable-length.  Put
some stuff from the PPP control protocol option parsing code into the
IP-and-TCP option parsing code, and use the latter instead of the
former.

(That code might also be usable for CDP as well, with some stuff added
to it.)

Shuffle the arguments to "dissect_ip_tcp_options()" to resemble those of
various other dissectors (i.e., with the "proto_tree *" at the end).

Add in code to dissect a pile of PPP options documented in various RFCs.

svn path=/trunk/; revision=601
1999-08-28 08:31:28 +00:00
Gilbert Ramirez
75e0f95517 Changed ip.flags from FT_UINT16 to FT_UINT8, and made it highlight only
one byte in the hexdump.

svn path=/trunk/; revision=600
1999-08-28 03:56:03 +00:00
Gilbert Ramirez
6f46f57ff1 Set protocol column to "IP" for fragmented IP packets. It was not being set at
the IP layer, leaving the lower layer's abbreviation in the protocol column.

svn path=/trunk/; revision=599
1999-08-28 02:33:47 +00:00
Gilbert Ramirez
b5ee65e1a8 Removed debug printf's.
svn path=/trunk/; revision=598
1999-08-28 02:18:15 +00:00
Guy Harris
bb6a82004e Don't do file-read progress bar updates with a timeout; instead, update
the progress bar up to 100 times, as we get another percent closer to
completion.  That reduces the number of times we run the GTK+ main loop;
that main loop may do a "select()" or "poll()" or FIONREAD "ioctl" to
check for input from the X server, adding to the CPU overhead of reading
a file.

The packet filtering progress bar is already updated in a similar
fashion; make it also do up to 100 updates.

svn path=/trunk/; revision=597
1999-08-28 01:51:58 +00:00
Guy Harris
ae53260d02 Keep in the "wtap" structure the current offset into the file being
read, and maintain it ourselves as we read through the file, rather than
calling "ftell()" for every packet we read - "ftell()" may involve an
"lseek()" call, which could add a noticeable CPU overhead when reading a
large file.

svn path=/trunk/; revision=596
1999-08-28 01:19:45 +00:00
Gilbert Ramirez
f7951bd593 Touched these files to make 'make dist' happy.
svn path=/trunk/; revision=595
1999-08-27 23:39:32 +00:00
Gilbert Ramirez
3764b0a3b1 Updated docs.
svn path=/trunk/; revision=594
1999-08-27 22:57:56 +00:00
Gilbert Ramirez
e62dfe591b Added gtk subdirectory, with patched gtkclist.c in it. We can use this
optimized gtkclist until Guy's changes appear in the offical GTK+.

svn path=/trunk/; revision=593
1999-08-27 22:27:18 +00:00
Guy Harris
72eb495fab "long" -> "gint32" ("gint32" is 32 bits, "long" isn't necessarily 32
bits and is definitely not 32 bits on some platforms).

svn path=/trunk/; revision=592
1999-08-27 20:10:14 +00:00
Gilbert Ramirez
b53d4ba179 Changed packet-tr.c to insert tr.sr, a FT_BOOLEAN field, only if tr.sr
is true. The test for truth now becomes a test for existence. The dfilter
grammar no longer recognizes 'true' and 'false', since you can now check
a boolean field via:

	tr.sr

or by its negation:

	!tr.sr

svn path=/trunk/; revision=591
1999-08-27 19:27:22 +00:00
Gilbert Ramirez
a14aa01462 Updated RSVP decoder with Ashok's newest code.
svn path=/trunk/; revision=590
1999-08-27 19:21:36 +00:00
Gilbert Ramirez
11ca5817b6 The token-ring decoder now takes into account some really garbled
TR packets that are seen on Linux 2.0 boxes (viewing your own packets
before they get to the wire). Thanks to Tom Gallagher <Tom.Gallagher@madge.com>
for providing the patch.

svn path=/trunk/; revision=589
1999-08-27 19:15:38 +00:00
Guy Harris
6bd284169e No, 0xCC is SNRME. (I *told* you I hated reversing bit strings....)
svn path=/trunk/; revision=588
1999-08-27 18:02:41 +00:00
Guy Harris
970fa328a4 TEST is 0xE0, not 0xC0; 0xC0 is SNRME. (I hate having to reverse bit
strings....)  Thanks to Tom Gallagher at Madge for pointing this out.

svn path=/trunk/; revision=587
1999-08-27 18:01:02 +00:00
Guy Harris
cb07f507aa Properly pluralize "bytes" in the detail line for "dissect_data()".
svn path=/trunk/; revision=586
1999-08-26 17:51:44 +00:00
Gilbert Ramirez
da72d12846 Dissect unknown IP protocols with dissect_data().
svn path=/trunk/; revision=585
1999-08-26 17:31:37 +00:00