Commit Graph

23 Commits

Author SHA1 Message Date
Laurent Deniel 69dce2464b - fix potential buffer overflow problems.
- fix potential memory allocation problems (e.g. if PF_DIR is changed
  to a longer string).

- add some #defines.

svn path=/trunk/; revision=2297
2000-08-19 17:53:02 +00:00
Laurent Deniel e72d4317ed - move some #preprocessor directives at the fisrt column.
- do not silently ignore plugins with incomplete symbols
  or non compilable filter (but report the error to the user).

svn path=/trunk/; revision=2291
2000-08-18 14:22:20 +00:00
Laurent Deniel 6a480953a9 Miscellaneous code cleaning
- add <stdarg.h> or <varargs.h> in snprintf.h
  and remove those inclusions in the other #ifdef NEED_SNPRINTF_H codes

- remove the check of multiple inclusions in source (.c)  code
  (there is a bit loss of _cpp_ performance, but I prefer the gain of
   code reading and maintenance; and nowadays, disk caches and VM are
   correctly optimized ;-).

- protect all (well almost) header files against multiple inclusions

- add header (i.e. GPL license) in some include files

- reorganize a bit the way header files are included:

  First:
  #include <system_include_files>
  #include <external_package_include_files (e.g. gtk, glib etc.)>
  Then
  #include "ethereal_include_files"

  with the correct HAVE_XXX or NEED_XXX protections.

- add some HAVE_XXX checks before including some system header files

- add the same HAVE_XXX in wiretap as in ethereal

Please forgive me, if I break something (I've only compiled and regression
tested on Linux).

svn path=/trunk/; revision=2254
2000-08-11 13:37:21 +00:00
Gilbert Ramirez 52903b26a8 Move to version 0.8.11
svn path=/trunk/; revision=2196
2000-08-03 01:54:53 +00:00
Gilbert Ramirez 32fe73b2de Change version to 0.8.10
In gtk/Makefile.nmake, add progress_dlg.obj

svn path=/trunk/; revision=2108
2000-07-04 12:10:06 +00:00
Gilbert Ramirez f185b77167 Move to version 0.8.9
svn path=/trunk/; revision=2042
2000-06-07 02:37:06 +00:00
Gilbert Ramirez 5a5f56ffbf Fix plugin function table so that plugins work on Win32.
svn path=/trunk/; revision=2034
2000-05-31 18:32:15 +00:00
Gilbert Ramirez d96ae25070 Move to version 0.8.8
svn path=/trunk/; revision=1925
2000-05-08 20:14:03 +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
Gilbert Ramirez 390eeb541e Move to version 0.8.7.
I'm going to go ahead and install the plugins in a "0.8.7" directory, and
continue incrementing the micro number until the minor version changes to 9.
Then for all of 0.9.x, the plugin directory will be "0.9" until the ABI
changes again. This should cause less confusion, even if it means the
plugins don't change between 0.8.6 and 0.8.7.

svn path=/trunk/; revision=1834
2000-04-12 21:02:51 +00:00
Gilbert Ramirez 963e4ce472 Plugin API is at version 0.8.5 (reflected in directory name for plugins)
svn path=/trunk/; revision=1800
2000-04-05 11:45:50 +00:00
Olivier Abad 2673685067 Add a counter : "enabled_plugins_number", to record how many plugins are
enabled. The counter is incremented in enable_plugin() and decremented
in disable_plugin().
In add_packet_to_packet_list(), we check this counter (instead of
plugin_list) to see if there is at least one enabled plugin. If this is
the case, we must build the protocol tree.

svn path=/trunk/; revision=1770
2000-03-31 21:42:24 +00:00
Guy Harris eedea6fcd4 Give all the Ethereal APIs available to plugins their own function
pointers, and call the APIs by calling through the function pointers -
the old technique of using wrappers didn't work, as the underlying
function they all called no longer exists.

svn path=/trunk/; revision=1724
2000-03-15 19:09:52 +00:00
Gilbert Ramirez 2d430c1f8d Change LT_LIB_EXT to ".so" for non-Win32 platforms.
svn path=/trunk/; revision=1614
2000-02-09 19:37:47 +00:00
Gilbert Ramirez c4fa7c87df Code changes, but not Makefile changes, for enabling plugins for Win32.
svn path=/trunk/; revision=1605
2000-02-07 17:08:27 +00:00
Olivier Abad 1d03243542 In init_plugins() :
If std_plug_dir AND local_plug_dir don't exist, the code doesn't scan
PLUGIN_DIR. Reported by Eric Lassauge.

svn path=/trunk/; revision=1600
2000-02-03 21:31:03 +00:00
Olivier Abad fa8b170ac9 In init_plugins(), before scanning PLUGIN_DIR :
do a "stat" on PLUGIN_DIR, /usr/lib/ethereal/plugins/0.8 and
/usr/local/lib/ethereal/plugins/0.8 and compare st_dev and st_ino to be
sure that PLUGIN_DIR is different from the others (and not a symlink which
would cause a "plugin found in multiple directories" warning).

svn path=/trunk/; revision=1588
2000-01-31 19:50:58 +00:00
Gilbert Ramirez ea8136cd8e Remove instances of getenv("HOME") and provide a get_home_dir() function
which provides a default value if "HOME" is not set.

svn path=/trunk/; revision=1579
2000-01-29 16:41:28 +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
Olivier Abad a448770be4 Small corrections :
- create ~/.ethereal if it doesn't exist
- use PF_DIR instead of .ethereal
- remove two memory leaks

svn path=/trunk/; revision=1418
2000-01-04 21:29:43 +00:00
Olivier Abad a04e67e0ab Implement plugins status save/restore :
Add a "Save status" button to the Plugins window which saves the status
(enabled/disabled) and the filter used by all the plugins in
~/.ethereal/plugins.status

Moved plugins_scan_dir() from gtk/plugins_dlg.c to plugins.c because it is
GUI independent. Read plugins.status in this function and restore the saved
status.

Add a init_plugins() function in plugins.c which calls plugins_scan_dir() in
order to build the plugin_list. It is called by ethereal_proto_init() in
gtk/main.c

svn path=/trunk/; revision=1417
2000-01-04 20:37:18 +00:00
Olivier Abad 7ce8202f00 Put in an RCS ID.
svn path=/trunk/; revision=1267
1999-12-09 20:55:49 +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