Commit Graph

300 Commits

Author SHA1 Message Date
Gilbert Ramirez 6598abd96f Add Mobile IP dissector. Converted to use tvbuff.
I'm going to make one more change to get rid of use of END_OF_FRAME, but
that will be later.

svn path=/trunk/; revision=2013
2000-05-27 13:53:26 +00:00
Guy Harris b23955a89b EIGRP over Appletalk and EIGRP over IPX support, from Paul Ionescu.
svn path=/trunk/; revision=1994
2000-05-22 18:09:36 +00:00
Gilbert Ramirez 06ba8a87c2 Add very basic tvbuff documentation. I still need to explain TVBUFF_COMPOSITE's,
and explain how to use exceptions.h.

svn path=/trunk/; revision=1963
2000-05-15 06:48:16 +00:00
Gilbert Ramirez dbf648436a Add a sample Makefile for regression testing by using tethereal.
svn path=/trunk/; revision=1947
2000-05-12 05:47:00 +00:00
Gilbert Ramirez af9016663d Remove proto_tree doc, as all necessary info in it is in README.developer.
Add tvbtest.c to list of packaged files.

svn path=/trunk/; revision=1944
2000-05-12 04:00:05 +00:00
Gilbert Ramirez 292e38e2c6 Add tvbuff class.
Add exceptions routines.
Convert proto_tree_add_*() routines to require tvbuff_t* argument.
Convert all dissectors to pass NULL argument ("NullTVB" macro == NULL) as
the tvbuff_t* argument to proto_tree_add_*() routines.

dissect_packet() creates a tvbuff_t, wraps the next dissect call in
a TRY block, will print "Short Frame" on the proto_tree if a BoundsError
exception is caught.

The FDDI dissector is converted to use tvbuff's.

svn path=/trunk/; revision=1939
2000-05-11 08:18:09 +00:00
Guy Harris 162800efb3 In "Makefile.am" and "Makefile.nmake", have "DISSECTOR_SOURCES" include
only the dissector source files, not the header files; that way you
don't feed the header files to "make-reg-dotc", as "make-reg-dotc" won't
find any registration routines there so there's no point in feeding
header files to it.

Doing so means that we can make "DISSECTOR_OBJECTS" in "Makefile.nmake"
by doing

	DISSECTOR_OBJECTS = $(DISSECTOR_SOURCES:.c=.obj)

rather than separately enumerating the object files, as Nmake supports
System V "make"-style substitution.

This should let users who change "DISSECTOR_SOURCES" in one of those
files just copy it to the other file.

svn path=/trunk/; revision=1938
2000-05-11 07:34:32 +00:00
Guy Harris 6bbfd97bde Add routines to:
register lists of "heuristic" dissectors, which are handed a
	frame that may or may contain a payload for the protocol they
	dissect, and that return FALSE if it's not or dissect the packet
	and return TRUE if it is;

	add a dissector to such a list;

	go through such a list, calling each dissector until either a
	dissector returns TRUE, in which case the routine returns TRUE,
	or it runs out of entries in the list, in which case the routine
	returns FALSE.

Have lists of heuristic dissectors for TCP and for COTP when used with
the Inactive Subset of CLNP, and add the GIOP and Yahoo Messenger
dissectors to the first list and the Sinec H1 dissector to the second
list.

Make the dissector name argument to "dissector_add()" and
"dissector_delete()" a "const char *" rarther than just a "char *".

Add "heur_dissector_add()", the routine to add a heuristic dissector to
a list of heuristic dissectors, to the set of routines we can export to
plugins through a table on platforms where dynamically-loaded code can't
call stuff in the main program, and initialize the element in the table
in question for "dissector_add()" (which we'd forgotten to do).

svn path=/trunk/; revision=1909
2000-05-05 09:32:36 +00:00
Guy Harris cd59d75124 Support for RTCP and RTP, from Jason Lango.
svn path=/trunk/; revision=1885
2000-04-21 01:45:58 +00:00
Guy Harris edd1f26170 Have the IPv6 dissector use the same dissector table as the IPv4
dissector.

Don't dissect the payload of any fragmented IPv6 packet unless it's the
initial fragment (that's what we do for IPv4).

svn path=/trunk/; revision=1882
2000-04-20 07:05:58 +00:00
Guy Harris c2a68f6b86 Microsoft Proxy protocol dissector from Jeff Foster.
svn path=/trunk/; revision=1881
2000-04-20 02:18:53 +00:00
Guy Harris 0ba3e2b233 Register a "llc.dsap" dissector table for 802.2 LLC, and have dissectors
for protocols that run inside 802.2 LLC register themselves with it
using "dissector_add()".

Make various dissectors static if they can be, and remove from header
files declarations of those dissectors.

svn path=/trunk/; revision=1872
2000-04-17 00:32:43 +00:00
Guy Harris 83a275737e Make various dissectors static if they can be, and get rid of any header
files that no longer contain any information as a result of that change.

svn path=/trunk/; revision=1871
2000-04-16 22:59:37 +00:00
Guy Harris 9aa7670a4e Register an "ip.proto" dissector table for IPv4, and have dissectors for
protocols that run inside IPv4 register themselves with it using
"dissector_add()".

Make various dissectors static if they can be, and get rid of any header
files that no longer contain any information as a result of that change.

svn path=/trunk/; revision=1870
2000-04-16 22:46:25 +00:00
Guy Harris 4179944c14 Register a "ppp.protocol" dissector table for PPP, and have dissectors
for protocols that run inside PPP register themselves with it using
"dissector_add()".

svn path=/trunk/; revision=1869
2000-04-16 21:37:07 +00:00
Guy Harris c9d4dd080d Ralf Schneider's changes to enhance to OSI CLNP, CLTP, and ISIS support
and to add OSI ESIS support.

svn path=/trunk/; revision=1865
2000-04-15 22:11:26 +00:00
Guy Harris 0131109a72 Graham Bloice's Win32 icon for Ethereal and Win32 resource-compiler
files to add version/copyright/etc.  information to Win32 executables.

svn path=/trunk/; revision=1859
2000-04-15 04:10:50 +00:00
Olivier Abad 6271cb9f0e Renamed packet-dhis to packet-ddtp.
svn path=/trunk/; revision=1852
2000-04-13 21:08:16 +00:00
Gilbert Ramirez db187f965c Change the sub-dissector handoff registration routines so that the
sub-dissector table is not stored in the header_field_info struct, but
in a separate namespace. Dissector tables are now registered by name
and not by field ID. For example:

        udp_dissector_table = register_dissector_table("udp.port");

Because of this different namespace, dissector tables can have names
that are not field names.  This is useful for ethertype, since multiple
fields are "ethertypes".

packet-ethertype.c replaces ethertype.c (the name was changed so that it
would be named in the same fashion as all the filenames passed to make-reg-dotc)

Although it registers no protocol or field, it registers one dissector table:

	ethertype_dissector_table = register_dissector_table("ethertype");

All protocols that can be called because of an ethertype field now register
that fact with dissector_add() calls.

In this way, one dissector_table services all ethertype fields
(hf_eth_type, hf_llc_type, hf_null_etype, hf_vlan_etype)

Furthermore, the code allows for names of protocols to exist in the
etype_vals, yet a dissector for that protocol doesn't exist. The name
of the dissector is printed in COL_INFO. You're welcome, Richard. :-)

svn path=/trunk/; revision=1848
2000-04-13 18:18:56 +00:00
Guy Harris cf31cb477d Jeff Foster's SOCKS dissector, support for associating dissectors
with conversations and having TCP and UDP check whether a packet is part
of a conversation with a dissector and, if so, using that dissector on
the conversation, and "ethertype()"-style support for allowing a
dissector to call a sub-dissector via the same path that the TCP and UDP
dissectors use, based on port numbers supplied by that dissector.

svn path=/trunk/; revision=1837
2000-04-12 22:53:16 +00:00
Guy Harris 42107e8614 Move calls to "dissector_add()" out of the register routines for TCP and
UDP and into the handoff registration routines for the protocols in
question.

Make the dissectors for those protocols static if they're not called
outside the dissector's source file.

Get rid of header files if all they did was declare dissectors that are
now static; remove declarations of now-static dissectors from header
files that do more than just declare the dissector.

svn path=/trunk/; revision=1823
2000-04-08 07:07:42 +00:00
Guy Harris 160928a318 Jeff Foster's rlogin dissector, and changes to the TCP dissector to
export the urgent pointer (as the rlogin dissector needs it).

svn path=/trunk/; revision=1822
2000-04-08 03:32:10 +00:00
Gilbert Ramirez 209a8a9a79 Packaging fixes.
svn path=/trunk/; revision=1799
2000-04-05 11:04:46 +00:00
Guy Harris e6d47076b8 Make "register.c" depend on "$(srcdir)/make-reg-dotc", so that if the
"make-reg-dotc" script is changed, "register.c" is remade (as the change
may change what it generates).

svn path=/trunk/; revision=1787
2000-04-04 06:10:44 +00:00
Guy Harris a91805901f Use the "-o" flag, rather than using the "-t" flag and redirecting the
standard output, in the rules to get Flex to produce scanner code; that
way, if Flex fails to run for some reason, we don't leave around a
zero-length or otherwise incorrect "XXX-scanner.c" file that might
keep a subsequent make from thinking it has to generate that file.

svn path=/trunk/; revision=1763
2000-03-29 19:55:51 +00:00
Ashok Narayanan 519161968a Support for MultiProtocol Label Switching (MPLS). The following support
is being added

	- MPLS Traffic Engineering extensions for RSVP
	- MPLS-encapsulated IP packets on Ethernet
	- OSPF Extensions for MPLS (including generic opaque LSA
	  support for OSPF)

THe following features will be committed at a later date (if I get around
to writing them :-)

	- Label Distribution Protocol (LDP)
	- IS-IS Extensions for MPLS

svn path=/trunk/; revision=1707
2000-03-09 18:31:51 +00:00
Gilbert Ramirez a3256bd288 Add config.nmake and two Makefile.nmake's to the list of deliverables.
svn path=/trunk/; revision=1690
2000-03-03 12:01:22 +00:00
Guy Harris ed51759ef2 Oops, forgot to include "packet-h1.h".
svn path=/trunk/; revision=1678
2000-03-02 07:27:56 +00:00
Guy Harris fa942a502f Gerrit Gehnen's dissector for the Sinec H1 protocol (Siemens Industrial
Ethernet; used for communication with Siemens S5 PLC's over Ethernet),
and his changes to display OSI COTP TSAPs that consist solely of
printable characters as text rather than as hex data and to decode the
version number resource in COTP.

svn path=/trunk/; revision=1677
2000-03-02 07:27:05 +00:00
Guy Harris 4eee1fa7ca James Coe's developer HOWTO.
svn path=/trunk/; revision=1673
2000-03-01 07:48:03 +00:00
Olivier Abad b752f1ee3c New dissector for DHIS (Dynamic Host Information Services) protocol.
This protocol is UDP based and uses ports 58800 and 58801.

svn path=/trunk/; revision=1667
2000-02-23 22:28:50 +00:00
Guy Harris 15b8822697 Add a "README.bsd", which currently only explains how to enable BPF in
your kernel, but which could hold other notes about Ethereal on
{Free,Net,Open}BSD and/or BSD/OS.

svn path=/trunk/; revision=1653
2000-02-19 21:54:07 +00:00
Gilbert Ramirez 69bbabe59f Build/packaging fix. We have to include an install-exec-hook target
for non-setuid builds, simply because of the way automake works. Automake
makes install-exec-hook a dependency of install-exec-am because it sees it
in Makefile.am, without taking into account the ifdef.

svn path=/trunk/; revision=1638
2000-02-15 21:17:57 +00:00
Gilbert Ramirez ddfa11e870 Create a header file for every packet-*.c file. Prune the packet.h file.
This change allows you to add a new packet-*.c file and not cause a
recompilation of everything that #include's packet.h

Add the plugin_api.[ch] files ot the plugins/Makefile.am packaging list.

Add #define YY_NO_UNPUT 1 to the lex source so that the yyunput symbol
is not defined, squelching a compiler complaint when compiling the generated
C file.

svn path=/trunk/; revision=1637
2000-02-15 21:06:58 +00:00
Guy Harris 12df8af4e3 Jeff Foster's SMB Mailslot and Netlogin dissectors; he split
"packet-smb.c" up into several files.

svn path=/trunk/; revision=1629
2000-02-14 04:02:21 +00:00
Guy Harris c80a7fd1d5 The color stuff is almost completely toolkit-dependent (this isn't just
the color-selection and color-filter-editing GUI stuff; different
toolkits, and different windows systems, have their own notions of color
objects - they may have nothing in common other than the notion that
colors have red, green, and blue values); move it all to the "gtk"
subdirectory for now, and, as we discover stuff stuff that can be made
platform-independent, drag it up to the top-level directory.

svn path=/trunk/; revision=1621
2000-02-12 08:15:31 +00:00
Gilbert Ramirez a2ab3f8c5a Add Peter Kjellerstedt <peter.kjellerstedt@axis.com>'s patches
to add Axis ethernet vendor ID, use libtoolize in autogen.sh, and
provide the very dangerous option of installing ethereal setuid.

I've added a "DANGEROUS" comment to the description of the
--enable-setuid-install option which displays in "./configure --help".

Removed generated files tha old libltdl/.cvsignore brought to my
attention by Peter.

svn path=/trunk/; revision=1616
2000-02-11 03:17:58 +00:00
Gilbert Ramirez c08f671988 Dietmar Petras provided:
* fix a bug in packet-tftp.c dissecting TFTP Option Acknowledgement
  packets. The is no Block-Id in TFTP Option Acknowledgements, as it is
  in TFTP Acknowledgements.
* Extension of manuf by ethernet addresses from ELSA (my company), a german
  vendor of ISDN routers, cable modems, etc.
* New dissector for Time Protocol [RFC 0868]. That protocol works on port
  37 of UDP and TCP. The implementation in this patch only dissects the
  more usual UDP version. It could print the time in a more fashion way,
  but thats for a later version.

svn path=/trunk/; revision=1609
2000-02-09 17:15:59 +00:00
Guy Harris 101bc1a007 Dissector for Cisco's Virtual Trunking Protocol.
svn path=/trunk/; revision=1603
2000-02-05 09:19:06 +00:00
Guy Harris 4b81b2dbc9 Cisco Group Management Protocol dissector.
svn path=/trunk/; revision=1601
2000-02-05 05:54:17 +00:00
Nathan Neulinger 53db0d5587 Added ethereal_static extra target in Makefile.am. Did not add the updates
to configure.in. This should allow someone to do 'make ethereal_static' and
get a staticly built copy of ethereal w/o plugin support on platforms that
support -Wl,-static for static linking.

svn path=/trunk/; revision=1585
2000-01-30 16:57:20 +00:00
Olivier Abad 744ab22245 Add a debian subdirectory and the files needed to generate a debian package.
The files were created by Frederic Peters <fpeters@debian.org>, the maintainer
of the ethereal debian package.
I just modified `rules' to use autogen.sh when building from a CVS tree.
Building a debian package is now very easy :
- in debian/changelog : change the version number (and replace my name with
                        yours)
- dpkg-buildpackage -rfakeroot -us -uc

svn path=/trunk/; revision=1569
2000-01-26 07:00:26 +00:00
Guy Harris c38ed66e9c Add support for Cisco ISL.
svn path=/trunk/; revision=1537
2000-01-24 18:46:45 +00:00
Guy Harris aabf4155cb Include CFLAGS in the command to build "rdps".
svn path=/trunk/; revision=1510
2000-01-18 20:35:40 +00:00
Gilbert Ramirez ccef52a83a Don't exclude register.c from the distribution tarball because we
no longer optionally compile the snmp dissector. But I left the dist-hook
line in the Makefile.am in case we're ever in that situation again.

svn path=/trunk/; revision=1492
2000-01-15 13:45:06 +00:00
Gilbert Ramirez 34a287ee01 Remove libltdl from the build. The directory is still in CVS, but it is
not used in the build. I'll wait a few days to remove the libltdl
directory, just in case.

svn path=/trunk/; revision=1490
2000-01-15 13:25:22 +00:00
Guy Harris eacc4cad71 Arrange that, on Solaris, we link with "-lkstat" if necessary when
linking with "-lsnmp".

Link only Ethereal and Tethereal with "-lpcap"; don't link editcap, or
any of the test programs that the configure script builds, with it
(because that means you also have to arrange that those test programs be
linked with @SOCKET_LIBS@ and @NSL_LIBS@) - i.e., don't add it to LIBS,
add it to PCAP_LIBS, and use that only for programs that need it.

svn path=/trunk/; revision=1484
2000-01-15 09:46:28 +00:00
Guy Harris 486e259d94 Tethereal needs the same set of additional objects that Ethereal does;
make it link with them.

Provide dependencies for Tethereal as well.

Tethereal may need to be linked with "-lsocket" and/or "-lnsl"; check
for that, and arrange that it be linked with them if necessary.

svn path=/trunk/; revision=1483
2000-01-15 08:08:20 +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 9f38b74060 Add "doc/editcap.pod" and "doc/tethereal.pod.template" to the
distribution.

svn path=/trunk/; revision=1469
2000-01-14 07:51:14 +00:00
Guy Harris b799cb10d9 Add "tethereal", a tty-oriented derivative of Ethereal that works like
Sun's snoop or like tcpdump.

svn path=/trunk/; revision=1468
2000-01-14 06:46:00 +00:00
Guy Harris 35a0a0ada4 Export the list of OSI NLPIDs in "nlpid.h", for use by the CDP
dissector.

Add a "value_string" table for NLPIDs to the OSI dissector, and export
it for use by the CDP dissector.

Fix the CDP dissector as per the documentation in

	http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm

and as per some traces we have with CDP data in them.

svn path=/trunk/; revision=1455
2000-01-13 00:41:11 +00:00
Guy Harris 8fafa9af84 Add a man page for "editcap".
svn path=/trunk/; revision=1446
2000-01-09 20:28:26 +00:00
Guy Harris d061d39bd3 Make "editcap" one of the standard targets, so it's built and installed
by default.

Use the automake mechanisms for it, and, having done so, arrange that it
not be linked with GTK+ (which it doesn't need) - it currently links
with libpcap, but that should be fixed as well.  (It also needs a man
page.)

svn path=/trunk/; revision=1445
2000-01-09 20:05:37 +00:00
Gilbert Ramirez 365721f3ee Fix my typo in a variable name.
svn path=/trunk/; revision=1439
2000-01-08 21:56:29 +00:00
Gilbert Ramirez 69edc78327 I finally got autoconf, automake, and the plugins to behave together.
The distro is buildable finally. I had to change "plugins/gryphon" from
a separately configured (i.e., "./configure") package to a member of
the main ethereal autoconf package so that PLUGIN_DIR could be passed
to plugins/gryphon/Makefile.am. In doing so, I had to get rid of
plugins/gryphon/config.h which had PACKAGE and VERSION #defined, the latter
of which was actually used in packet-gryphon.c. So I moved those two
#defines into a new file, plugins/gryphon/moduleinfo.h.

svn path=/trunk/; revision=1438
2000-01-08 19:37:11 +00:00
Guy Harris 355bd9d8ac Add John Thomas' L2TP dissector.
svn path=/trunk/; revision=1433
2000-01-07 09:10:22 +00:00
Gilbert Ramirez dccccd9c9d Add README.vmware to list of deliverables.
svn path=/trunk/; revision=1429
2000-01-06 19:51:26 +00:00
Guy Harris 4096029a66 Take the "simple_dialog()" stuff out of "ui_util.h" and "gtk/ui_util.c",
and move it to "simple_dialog.h" and "gtk/simple_dialog.c".

svn path=/trunk/; revision=1414
2000-01-03 06:59:25 +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 9b4e0a8dd3 Put a list of known OUIs in "oui.h", along with a declaration of
"value_string" array for OUIs.

Add the OUI for the ATM Forum to that list.

Handle the OUI for the ATM Forum in the layer 3 information for ISO TR
9577 in a Broadband Low Layer Information information element (for ATM
LANE).

Add an initial version of the dissection of TLV values in LANE LE
Control frames (I have no frames with TLV values against which to test
it, alas).

svn path=/trunk/; revision=1385
1999-12-29 05:20:00 +00:00
Gerald Combs 45babe7bb5 Integrate libtool/libltdl with the plugin code. Add libtool and libltdl
to the distribution.

svn path=/trunk/; revision=1379
1999-12-26 22:38:07 +00:00
Guy Harris 20b8279b85 Fix a minor typo in a comment.
svn path=/trunk/; revision=1369
1999-12-22 20:12:38 +00:00
Guy Harris 19c69298a4 Add "editcap.c" to the list of "extra" files in the distribution.
svn path=/trunk/; revision=1368
1999-12-22 20:10:49 +00:00
Gilbert Ramirez 9c4b98bc36 Add two 48x48 PNGs to the distribution.
(I'm using -ko when checking in the PNGs... I hope I'm checking
these binary files into CVS correctly. I'll double check after
the commit).

svn path=/trunk/; revision=1355
1999-12-17 05:42:27 +00:00
Guy Harris 096134536e Stuart Stanley's ISIS dissection support.
svn path=/trunk/; revision=1340
1999-12-15 04:34:44 +00:00
Gilbert Ramirez 4a15f6582a Added Bert Driehuis <driehuis@playbeing.org>'s I4B wiretap module
and V.120 decoder.

svn path=/trunk/; revision=1304
1999-12-12 22:40:10 +00:00
Gilbert Ramirez d85f804b4b Add the who protocol (rwho/rwhod/ruptime)
In packet_hex_print(), compute (bstart + blen) only once.

In time_secs_to_str(), return a meaningful string when time == 0, instead
of returing pointer to char buffer with old, inappropriate data in it.

svn path=/trunk/; revision=1297
1999-12-12 05:11:57 +00:00
Guy Harris 5a4d9d6d68 WCCP 1.0 dissection, from Jerry Talkington.
svn path=/trunk/; revision=1295
1999-12-12 03:05:57 +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 80618858d6 Move the GTK+ implementations of various UI utilities out of "util.c"
into "gtk/ui_util.c", and move the declarations of those UI utilities
out of "util.h" into "ui_util.h".  (The header file is in the top-level
directory, rather than the "gtk" directory, because it declares
window-system-independent interfaces to routines with
window-system-dependent implementations.)

Add to "gtk/ui_util.c" a routine to set the window and icon title.

Use that routine to make the title of an Ethereal top-level window be

	{filename} - Ethereal

if there's a capture open, and have "{filename}" be "<capture>" if it's
a temporary capture file.

svn path=/trunk/; revision=1255
1999-12-09 07:19:20 +00:00
Nathan Neulinger 0599f44d09 added ldap dissector placeholder, just does request/response for now, until I have a chance to figure out ASN.1
svn path=/trunk/; revision=1254
1999-12-09 04:06:54 +00:00
Guy Harris e5f812d6ed James Coe's patch to add SRVLOC and NCP-over-IP support.
svn path=/trunk/; revision=1234
1999-12-07 06:13:19 +00:00
Nathan Neulinger 163045012a added simple irc dissector
svn path=/trunk/; revision=1232
1999-12-06 23:57:51 +00:00
Guy Harris af8888e47c Check in the ASN.1 code for reference purposes, although the SNMP
dissector doesn't use it yet - Nathan Neulinger might use it for a
Kerberos 5 dissector, and it might be of use for other dissectors as
well.

svn path=/trunk/; revision=1215
1999-12-05 07:50:01 +00:00
Guy Harris 272505c220 As per Nathan Leulinger's suggestion, have a stub SNMP dissector if
there are no SNMP libraries to use in a real dissector; this means that
other dissectors don't have to care if there are SNMP libraries, they
can just call "dissect_snmp()" - and this also simplifies "Makefile.am"
and "configure.in" a bit, as they just treat "packet-snmp.c" and
"packet-snmp.h" the same way they treat other dissector source files.

svn path=/trunk/; revision=1214
1999-12-05 02:33:52 +00:00
Guy Harris c966023a67 Add rules for making "editcap".
svn path=/trunk/; revision=1209
1999-12-04 21:37:56 +00:00
Nathan Neulinger fb6821f059 added skeletal tacplus/xtacacs dissector
svn path=/trunk/; revision=1191
1999-12-03 21:50:31 +00:00
Gilbert Ramirez 99ae96e58c Add a TODO file.
svn path=/trunk/; revision=1175
1999-12-01 20:58:49 +00:00
Guy Harris ced3198a2b Add a "README.hpux" file, giving notes about the Software Porting And
Archive Centre for HP-UX, who have (perhaps not the latest version of)
Ethereal in their archives, and the HP-UX C compiler options they used
when building their version.

Also note in the "README.hpux" file that there are, in the "INSTALL"
file for "libpcap", several comments about HP-UX that should be read if
you're going to use Ethereal with "libpcap" to capture packets.

svn path=/trunk/; revision=1159
1999-11-29 23:19:09 +00:00
Guy Harris a6d527a70e Add "README.aix", "INSTALL.configure", and "doc/proto_tree" to the
distribution tarballs.

svn path=/trunk/; revision=1156
1999-11-29 20:08:04 +00:00
Nathan Neulinger 117d23c3a1 added start of tns dissector
svn path=/trunk/; revision=1155
1999-11-29 19:43:26 +00:00
Guy Harris 077e70e0b7 Pull the code to dissect an ATM NSAP address out of "packet-q2931.c" and
put it into a subroutine in "packet-arp.c", and call it from
"packet-q2931.c".

Add a "packet-arp.h" header to hold declarations of routines exported by
"packet-atm.c" (other than the ATM dissector itself), moving them out of
"packet.h".

Use the aforementioned NSAP dissector to display ATM addresses in NSAP
format, and display E.164 addresses as ASCII text (under the assumption
that they're presented as a string of IA5, i.e. ASCII, characters, just
as they are in Q.931).

svn path=/trunk/; revision=1124
1999-11-27 04:48:14 +00:00
Guy Harris d1c36982c6 Fixes to Q.931 dissector, and additions from a recent copy of Q.931.
Export some functions from the Q.931 dissector, so the Q.2931 dissector
can use them.

Add a pile of information element dissection to the Q.2931 dissector.

svn path=/trunk/; revision=1104
1999-11-25 10:01:18 +00:00
Gilbert Ramirez de2370185d Added Cisco Auto-RP dissector from Heikki Vatiainen <hessu@cs.tut.fi>
svn path=/trunk/; revision=1099
1999-11-23 17:09:58 +00:00
Gilbert Ramirez 1cbedad8d6 Added Heikki Vatiainen's <hessu@cs.tut.fi> HSRP dissector.
svn path=/trunk/; revision=1086
1999-11-21 20:02:32 +00:00
Gilbert Ramirez 34c9f8241c Added Heikki Vatiainen's <hessu@cs.tut.fi> VRRP dissector.
svn path=/trunk/; revision=1083
1999-11-21 14:43:53 +00:00
Guy Harris 8963fabad6 Beginnings of Q.2931 support.
svn path=/trunk/; revision=1068
1999-11-19 09:55:38 +00:00
Guy Harris 70641c27dd Add support for SSCOP protocol; dissect signalling AAL packets using it.
It's in a file of its own, as I think there may be, or may have been
proposed, non-ATM uses of it as well.

svn path=/trunk/; revision=1064
1999-11-19 07:28:16 +00:00
Guy Harris f5831f290a ILMI is just SNMP-over-ATM AAL5; if the SNMP dissector is available,
dissect ILMI packets with the SNMP dissector.

svn path=/trunk/; revision=1054
1999-11-18 07:29:55 +00:00
Gilbert Ramirez e53420230c Add packet-bgp.h to the list of deliverables.
svn path=/trunk/; revision=1051
1999-11-17 23:31:22 +00:00
Guy Harris b68f2dde89 Heikki Vatiainen's SAP (Session Announcement Protocol) dissector.
Rename the dissector for the Netware SAP protocol to "dissect_ipxsap()",
so as to keep its name from colliding with that of the dissector for the
Session Announcement Protocol.

svn path=/trunk/; revision=1046
1999-11-17 02:17:29 +00:00
Nathan Neulinger b72c0d1f60 Uwe Girlich's patches for nfs,mount,portmap and addition of nlm.
svn path=/trunk/; revision=1034
1999-11-15 14:17:20 +00:00
Gilbert Ramirez 6a20c7bbc5 Add "class" that understands IPv4 addresses and subnet masks.
We now store IPv4 addresses in host order, allowing non-equivalence
comparisons. That is, display filters with lt, le, gt, and ge will work
on big-endian and little-endian machines.

CIDR notation is now supported for IPv4 addresses in display filters.
You can test to see if an IPv4 address is on a certain subnet by using
this notation. For example, to test for IPv4 packets on a Class-C network:

	ip.addr == 192.168.1.0/24

svn path=/trunk/; revision=1032
1999-11-15 06:32:38 +00:00
Nathan Neulinger 08c2eb6642 added minimalist MAPI dissector - only determines request/reply
svn path=/trunk/; revision=1017
1999-11-11 23:13:43 +00:00
Nathan Neulinger 59bffe6e97 Added mount dissector.
Added stat dissector.
Enhancements to portmap dissector.
Added rpc_prog_name function to packet-rpc to retrieve the name of an
        rpc program. This should likely eventually be modified to use the
        /etc/rpc or rpc.bynumber NIS maps in addition to the programs that
        are registered within ethereal.

svn path=/trunk/; revision=1016
1999-11-11 21:22:00 +00:00
Guy Harris 6c10717158 Add #defines for bits in the LAPD address field and for the LAPD SAPI
values.

Dissect the LAPD payload, if present.

Add the beginnings of a Q.931 dissector.

svn path=/trunk/; revision=1007
1999-11-11 08:35:11 +00:00
Gilbert Ramirez 4ec9c54b4b Add LAPD support.
svn path=/trunk/; revision=1004
1999-11-11 05:36:16 +00:00
Nathan Neulinger a7fc895437 Added stubs for various RPC routines:
portmap
	ypserv
	ypxfr
	ypserv
	bootparams

Stubs currently just map procedure numbers to names. I'll add some more
decoding of the actual procedure call/reply contents eventually.

svn path=/trunk/; revision=998
1999-11-10 17:23:55 +00:00
Nathan Neulinger 2d81454829 Added imap dissector, pretty much a simple translation of the pop
dissector.

svn path=/trunk/; revision=995
1999-11-10 14:44:58 +00:00
Guy Harris 21c466ed25 Uwe Girlich's ONC RPC and NFS dissectors.
svn path=/trunk/; revision=945
1999-10-29 01:04:44 +00:00
Gilbert Ramirez 3c4a52e342 Add make-reg-dotc to list of deliverables (EXTRA_DIST).
Invoke make-reg-dotc as $(srcdir)/make-reg-dotc for builds outside
of source-tree.

svn path=/trunk/; revision=932
1999-10-27 02:41:11 +00:00
Guy Harris 7568df46e6 For some unknown reason, having a big "for" loop in the Makefile to scan
all the "packet-XXX.c" files doesn't work with some "make"s; they seem
to pass only the first few names in the list to the shell, for some
reason.

Therefore, we use a script to generate the "register.c" file, and run
that script from the Makefile.

svn path=/trunk/; revision=930
1999-10-27 01:46:14 +00:00
Guy Harris da1fdf005f Kojak's ICQ dissector.
svn path=/trunk/; revision=919
1999-10-24 00:56:11 +00:00
Guy Harris 09b332787a Add new "packet-atalk.h" and "packet-sna.h" files to list of source
files.

svn path=/trunk/; revision=917
1999-10-22 08:57:24 +00:00
Guy Harris 047b8751f3 Generalize the "ip_src" and "ip_dst" members of the "packet_info"
structure to "dl_src"/"dl_dst", "net_src"/"net_dst", and "src"/"dst"
addresses, where an address is an address type, an address length in
bytes, and a pointer to that many bytes.

"dl_{src,dst}" are the link-layer source/destination; "net_{src,dst}"
are the network-layer source/destination; "{src,dst}" are the
source/destination from the highest of those two layers that we have in
the packet.

Add a port type to "packet_info" as well, specifying whether it's a TCP
or UDP port.

Don't set the address and port columns in the dissector functions; just
set the address and port members of the "packet_info" structure.  Set
the columns in "fill_in_columns()"; this means that if we're showing
COL_{DEF,RES,UNRES}_SRC" or "COL_{DEF,RES,UNRES}_DST", we only generate
the string from "src" or "dst", we don't generate a string for the
link-layer address and then overwrite it with a string for the
network-layer address (generating those strings costs CPU).

Add support for "conversations", where a "conversation" is (at present)
a source and destination address and a source and destination port.  (In
the future, we may support "conversations" above the transport layer,
e.g. a TFTP conversation, where the first packet goes from the client to
the TFTP server port, but the reply comes back from a different port,
and all subsequent packets go between the client address/port and the
server address/new port, or an NFS conversation, which might include
lock manager, status monitor, and mount packets, as well as NFS
packets.)

Currently, all we support is a call that takes the source and
destination address/port pairs, looks them up in a hash table, and:

	if nothing is found, creates a new entry in the hash table, and
	assigns it a unique 32-bit conversation ID, and returns that
	conversation ID;

	if an entry is found, returns its conversation ID.

Use that in the SMB and AFS code to keep track of individual SMB or AFS
conversations.  We need to match up requests and replies, as, for
certain replies, the operation code for the request to which it's a
reply doesn't show up in the reply - you have to find the request with a
matching transaction ID.  Transaction IDs are per-conversation, so the
hash table for requests should include a conversation ID and transaction
ID as the key.

This allows SMB and AFS decoders to handle IPv4 or IPv6 addresses
transparently (and should allow the SMB decoder to handle NetBIOS atop
other protocols as well, if the source and destination address and port
values in the "packet_info" structure are set appropriately).

In the "Follow TCP Connection" code, check to make sure that the
addresses are IPv4 addressses; ultimately, that code should be changed
to use the conversation code instead, which will let it handle IPv6
transparently.

svn path=/trunk/; revision=909
1999-10-22 07:18:23 +00:00
Guy Harris 30f0f3976e When scanning source files to generate "register.c", they are in
"$(srcdir)", which isn't necessarily the current directory.

svn path=/trunk/; revision=903
1999-10-21 22:18:33 +00:00
Guy Harris e5c126441b Nathan Neulinger's 802.1q VLAN patch.
svn path=/trunk/; revision=897
1999-10-20 22:41:12 +00:00
Gilbert Ramirez 08292071f4 Added Nathan's patch for AFS and RX dissection.
svn path=/trunk/; revision=894
1999-10-20 16:41:20 +00:00
Guy Harris 3164c1e363 Automatically generate a function to call the register routines for all
protocols (idea shamelessly stolen from GDB).  We require that the
register routines

	1) be located in "packet.c" or in one of the "packet-XXX.c"
	   files;

	2) have a name of the form "proto_register_XXX";

	3) take no argument, and return no value;

	4) have their names appear in the source file either at the
	   beginning of the line, or preceded only by "void " at the
	   beginning of the line;

and we require that "packet-XXX.c" files be added to "DISSECTOR_SOURCES"
in "Makefile.am".

svn path=/trunk/; revision=891
1999-10-20 06:28:29 +00:00
Guy Harris 0d1465731b Add "inet_v6defs.h" to the list of Ethereal source files, so it gets
included in a distribution.

svn path=/trunk/; revision=888
1999-10-19 06:59:23 +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
Jun-ichiro itojun Hagino 3a27312b54 BGP decoding. more attributes and NLRIs needs to be added.
as BGP is a protocol on top of TCP, it may have trouble parsing
out-of-sync data (in most cases data is aligned on packet, it seems).

svn path=/trunk/; revision=843
1999-10-15 17:00:47 +00:00
Guy Harris ae276ffe20 Make it build on systems lacking "inet_pton()", "inet_ntop()", and a
definition of "AF_INET6".  Declare those functions and, if it's not
defined, define "AF_INET6" in "inet_v6defs.h", and arrange to include
it if "inet_ntop()" is missing.  (Systems will probably have both of
them or lack both of them, and we may choose not to use the system's
"inet_pton()" because it's buggy, so base the decision on whether to
include "inet_v6defs.h" on whether we're using the system's
"inet_ntop()" or not.)  Fix some macro references in "Makefile.am" and
"configure.in".

svn path=/trunk/; revision=830
1999-10-14 06:55:11 +00:00
Jun-ichiro itojun Hagino 831497b33e use inet_pton() and inet_ntop(), which are RFC2553 standard function
for converting IPv[46] numeric notation to/from binary form.
recent BIND includes those functions so fallback is not necessary on
most of the platforms.
sorry if it raises any portability problem on other platforms.

remove partial inclusion of inet_ntop() in packet-ipv6.c.

move ip6_to_str() to packet.c, it fits better there than packet-ipv6.c.

svn path=/trunk/; revision=829
1999-10-14 05:41:33 +00:00
Guy Harris 5ed4011c30 Nathan Neulinger's NTP dissector.
svn path=/trunk/; revision=828
1999-10-14 05:10:33 +00:00
Jun-ichiro itojun Hagino 810a67a6d0 implement ipprotostr() in ipproto.c, which basically does ipprotobynumber()
for ip.ip_p and ip6.ip6_nxt (and other IPv6 header chain).

use val_to_str() as much as possible in dissect_{ipv6,pim,ripng}().

make --disable-zlib a default for netbsd (temporary workaround).

svn path=/trunk/; revision=827
1999-10-14 03:50:51 +00:00
Guy Harris 364274edf3 Nathan Neulinger's dissector for the Yahoo messenger and pager
protocols.

svn path=/trunk/; revision=824
1999-10-14 01:29:07 +00:00
Guy Harris 93d58bf824 Jun-ichiro itojun Hagino's code for PIM, and some fixes from him as
well.

Add some more protocols to the list of value/string pairs for IP
protocol types.

svn path=/trunk/; revision=822
1999-10-13 06:47:49 +00:00
Guy Harris 66d84f1093 Jun-ichiro itojun Hagino's changes for IPv6 extension header decoding
and RIPng decoding.

svn path=/trunk/; revision=818
1999-10-12 23:12:06 +00:00
Gilbert Ramirez bacb9d5bae New proto_tree header_field_info stuff. Header_field_infos now contain
the base for numbers to be displayed in, bitmasks for bitfields, and blurbs
(which are one or two sentences describing the field).

proto_tree_add*() routines now automatically handle bitfields. You tell
it which header field you are adding, and just pass it the value of the
entire field, and the proto_tree routines will do the masking and shifting
for you.

This means that bitfields are more naturally filtered via dfilter now.

Added Phil Techau's support for signed integers in dfilters/proto_tree.

Added the beginning of the SNA dissector. It's not complete, but I'm
committing it now because it has example after example of how to use
bitfields with the new header_field_info struct and proto_tree routines.
It was the impetus to change how header_field_info works.

svn path=/trunk/; revision=815
1999-10-12 06:21:15 +00:00
Guy Harris fa489de71b Solaris 7 doesn't have "inet_aton()", either; supply our own version on
OSes that don't have it.

(Yes, this is BSD code, not GPLed code.  I tried getting it from Glibc,
but the glibc version is just the BSD version, so I guess it's OK to mix
BSD code in with GPLed code, or, at least, with LGPLed code....)

svn path=/trunk/; revision=805
1999-10-11 07:38:21 +00:00
Guy Harris 93b7dfe367 Christophe Tronche's BPDU dissector.
svn path=/trunk/; revision=790
1999-10-08 20:50:39 +00:00
Guy Harris 056ae6eb5e Uwe Girlich's patch to handle OSes (e.g., SINIX) that lack
"strncasecmp()" or "mkstemp()"; add in source to the GNU "libc"
versions, and have the "configure" script check for the routines in
question and set up the Makefile to build from our versions if they're
missing.

svn path=/trunk/; revision=745
1999-10-01 21:41:38 +00:00
Gilbert Ramirez c2e3c9efb4 Many more packaging changes. Lets compilation with new gtk subdirectory
work if build tree is different than source tree. Some wiretap files
had to be added to the list of deliverables.

svn path=/trunk/; revision=717
1999-09-24 04:59:52 +00:00
Gilbert Ramirez 4740872e1f Packaging changes
svn path=/trunk/; revision=715
1999-09-24 03:43:09 +00:00
Guy Harris 96e79ab6f8 Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a
specified number of bytes of captured data in the frame at the specified
offset, and a "IS_DATA_IN_FRAME()" macro, to test whether there are any
bytes of captured data in the frame at the specified offset, and convert
some bounds checks to use them.

Add a dissector for the Internet Printing Protocol.

svn path=/trunk/; revision=685
1999-09-17 05:56:58 +00:00
Gilbert Ramirez ff20b92b67 Fixed randpkt so it isn't linked to X11 libs. Removed randpkt from default
target list, so a 'make randpkt' is required if you want to build it.

svn path=/trunk/; revision=684
1999-09-17 04:38:23 +00:00
Guy Harris f4ac555e90 Peter Torvals' Internet Cache Protocol dissector.
svn path=/trunk/; revision=677
1999-09-14 08:06:47 +00:00
Gerald Combs 9386f23fee Added support for Lucent/Ascend packet traces. The MAX and Pipeline router
family has a set of debug commands that allow you to log the traffic on a
WAN or dialup connection as text, e.g.

RECV-iguana:241:(task: B04E12C0, time: 1975358.50) 15 octets @ 8003D634
  [0000]: FF 03 00 3D C0 06 C9 96 2D 04 C1 72 00 05 B8

Created wtap_seek_read() which parses the textual data for and Ascend
trace, and does a normal fseek() and fread() for any other file type.
The fseek()/fread() pairs in file.c were replaced with the new function.

svn path=/trunk/; revision=652
1999-09-11 04:50:44 +00:00
Gilbert Ramirez c2bf152b01 Added random packet generator.
svn path=/trunk/; revision=645
1999-09-10 05:15:17 +00:00
Guy Harris cb2428cc6c Put in an RCS ID (and a copyright notice and GPL notice; unfortunately,
this causes "Makefile.in" to have two GPL notices - "Makefile.in" and
the "Makefile" generated from it are generated files, so maybe that's
OK).

svn path=/trunk/; revision=638
1999-09-09 03:45:57 +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
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 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
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 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
Gilbert Ramirez 8cdb786ae9 Updated the deliverables because of the spec-file change.
svn path=/trunk/; revision=564
1999-08-24 17:19:45 +00:00
Gilbert Ramirez e1bd4fd73f Added John McDermott's colorization routines. There's still some
debug printf's in there.

svn path=/trunk/; revision=562
1999-08-24 16:27:23 +00:00
Guy Harris a033390918 Add support for reading Full Frontal ATM from an ATM Sniffer capture
file, instead of throwing out all but LANE or RFC 1483 data frames and
pretending that the former are just Ethernet or Token-Ring frames.

Add some level of decoding for ATM LANE, but not all of it; the rest,
including decoding non-LANE frames, is left as an exercise for somebody
who has captures they want to decode, an interest in decoding them, ATM
expertise, and time....

svn path=/trunk/; revision=523
1999-08-20 06:55:20 +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
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 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 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