Commit Graph

87 Commits

Author SHA1 Message Date
Guy Harris 5199671441 Convert most other plugin dissectors to use the make-dissector-reg
scripts.

svn path=/trunk/; revision=17961
2006-04-22 20:26:16 +00:00
Ronnie Sahlberg f331077a60 waste a couple of bytes per tcp conversation and make the tree for acked_packets (i.e. packets that have interesting tcp properties such as being retransmissions etc) hang off the per conversation tcpd struct instead of being global.
while this should improve performance by unmeasurably little it does have the sideeffect that once we finish the rewrite   tcp analysis might actually work and work well even for tcp over tcp tunnelling. 

this also means that if you include packet-tcp.h   you also need to include emem.h .




svn path=/trunk/; revision=17681
2006-03-20 10:52:53 +00:00
Jörg Mayer 30a8557868 More 'char*' -> 'const char*' changes to fix warnings.
svn path=/trunk/; revision=15015
2005-07-23 11:41:25 +00:00
Jörg Mayer 5b442f2279 After doing "make maintainer-clean", "svn status --no-ignore | grep ^I"
returned quite a list of files. Add them to MAINTAINERCLEANFILES.

Whitespace changes (replace multiple spaces by TABs, in a few cases this
needed to be done at the beginning of Makefile lines.


svn path=/trunk/; revision=14891
2005-07-10 08:04:27 +00:00
Guy Harris 802859d3fd Call the "new-style init" routine for plugins a "register" routine, as
it serves the same purpose as the register routine in a built-in
dissector, and don't require all dissectors to have one, as they might
just be taps.

Get rid of the stats tree's init routine, as it's just a tap, and as it
doesn't do anything.

Update the idl2eth Python script to generate plugins with register routines.

svn path=/trunk/; revision=13644
2005-03-07 02:44:41 +00:00
Lars Roland 00273300e7 Preparations for dropping the old plugin api.
Introduce a new init routine for plugins, 
which does not take the plugin api table as an 
argument and allows etheral to distinguish 
between plugins using the old and the new api.

Update README.plugins accordingly

Change all g_warnings() in epan/plugins.c to report_failue().
On windows we do not have a log console open while
loading the plugins, because a log console cannot be opened before the prefs have been read. Thus g_warnings()
does not work for reporting problems with plugins.

svn path=/trunk/; revision=13596
2005-03-05 06:28:10 +00:00
Guy Harris 6616a3770c Make the "maintainer-clean" rules get rid of some additional generated
files.  Do this with GENERATED_HEADER_FILES, GENERATED_C_FILES, and
GENERATED_FILES macros in Makefile.common files, along the lines of what
wiretap/Makefile.common has.

Clean up "*~" files with "make clean" rather than only "make distclean"
in some additional places.

Add "maintainer-clean" rules to the Makefile.nmake files, paralelling
the ones in the automake-generated Makefile.in files, using the
GENERATED_FILES macros from Makefile.common files.  In some cases, move
the cleanup of files from "make distclean" to "make maintainer-clean",
and in other cases, put in a comment indicating why we're not doing that
(because some files that are distributed in the source tarballs, namely
Flex output, were built with a UN*X Flex and won't compile on Windows,
so we get rid of them with "make distclean" so you can clean up stuff
that *has* to be re-generated for Windows).

Clean up some *CLEANFILES definitions - get rid of ones that no longer
apply as files were moved or that add to the definition a name that's
already there.

svn path=/trunk/; revision=13402
2005-02-14 20:33:57 +00:00
Guy Harris 77f9af3434 Update a URL.
svn path=/trunk/; revision=12550
2004-11-21 03:01:15 +00:00
Guy Harris 017d788da0 From Lars Roland: we need to define _NEED_VAR_IMPORT_ in plugins if we
link the plugins with libethereal, so do so.

svn path=/trunk/; revision=12176
2004-10-01 19:50:03 +00:00
Guy Harris 444119dbcb From Lars Roland: add an option to link plugins with libethereal rather
than using the plugin address table.

svn path=/trunk/; revision=12139
2004-09-29 19:30:10 +00:00
Guy Harris bbe7f89742 Move prefs.c and prefs.h into the epan subdirectory.
svn path=/trunk/; revision=12115
2004-09-27 22:55:15 +00:00
Guy Harris fcf529654a Ethereal has required guint64 support for a while, so there's no need to
check for it in the Gryphon plugin.

Use "tvb_get_ntoh64()" to fetch the time stamp, and format it similarly
to the way absolute date/time time stamps are formatted.

svn path=/trunk/; revision=11800
2004-08-22 02:42:27 +00:00
Jörg Mayer fd24ad7d92 .cvsignore is dead
it has been replaced by
svn proplist -v <dir/file>
and
svn propedit <dir/file>

svn path=/trunk/; revision=11422
2004-07-18 23:44:34 +00:00
Jörg Mayer 56c759212f Add epan/dissectors/.cvsignore
Add tags and TAGS to all .cvsignore files

svn path=/trunk/; revision=11419
2004-07-18 22:51:50 +00:00
Gilbert Ramirez 669db206cb Move dissectors to epan/dissectors directory.
Also move ncp222.py, x11-fields, process-x11-fields.pl,
make-reg-dotc, and make-reg-dotc.py.

Adjust #include lines in files that include packet-*.h
files.

svn path=/trunk/; revision=11410
2004-07-18 18:06:47 +00:00
Guy Harris 8a8b883450 Set the svn:eol-style property on all text files to "native", so that
they have LF at the end of the line on UN*X and CR/LF on Windows;
hopefully this means that if a CR/LF version is checked in on Windows,
the CRs will be stripped so that they show up only when checked out on
Windows, not on UN*X.

svn path=/trunk/; revision=11400
2004-07-18 00:24:25 +00:00
Olivier Biot 93751c8e32 Replace the plugin linkage libs into PLUGIN_LIBS which is generated from the
top-level configure.in when running configure.

svn path=/trunk/; revision=10699
2004-04-25 21:10:20 +00:00
Olivier Biot 4459d9f0a9 Add support for plugin dissectors on cygwin builds, by adding the following
line to every Makefile.am file for a given plugin XXX:

	XXX_la_LIBADD = -L../../epan -lethereal @GLIB_LIBS@

This way symbols defined in libethereal and GLib are resolved when linking
the plugin dissector modules.

svn path=/trunk/; revision=10601
2004-04-14 22:13:28 +00:00
Jörg Mayer 7180513677 Trivial signed/unsigned warning fixes
svn path=/trunk/; revision=9824
2004-01-24 02:07:05 +00:00
Ulf Lamping 0d9679de8d removed some MSVC warnings (level 3)
svn path=/trunk/; revision=9561
2004-01-05 19:31:44 +00:00
Guy Harris 7952d0627a Fix the copyright notices (Gerald has the copyright on Ethereal).
svn path=/trunk/; revision=8991
2003-11-17 22:34:25 +00:00
Guy Harris cbfc93b82e Use "$(OBJECTS)" whenever a complete list of .obj files appears, rather
than repeating the list from the setting of OBJECTS.

svn path=/trunk/; revision=8893
2003-11-06 09:05:14 +00:00
Guy Harris 07697e98d3 From Masaki Chikama: fix static compilation of "generic ASN.1" and
Gryphon plugins.

svn path=/trunk/; revision=8878
2003-11-04 18:38:53 +00:00
Guy Harris 02e1d2680a Give every Makefile.nmake file a "distclean" rule, and have "distclean"
recurse into subdirectories doing "nmake -f Makefile.nmake distclean".

Have "nmake -f Makefile.nmake clean" not remove stuff that "make clean"
doesn't remove (such as Flex/Bison output and config.h files) - and have
"nmake -f Makefile.nmake distclean" remove stuff that "make distclean"
removes, including "tethereal-tap-register.c" and
"ethereal-tap-register.c".

svn path=/trunk/; revision=8672
2003-10-10 21:31:53 +00:00
Jörg Mayer 7a593c3d3c check in the following comment:
/* XXX This code is neither Endianess independent, nor will it work
     * on platforms that do not support the *optional* guin64 type
     */

svn path=/trunk/; revision=8626
2003-10-06 15:41:53 +00:00
Jörg Mayer e5a9846c56 Fix 4 warnings in case of strict-aliasing by declaring timestamp as time_t
instead of int.

svn path=/trunk/; revision=8618
2003-10-06 02:01:47 +00:00
Guy Harris 8b34a7f4ba From Steve Limkemann:
Added two new "well known destinations": SD_IOPWR AND SD_UTIL.

    Added logic to dissect the CMD_SET_TIME command.

    Added an alterate destination for the CMD_PGM_START command.

    Added logic to dissect the CMD_SCHED_MSG_REPLACE command.

    Added logic to dissect the CMD_USDT_REGISTER command.

    Added logic to dissect the CMD_USDT_SET_FUNCTIONAL command.

    Added logic to dissect the following commands
       CMD_IOPWR_GETINP
       CMD_IOPWR_GETLATCH
       CMD_IOPWR_CLRLATCH
       CMD_IOPWR_GETOUT
       CMD_IOPWR_SETOUT
       CMD_IOPWR_SETBIT
       CMD_IOPWR_CLRBIT
       CMD_IOPWR_GETPOWER
       CMD_UTIL_SET_INIT_STRATEGY
       CMD_UTIL_GET_INIT_STRATEGY

    Added the ability to recongnize more IOCTLS.  (For the SJA1000 driver, LIN
        and power drivers.)

    Added the ability to recognize more card types.

    Added dissection of more fields for CMD_SCHED_TX command.

    Bug fixes and general updating.

svn path=/trunk/; revision=8607
2003-10-03 23:22:12 +00:00
Guy Harris 95f648cd9e Use the right value_string table for the filter mode in
CMD_CARD_SET_FILTER_MODE and CMD_CARD_GET_FILTER_MODE.

svn path=/trunk/; revision=8437
2003-09-09 19:22:05 +00:00
Jörg Mayer 10b364c56d - Make --enable-static work again (configure.in, Makefile.am)
- get rid of ...-static.o files in the build process (now done via
  config.h instead of compiler flag)
- make packet-rtnet link statically (remove one unused function, rename
  another one)

svn path=/trunk/; revision=8389
2003-09-05 07:44:50 +00:00
Guy Harris 8178db4980 Define GLIB_LIBS and GTK_LIBS variables in config.nmake (based on
variables the user configures - the user isn't expected to change
GLIB_LIBS or GTK_LIBS, and there's a comment nothing that users
shouldn't have to do so), which contain the appropriate libraries for
building stuff that requires only GLib, and stuff that required GTK+ and
GLib, respectively, and use those macros in the Makefile.nmake files.

svn path=/trunk/; revision=7885
2003-06-14 20:45:29 +00:00
Guy Harris 71424053cd Define GLIB_CFLAGS and GTK_CFLAGS variables in config.nmake (based on
variables the user configures - the user isn't expected to change
GLIB_CFLAGS or GTK_CFLAGS, and there's a comment nothing that users
shouldn't have to do so), which contain the appropriate "/I" flags for
building stuff that requires only GLib, and stuff that required GTK+ and
GLib, respectively, and use those macros in the Makefile.nmake files.

svn path=/trunk/; revision=7884
2003-06-14 20:36:04 +00:00
Guy Harris c7ce8b9a8b Link the plugin with glib, as it now calls "g_free()".
svn path=/trunk/; revision=7863
2003-06-12 10:12:21 +00:00
Guy Harris ee97ce3196 Add new routines:
tvb_get_string() - takes a tvbuff, an offset, and a length as
	arguments, allocates a buffer big enough to hold a string with
	the specified number of bytes plus an added null terminator
	(i.e., length+1), copies the specified number of bytes from the
	tvbuff, at the specified offset, to that buffer and puts in a
	null terminator, and returns a pointer to that buffer (or throws
	an exception before allocating the buffer if that many bytes
	aren't available in the tvbuff);

	tvb_get_stringz() - takes a tvbuff, an offset, and a pointer to
	a "gint" as arguments, gets the size of the null-terminated
	string starting at the specified offset in the tvbuff (throwing
	an exception if the null terminator isn't found), allocates a
	buffer big enough to hold that string, copies the string to that
	buffer, and returns a pointer to that buffer and stores the
	length of the string (including the terminating null) in the
	variable pointed to by the "gint" pointer.

Replace many pieces of code allocating a buffer and copying a string
with calls to "tvb_get_string()" (for one thing, "tvb_get_string()"
doesn't require you to remember that the argument to
"tvb_get_nstringz0()" is the size of the buffer into which you're
copying the string, which might be the length of the string to be copied
*plus 1*).

Don't use fixed-length buffers for null-terminated strings (even if the
code that generates those packets has a #define to limit the length of
the string).  Use "tvb_get_stringz()", instead.

In some cases where a value is fetched but is only used to pass an
argument to a "proto_tree_add_XXX" routine, use "proto_tree_add_item()"
instead.

svn path=/trunk/; revision=7859
2003-06-12 08:33:32 +00:00
Gerald Combs 0b9bbbbdb6 Modify tvb_get_nstringz*() to behave more like snprintf(). Make changes
where necessary to reflect the new behavior.

svn path=/trunk/; revision=7607
2003-04-30 02:35:28 +00:00
Jörg Mayer 48be4e530d Removed trailing whitespaces from .h and .c files using the
winapi_cleanup tool written by Patrik Stridvall for the wine
project.

svn path=/trunk/; revision=6116
2002-08-28 20:41:00 +00:00
Jörg Mayer 7e4e31f94c Replace the types from sys/types.h and netinet/in.h by their glib.h
equivalents for the plugins/ directory.

svn path=/trunk/; revision=5929
2002-08-02 22:04:22 +00:00
Guy Harris 78b3b038e1 From Nix:
Don't add "-I/usr/include" to CFLAGS or CPPFLAGS; GCC 3.1 warns
	about it, and it's not necessary.

	Expand the plugin directory path used for installation at
	installation time, rather than configuration time, so the user
	can reset "prefix" at installation time.

svn path=/trunk/; revision=5828
2002-07-06 20:40:50 +00:00
Guy Harris eb70c97a9b Make a "tcp_dissect_pdus()" with the standard loop for a TCP segment,
extracting PDUs from it and possibly doing reassembly.  Make the COPS,
DNS, DSI, Gryphon, and SCCP dissectors use it.

Add "set_actual_length()", "tcp_dissect_pdus()",
"decode_boolean_bitfield()", "decode_numeric_bitfield()", and
"decode_enumerated_bitfield()" to the list of routines available to
dissectors on platforms where routines in the main program aren't
available to dynamically-loaded code.

Declare routines in "to_str.h" as "extern"; as I remember, that's
necessary to allow the "decode_XXX_bitfield()" routines declared therein
to be made available to plugins as per the above.

Note that new exported routines should be added to the end of the table
if that's the only change being made to the table.

Create a new "plugin_api_decls.h" header file, used to declare both the
"p_" variables and the "p_" structure members in the routine-exporting
mechanism; this reduces the number of places you have to change to
change the list of exported routines.

svn path=/trunk/; revision=5394
2002-05-05 00:16:38 +00:00
Guy Harris 09f812b7c2 Get rid of unused arguments.
svn path=/trunk/; revision=5325
2002-05-01 06:56:16 +00:00
Guy Harris 2793de4cf9 Make more use of "val_to_str()" and "decode_boolean_bitfield()".
svn path=/trunk/; revision=5324
2002-05-01 06:46:52 +00:00
Guy Harris 66bbf2411a Use the bitfield decoding routines for bitfields.
Show the value of flag fields in the top-level item for the field.

Use "%u", not "%d", to display unsigned quantities.

svn path=/trunk/; revision=5323
2002-05-01 06:15:44 +00:00
Guy Harris 573530d0e2 Add desegmentation support.
As a result of that, we now construct a tvbuff for each Gryphon message;
this obviates the need to pass a message length to the dissectors for
each message type.

svn path=/trunk/; revision=5321
2002-05-01 05:24:42 +00:00
Guy Harris 1c715bb383 Mark the "plugin_address_table_t *" argument to "plugin_init()" as
unused if PLUGINS_NEED_ADDRESS_TABLE isn't defined.

svn path=/trunk/; revision=5311
2002-04-30 10:36:26 +00:00
Guy Harris b4971b39bf From Joerg Mayer:
In the "configure.in" files, add

		-D_U_="__attribute__((unused))"

	to CFLAGS if we're using GCC, and add

		-D_U_=""

	otherwise, so _U_ can be used to mark arguments as unused.

Add -D_U_="" arguments to the Makefile.nmake files as well, so _U_ works
with Microsoft Visual C++ as well.

Add comments and RCS IDs to the Makefile.nmake files that don't already
have them.

svn path=/trunk/; revision=4824
2002-02-27 09:42:52 +00:00
Guy Harris ee5ca25d31 Include files from the "epan" directory and subdirectories thereof with
"epan/..." pathnames, so as to avoid collisions with header files in any
of the directories in which we look (e.g., "proto.h", as some other
package has its own "proto.h" file which it installs in the top-level
include directory).

Don't add "-I" flags to search "epan", as that's no longer necessary
(and we want includes of "epan" headers to fail if the "epan/" is left
out, so that we don't re-introduce includes lacking "epan/").

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

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

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

svn path=/trunk/; revision=4385
2001-12-12 01:29:13 +00:00
Guy Harris 23319ff023 Move the pointer to the "column_info" structure in the "frame_data"
structure to the "packet_info" structure; only stuff that's permanently
stored with each frame should be in the "frame_data" structure, and the
"column_info" structure is not guaranteed to hold the column values for
that frame at all times - it was only in the "frame_data" structure so
that it could be passed to dissectors, and, as all dissectors are now
passed a pointer to a "packet_info" structure, it could just as well be
put in the "packet_info" structure.

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

svn path=/trunk/; revision=4370
2001-12-10 00:26:21 +00:00
Guy Harris bced8711f6 Make "dissector_add()", "dissector_delete()", and "dissector_change()"
take a dissector handle as an argument, rather than a pointer to a
dissector function and a protocol ID.  Associate dissector handles with
dissector table entries.

svn path=/trunk/; revision=4308
2001-12-03 04:00:26 +00:00
Guy Harris 97a05828cd Sigh. Well, if you make the function declarations external, that means
that they're external when the plugin is compiled, and there's no
definition to satisfy the extern, so plugins fail to compile.

Add a "plugins/plugin_api_defs.h" header file that defines them, and
include that in one (and only one) source file for a particular plugin.

svn path=/trunk/; revision=4117
2001-10-31 10:40:58 +00:00
Guy Harris 0bbb8f72a0 Add some additional items to .cvsignore files, for new files built when
compiling plugins for statically-linked binaries.

svn path=/trunk/; revision=3678
2001-07-10 20:58:42 +00:00