aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am3
-rw-r--r--Makefile.nmake220
-rw-r--r--README.win3228
-rw-r--r--acconfig.h4
-rw-r--r--asn1.c6
-rw-r--r--config.h.win3289
-rw-r--r--configure.in5
-rw-r--r--dfilter.h6
-rw-r--r--file.c8
-rw-r--r--gtk/Makefile.nmake29
-rw-r--r--gtk/main.c8
-rw-r--r--gtk/main.h4
-rw-r--r--gtk/menu.c4
-rw-r--r--gtk/plugins_dlg.c18
-rw-r--r--mkstemp.c11
-rw-r--r--mkstemp.h24
-rw-r--r--packet-isis-lsp.c10
-rw-r--r--packet-tcp.c6
-rw-r--r--packet-udp.c6
-rw-r--r--plugins.c63
-rw-r--r--plugins.h26
-rw-r--r--util.c6
-rw-r--r--wiretap/Makefile.nmake3
-rw-r--r--wiretap/config.h.win3227
24 files changed, 356 insertions, 258 deletions
diff --git a/Makefile.am b/Makefile.am
index 366a8e2f75..2c030f3d40 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
# Makefile.am
# Automake file for Ethereal
#
-# $Id: Makefile.am,v 1.151 2000/01/14 07:51:14 guy Exp $
+# $Id: Makefile.am,v 1.152 2000/01/15 00:22:28 gram Exp $
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@zing.org>
@@ -252,6 +252,7 @@ EXTRA_ethereal_SOURCES = \
strerror.h \
strncasecmp.c \
mkstemp.c \
+ mkstemp.h \
inet_aton.c \
inet_pton.c \
inet_ntop.c
diff --git a/Makefile.nmake b/Makefile.nmake
index 906c534104..79571ac357 100644
--- a/Makefile.nmake
+++ b/Makefile.nmake
@@ -4,10 +4,9 @@
GTK_VERSION=1.3
GLIB_VERSION=1.3
-GLIB_DIR=c:\prj\gtk+-win32\src\glib
-GTK_DIR=c:\prj\gtk+-win32\src\gtk+
+GLIB_DIR=T:\w32-ix86\glib
+GTK_DIR=T:\w32-ix86\gtk+
-#LOCAL_CFLAGS=/Ic:\tools\msdev\include
LOCAL_CFLAGS=
############### no need to modify below this line #########
@@ -18,141 +17,160 @@ LINK= link
LDFLAGS = /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /MACHINE:I386 \
/OUT:ethereal.exe
-CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) /I$(GLIB_DIR) /I$(GTK_DIR) /Iwiretap \
- /I$(GTK_DIR)\gdk\win32
+CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) /I$(GLIB_DIR) /I$(GLIB_DIR)\gmodule \
+ /I$(GTK_DIR) /Iwiretap /I$(GTK_DIR)\gdk /I$(GTK_DIR)\gdk\win32
-OBJECTS=packet-aarp.obj \
- packet-afs.obj \
- packet-arp.obj \
- packet-ascend.obj \
+DISSECTOR_OBJECTS = \
+ packet-aarp.obj \
+ packet-afs.obj \
+ packet-arp.obj \
+ packet-ascend.obj\
packet-atalk.obj \
- packet-atm.obj \
- packet-auto-rp.obj \
- packet-bgp.obj \
+ packet-atm.obj \
+ packet-auto_rp.obj \
+ packet-bgp.obj \
packet-bootp.obj \
packet-bootparams.obj \
- packet-bpdu.obj \
- packet-cdp.obj \
- packet-clip.obj \
- packet-data.obj \
- packet-dns.obj \
- packet-eth.obj \
- packet-fddi.obj \
- packet-ftp.obj \
- packet-giop.obj \
- packet-gre.obj \
- packet-hsrp.obj \
- packet-http.obj \
- packet-icmpv6.obj \
- packet-icp.obj \
- packet-icq.obj \
- packet-imap.obj \
- packet-ip.obj \
+ packet-bpdu.obj \
+ packet-cdp.obj \
+ packet-clip.obj \
+ packet-data.obj \
+ packet-dns.obj \
+ packet-eth.obj \
+ packet-fddi.obj \
+ packet-ftp.obj \
+ packet-giop.obj \
+ packet-gre.obj \
+ packet-hsrp.obj \
+ packet-http.obj \
+ packet-icmpv6.obj\
+ packet-icp.obj \
+ packet-icq.obj \
+ packet-imap.obj \
+ packet-ip.obj \
+ packet-ipp.obj \
packet-ipsec.obj \
- packet-ipv6.obj \
- packet-ipx.obj \
- packet-irc.obj \
- packet-isakmp.obj \
- packet-isis.obj \
+ packet-ipv6.obj \
+ packet-ipx.obj \
+ packet-irc.obj \
+ packet-isakmp.obj\
+ packet-isis.obj \
packet-isis-clv.obj \
packet-isis-hello.obj \
packet-isis-lsp.obj \
packet-isis-snp.obj \
- packet-lapb.obj \
- packet-lapd.obj \
- packet-ldap.obj \
- packet-llc.obj \
- packet-lpd.obj \
- packet-mapi.obj \
+ packet-l2tp.obj \
+ packet-lapb.obj \
+ packet-lapd.obj \
+ packet-ldap.obj \
+ packet-llc.obj \
+ packet-lpd.obj \
+ packet-mapi.obj \
packet-mount.obj \
packet-nbipx.obj \
- packet-nbns.obj \
- packet-ncp.obj \
+ packet-nbns.obj \
+ packet-ncp.obj \
packet-netbios.obj \
- packet-nfs.obj \
- packet-nlm.obj \
- packet-nntp.obj \
- packet-null.obj \
- packet-osi.obj \
- packet-ospf.obj \
- packet-pim.obj \
- packet-pop.obj \
- packet-portmap.obj \
- packet-ppp.obj \
+ packet-nfs.obj \
+ packet-nlm.obj \
+ packet-nntp.obj \
+ packet-ntp.obj \
+ packet-null.obj \
+ packet-osi.obj \
+ packet-ospf.obj \
+ packet-pim.obj \
+ packet-pop.obj \
+ packet-portmap.obj \
+ packet-ppp.obj \
packet-pppoe.obj \
- packet-pptp.obj \
+ packet-pptp.obj \
packet-q2931.obj \
- packet-q931.obj \
- packet-radius.obj \
- packet-raw.obj \
- packet-rip.obj \
+ packet-q931.obj \
+ packet-radius.obj\
+ packet-raw.obj \
+ packet-rip.obj \
packet-ripng.obj \
- packet-rpc.obj \
- packet-rsvp.obj \
- packet-rtsp.obj \
- packet-rx.obj \
- packet-sap.obj \
- packet-sdp.obj \
- packet-smb.obj \
- packet-sna.obj \
- packet-snmp.obj \
+ packet-rpc.obj \
+ packet-rsvp.obj \
+ packet-rtsp.obj \
+ packet-rx.obj \
+ packet-sap.obj \
+ packet-sdp.obj \
+ packet-smb.obj \
+ packet-sna.obj \
+ packet-snmp.obj \
packet-srvloc.obj \
packet-sscop.obj \
- packet-stat.obj \
+ packet-stat.obj \
packet-tacacs.obj \
- packet-tcp.obj \
- packet-telnet.obj \
- packet-tftp.obj \
- packet-sns.obj \
- packet-tr.obj \
+ packet-tcp.obj \
+ packet-telnet.obj\
+ packet-tftp.obj \
+ packet-tns.obj \
+ packet-tr.obj \
packet-trmac.obj \
- packet-udp.obj \
+ packet-udp.obj \
packet-v120.obj \
packet-vines.obj \
packet-vlan.obj \
packet-vrrp.obj \
- packet-wccp.obj \
- packet-who.obj \
- packet-x25.obj \
- packet-yhoo.obj \
+ packet-wccp.obj\
+ packet-who.obj\
+ packet-x25.obj \
+ packet-yhoo.obj \
packet-ypbind.obj \
packet-ypserv.obj \
packet-ypxfr.obj \
- asn1.obj \
- capture.obj \
- colors.obj \
- column.obj \
+
+ETHEREAL_COMMON_OBJECTS = \
+ asn1.obj \
+ column.obj \
conversation.obj \
dfilter-grammar.obj \
dfilter-scanner.obj \
- dfilter.obj \
- ethertype.obj \
- file.obj \
- follow.obj \
- ipproto.obj \
- packet.obj \
- prefs.obj \
- print.obj \
- proto.obj \
- ps.obj \
- register.obj \
- resolv.obj \
- summary.obj \
- util.obj \
- xdlc.obj \
- snprintf.obj \
- strerror.obj
+ dfilter.obj \
+ ethertype.obj \
+ follow.obj \
+ ipproto.obj \
+ ipv4.obj \
+ packet.obj \
+ plugins.obj \
+ prefs.obj \
+ print.obj \
+ proto.obj \
+ ps.obj \
+ register.obj \
+ resolv.obj \
+ util.obj \
+ xdlc.obj \
+
+ethereal_OBJECTS = \
+ $(DISSECTOR_OBJECTS) \
+ $(ETHEREAL_COMMON_OBJECTS) \
+ capture.obj \
+ colors.obj \
+ file.obj \
+ summary.obj \
+
+EXTRA_ethereal_OBJECTS = \
+ snprintf.obj \
+ strerror.obj \
+ mkstemp.obj \
+ inet_aton.obj \
+ inet_pton.obj \
+ inet_ntop.obj
+
LIBS= wiretap\libwtap.lib gtk\libui.lib wsock32.lib \
$(GTK_DIR)\gtk\gtk-$(GTK_VERSION).lib \
- $(GTK_DIR)\gdk\win32\gdk-$(GTK_VERSION).lib \
+ $(GTK_DIR)\gdk\gdk-$(GTK_VERSION).lib \
$(GLIB_DIR)\glib-$(GLIB_VERSION).lib \
$(GLIB_DIR)\gmodule-$(GLIB_VERSION).lib
-ethereal.exe : config.h $(OBJECTS)
+ethereal.exe : config.h $(ethereal_OBJECTS) $(EXTRA_ethereal_OBJECTS)
$(LINK) @<<
- $(LDFLAGS) $(LIBS) $(OBJECTS)
+ $(LDFLAGS) $(LIBS) $(ethereal_OBJECTS) $(EXTRA_ethereal_OBJECTS)
<<
config.h : config.h.win32
diff --git a/README.win32 b/README.win32
index 89e05d34f4..27b1dee339 100644
--- a/README.win32
+++ b/README.win32
@@ -1,4 +1,4 @@
-$Id: README.win32,v 1.2 1999/07/21 17:40:34 gram Exp $
+$Id: README.win32,v 1.3 2000/01/15 00:22:28 gram Exp $
Ethereal can be compiled on Win32 platforms. Some libraries are
needed, however.
@@ -7,29 +7,35 @@ The glib, gtk, glib-dev, and gtk-dev packages for win32 can be found
at http://www.gimp.org/~tml/gimp/win32 You will definitely need these.
Download them and unpack them.
-I have seen mention of a UCD SNMP library for win32 on the cygwin
-home page, but I have not tried it with ethereal.
+The UCD SNMP library for win32 can be had from
+ftp://ftp.revelstone.com/pub/snmp/, but it has not been tested
+with Ethereal.
-There is no open-source libpcap for win32 yet.
+The win32 versions of libpcap have not been integrated into
+Ethereal yet.
+Zlib (or 'libz') is available for Win32 from
+http://www.winimage.com/zLibDll/
Instructions for MS Visual C
----------------------------
-Modify the top lines of Makefile.nmake and wiretap/Makefile.nmake to
-point to the glib and gtk directories.
+Modify the top lines of Makefile.nmake, wiretap/Makefile.nmake, and
+gtk/Makefile.nmake to point to your glib and gtk directories.
-Be sure to set your %lib% environment variable to point to the msvc
-lib directory. Example:
-
- set lib=c:/tools/msdev/lib
+Be sure that your command-line environment is set up to compile
+and linke with MSVC. When installing MSVC, you can have your
+system's environment set up to always allow compiling from the
+command line, or you can invoke the vcvars32.bat script.
In the wiretap directory, type "nmake -f makefile.nmake"
+In the gtk directory, type "nmake -f makefile.nmake"
Then in the ethereal directory, type "nmake -f makefile.nmake"
You must set your HOME environment variable for ethereal to work.
Make sure the glib and gtk DLL's are in your path when you run
-ethereal.
+ethereal. This includes gtk-*.dll, glib-*.dll, gmodule-*.dll, gdk-*.dll,
+and gthread-*.dll
Instructions for cygwin
-----------------------
diff --git a/acconfig.h b/acconfig.h
index da48106a98..a16b4d0b84 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,7 +1,7 @@
/* acconfig.h
* #ifdefs to be controlled by "configure"
*
- * $Id: acconfig.h,v 1.13 1999/12/28 04:40:05 gerald Exp $
+ * $Id: acconfig.h,v 1.14 2000/01/15 00:22:29 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -37,4 +37,6 @@
#undef NEED_STRERROR_H
+#undef NEED_MKSTEMP
+
#undef PLUGIN_DIR
diff --git a/asn1.c b/asn1.c
index 28e7bfccce..fc913ebf3d 100644
--- a/asn1.c
+++ b/asn1.c
@@ -1,7 +1,7 @@
/* asn1.c
* Routines for ASN.1 BER dissection
*
- * $Id: asn1.c,v 1.2 1999/12/10 09:49:26 guy Exp $
+ * $Id: asn1.c,v 1.3 2000/01/15 00:22:29 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -65,6 +65,10 @@
# include <sys/types.h>
#endif
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
#include <glib.h>
#include "asn1.h"
diff --git a/config.h.win32 b/config.h.win32
index dbc4479a1f..5f620b6cd1 100644
--- a/config.h.win32
+++ b/config.h.win32
@@ -8,102 +8,79 @@
byte first (like Motorola and SPARC, unlike Intel and VAX). */
/* #undef WORDS_BIGENDIAN */
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#define YYTEXT_POINTER 1
-
/* #undef HAVE_SA_LEN */
#define DATAFILE_DIR "/usr/local/etc"
-
-/* #undef NEED_INET_V6DEFS_H */
+#define PLUGIN_DIR "/usr/local/lib/ethereal/plugins/0.8"
/* #undef NEED_SNPRINTF_H */
/* #undef NEED_STRERROR_H */
-/* Define if you have the pcap library (-lpcap). */
-/* #define HAVE_LIBPCAP 1 */ /* although there are versions available */
-
-/* #undef HAVE_LIBZ */ /* I think it might be available */
-
-/* Define if you have the gethostbyname2 function. */
-/* #undef HAVE_GETHOSTBYNAME2 */
-
-/* Define if you have the getprotobynumber function. */
-/* #undef HAVE_GETPROTOBYNUMBER */
-
-/* Define if you have the <dlfcn.h> header file. */
-/* #undef HAVE_DLFCN_H */ /* XXX - use "LoadLibrary()"? */
+#define NEED_MKSTEMP 1
/* Define if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
-/* Define if you have the <net/if.h> header file. */
-/* #undef HAVE_NET_IF_H */
-
-/* Define if you have the <netdb.h> header file. */
-/* #undef HAVE_NETDB_H */
-
/* Define if you have the <netinet/in.h> header file. */
/* #define HAVE_NETINET_IN_H 1 */
/* Define if you have the <snmp/snmp.h> header file. */
/* #undef HAVE_SNMP_SNMP_H */
-/* Define if you have the <snmp/version.h> header file. */
-/* #undef HAVE_SNMP_VERSION_H */
-
/* Define if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
-/* Define if you have the <stddef.h> header file. */
-/* #undef HAVE_STDDEF_H */
-
/* Define if you have the <sys/ioctl.h> header file. */
/* #undef HAVE_SYS_IOCTL_H */
-/* Define if you have the <sys/socket.h> header file. */
-/* #undef HAVE_SYS_SOCKET_H */
-
/* Define if you have the <sys/sockio.h> header file. */
/* #undef HAVE_SYS_SOCKIO_H */
-/* Define if you have the <sys/stat.h> header file. */
-/* #undef HAVE_SYS_STAT_H */
-
/* Define if you have the <sys/time.h> header file. */
/* #define HAVE_SYS_TIME_H 1 */
+/* #undef HAVE_DIRENT_H 1 */
/* Define if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
-/* Define if you have the <sys/wait.h> header file. */
-/* #undef HAVE_SYS_WAIT_H */
-
/* Define if you have the <ucd-snmp/snmp.h> header file. */
/* #undef HAVE_UCD_SNMP_SNMP_H */
-/* Define if you have the <ucd-snmp/version.h> header file. */
-/* #undef HAVE_UCD_SNMP_VERSION_H */
-
/* Define if you have the <unistd.h> header file. */
/* #define HAVE_UNISTD_H 1 */
+/* Define if you have the pcap library (-lpcap). */
+/* #define HAVE_LIBPCAP 1 */
+
+/* Define if you have the z library (-lz). */
+/*#define HAVE_LIBZ 1*/
+
/* Name of package */
#define PACKAGE "ethereal"
/* Version number of package */
-#define VERSION "0.8.0"
-
-#define HAVE_WINSOCK_H 1
-#define HAVE_DIRECT_H 1
-#define HAVE_IO_H 1
-#define NEED_INET_V6DEFS_H 1
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#define strncasecmp strnicmp
-#define open _open
-#define close _close
-#define popen _popen
-#define pclose _pclose
-
+#define VERSION "0.8.1"
+
+#ifndef WIN32
+#define WIN32 1
+#endif
+
+#define HAVE_WINDOWS_H 1
+#define HAVE_WINSOCK_H 1
+#define HAVE_DIRECT_H 1
+#define HAVE_IO_H 1
+#define NEED_INET_V6DEFS_H 1
+#define snprintf _snprintf
+#define vsnprintf _vsnprintf
+#define strncasecmp strnicmp
+#define open _open
+#define close _close
+#define popen _popen
+#define pclose _pclose
+
+/* Needed for zlib, according to http://www.winimage.com/zLibDll/ */
+/*#define ZLIB_DLL 1
+#define _WINDOWS 1*/
+
+#define HAVE_PLUGINS 1
diff --git a/configure.in b/configure.in
index b3a7dc0577..3f6a0885a7 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-# $Id: configure.in,v 1.72 2000/01/10 17:32:50 gram Exp $
+# $Id: configure.in,v 1.73 2000/01/15 00:22:29 gram Exp $
dnl
dnl Process this file with autoconf 2.13 or later to produce a
dnl configure script; 2.12 doesn't generate a "configure" script that
@@ -153,7 +153,7 @@ fi
dnl Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h stdarg.h netdb.h)
+AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h stdarg.h netdb.h dirent.h)
AC_CHECK_HEADERS(sys/stat.h sys/sockio.h sys/types.h sys/socket.h)
AC_CHECK_HEADERS(sys/wait.h sys/param.h)
AC_CHECK_HEADERS(netinet/in.h net/if.h)
@@ -231,6 +231,7 @@ AC_CHECK_FUNC(mkstemp, MKSTEMP_O="",
if test "$ac_cv_func_mkstemp" = no ; then
MKSTEMP_C="mkstemp.c"
MKSTEMP_O="mkstemp.o"
+ AC_DEFINE(NEED_MKSTEMP)
fi
AC_SUBST(MKSTEMP_C)
AC_SUBST(MKSTEMP_O)
diff --git a/dfilter.h b/dfilter.h
index 4facd50195..b799e05d44 100644
--- a/dfilter.h
+++ b/dfilter.h
@@ -1,7 +1,7 @@
/* dfilter.h
* Definitions for display filters
*
- * $Id: dfilter.h,v 1.14 1999/10/12 05:00:47 guy Exp $
+ * $Id: dfilter.h,v 1.15 2000/01/15 00:22:30 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -26,6 +26,10 @@
#ifndef __DFILTER_H__
#define __DFILTER_H__
+#ifndef __PROTO_H__
+#include "proto.h"
+#endif
+
/* dfilter_error_msg is NULL if there was no error during dfilter_compile,
* otherwise it points to a displayable error message. */
extern gchar *dfilter_error_msg;
diff --git a/file.c b/file.c
index 3dd3ca6bb6..b359a6207e 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
- * $Id: file.c,v 1.152 2000/01/13 00:53:09 guy Exp $
+ * $Id: file.c,v 1.153 2000/01/15 00:22:30 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -83,9 +83,7 @@
#include "conversation.h"
#include "globals.h"
-#ifdef HAVE_DLFCN_H
#include "plugins.h"
-#endif
extern GtkWidget *packet_list, *prog_bar, *info_bar, *byte_view, *tree_view;
extern guint file_ctx;
@@ -534,13 +532,13 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf, const u_char *buf
proto_tree_free(protocol_tree);
}
else {
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
if (plugin_list)
protocol_tree = proto_tree_create_root();
#endif
dissect_packet(buf, fdata, protocol_tree);
fdata->passed_dfilter = TRUE;
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
if (protocol_tree)
proto_tree_free(protocol_tree);
#endif
diff --git a/gtk/Makefile.nmake b/gtk/Makefile.nmake
index 9f867cbc6e..04be3e4e0f 100644
--- a/gtk/Makefile.nmake
+++ b/gtk/Makefile.nmake
@@ -1,36 +1,41 @@
-GLIB_DIR=c:\prj\gtk+-win32\src\glib
-GTK_DIR=c:\prj\gtk+-win32\src\gtk+
+GLIB_DIR=T:\w32-ix86\glib
+GTK_DIR=T:\w32-ix86\gtk+
-#LOCAL_CFLAGS=/Ic:\tools\msdev\include
LOCAL_CFLAGS=
#################3
-CFLAGS=/DHAVE_CONFIG_H /I$(GLIB_DIR) /I$(GTK_DIR) /I.. \
- /I$(GTK_DIR)\gdk\win32 $(LOCAL_CFLAGS)
-
+CFLAGS=/DHAVE_CONFIG_H /I.. /I../wiretap \
+ /I$(GLIB_DIR) /I$(GTK_DIR) /I$(GLIB_DIR)/gmodule \
+ /I$(GTK_DIR)\gdk /I$(GTK_DIR)\gdk\win32 $(LOCAL_CFLAGS)
+
+# gtkclist.obj is not in here because it is gtk+-1.2 code,
+# while the DLL for GTK+ on windows is gtk+-1.3, and there's
+# some functions that have disappeared in gtk+-1.3. I might
+# get around to #ifdef'ing them out in our gtkclist.c.
OBJECTS=capture_dlg.obj \
+ column_prefs.obj \
display_opts.obj \
file_dlg.obj \
filter_prefs.obj \
find_dlg.obj \
goto_dlg.obj \
- gtkclist.obj \
+ gui_prefs.obj \
main.obj \
menu.obj \
plugins_dlg.obj \
prefs_dlg.obj \
print_dlg.obj \
- print_prefs.c \
+ print_prefs.obj \
proto_draw.obj \
+ simple_dialog.obj \
stream_prefs.obj \
summary_dlg.obj \
ui_util.obj
-libui.lib : config.h $(OBJECTS)
+libui.lib : ..\config.h $(OBJECTS)
lib /out:libui.lib $(OBJECTS)
-config.h : config.h.win32
- copy config.h.win32 $@
-
+..\config.h : ..\config.h.win32
+ copy ..\config.h.win32 ..\config.h
diff --git a/gtk/main.c b/gtk/main.c
index 662cb9e95d..5f17e3e12f 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.86 2000/01/12 22:07:56 oabad Exp $
+ * $Id: main.c,v 1.87 2000/01/15 00:22:51 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -53,6 +53,10 @@
#include <sys/types.h>
#include <sys/stat.h>
+#ifdef HAVE_IO_H
+#include <io.h> /* open/close on win32 */
+#endif
+
#ifdef HAVE_DIRECT_H
#include <direct.h>
#endif
@@ -1294,8 +1298,10 @@ main(int argc, char *argv[])
if (capture_option_specified)
fprintf(stderr, "This version of Ethereal was not built with support for capturing packets.\n");
#endif
+#ifndef WIN32
if (arg_error)
print_usage();
+#endif
#ifdef HAVE_LIBPCAP
if (start_capture) {
if (cf.iface == NULL) {
diff --git a/gtk/main.h b/gtk/main.h
index eb3c2b0354..413d91fa2e 100644
--- a/gtk/main.h
+++ b/gtk/main.h
@@ -1,7 +1,7 @@
/* ethereal.h
* Global defines, etc.
*
- * $Id: main.h,v 1.8 1999/12/10 06:28:23 guy Exp $
+ * $Id: main.h,v 1.9 2000/01/15 00:22:52 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -64,7 +64,7 @@ void file_quit_cmd_cb(GtkWidget *, gpointer);
void file_reload_cmd_cb(GtkWidget *, gpointer);
void file_print_cmd_cb(GtkWidget *, gpointer);
void file_print_packet_cmd_cb(GtkWidget *, gpointer);
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
void tools_plugins_cmd_cb(GtkWidget *, gpointer);
#endif
void expand_all_cb(GtkWidget *, gpointer);
diff --git a/gtk/menu.c b/gtk/menu.c
index c595c5db7b..eaa0f9f01a 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -1,7 +1,7 @@
/* menu.c
* Menu routines
*
- * $Id: menu.c,v 1.15 2000/01/08 23:34:50 guy Exp $
+ * $Id: menu.c,v 1.16 2000/01/15 00:22:53 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -114,7 +114,7 @@ static GtkItemFactoryEntry menu_items[] =
{"/Display/Collapse _All", NULL, GTK_MENU_FUNC(collapse_all_cb), 0, NULL},
{"/Display/_Expand All", NULL, GTK_MENU_FUNC(expand_all_cb), 0, NULL},
{"/_Tools", NULL, NULL, 0, "<Branch>" },
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
{"/Tools/_Plugins...", NULL, GTK_MENU_FUNC(tools_plugins_cmd_cb), 0, NULL},
#endif
{"/Tools/_Follow TCP Stream", NULL, GTK_MENU_FUNC(follow_stream_cb), 0, NULL},
diff --git a/gtk/plugins_dlg.c b/gtk/plugins_dlg.c
index 7e927df034..c2f5de75f6 100644
--- a/gtk/plugins_dlg.c
+++ b/gtk/plugins_dlg.c
@@ -1,7 +1,7 @@
/* plugins_dlg.c
* Dialog boxes for plugins
*
- * $Id: plugins_dlg.c,v 1.9 2000/01/04 20:37:18 oabad Exp $
+ * $Id: plugins_dlg.c,v 1.10 2000/01/15 00:22:53 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -27,7 +27,7 @@
#include "config.h"
#endif
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
#include <errno.h>
#include <sys/types.h>
@@ -160,7 +160,6 @@ tools_plugins_cmd_cb(GtkWidget *widget, gpointer data)
gtk_widget_show(plugins_window);
- lt_dlinit();
}
/*
@@ -186,10 +185,16 @@ plugins_scan(GtkWidget *clist)
while (pt_plug)
{
plugent[0] = pt_plug->name;
- plugent[1] = (gchar *)lt_dlsym(pt_plug->handle, "desc");
+
+ if (g_module_symbol(pt_plug->handle, "desc", &plugent[1]) == FALSE) {
+ /* This plugin fails; continue next plugin */
+ goto NEXT_PLUGIN;
+ }
+
plugent[2] = pt_plug->version;
plugent[3] = (pt_plug->enabled ? "Yes" : "No");
gtk_clist_append(GTK_CLIST(clist), plugent);
+ NEXT_PLUGIN:
pt_plug = pt_plug->next;
}
}
@@ -240,8 +245,7 @@ plugins_enable_cb(GtkWidget *button, gpointer clist)
simple_dialog(ESD_TYPE_WARN, NULL, "Plugin not found");
return;
}
- proto_init = (void (*)())lt_dlsym(pt_plug->handle, "proto_init");
- if (proto_init)
+ if (g_module_symbol(pt_plug->handle, "proto_init", (void**)&proto_init) == TRUE)
proto_init();
gtk_clist_set_text(GTK_CLIST(clist), selected_row, 3, "Yes");
@@ -370,7 +374,7 @@ filter_default_cb(GtkWidget *button, gpointer parent_w)
filter_entry = gtk_object_get_data(GTK_OBJECT(parent_w), PLUGINS_DFILTER_TE);
pt_plug = find_plugin(selected_name, selected_version);
- filter_string = (gchar *)lt_dlsym(pt_plug->handle, "filter_string");
+ g_module_symbol(pt_plug->handle, "filter_string", &filter_string);
gtk_entry_set_text(GTK_ENTRY(filter_entry), filter_string);
}
#endif
diff --git a/mkstemp.c b/mkstemp.c
index 7bb4ea32b7..3245cff177 100644
--- a/mkstemp.c
+++ b/mkstemp.c
@@ -16,12 +16,22 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
+
+#ifdef HAVE_FCNTL_H
#include <fcntl.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
#ifndef __set_errno
#define __set_errno(x) errno=(x)
@@ -64,6 +74,7 @@ mkstemp (template)
}
/* We return the null string if we can't find a unique file name. */
+
template[0] = '\0';
return -1;
}
diff --git a/mkstemp.h b/mkstemp.h
new file mode 100644
index 0000000000..be2cae0f79
--- /dev/null
+++ b/mkstemp.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 1991, 1992, 1996, 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+/* Generate a unique temporary file name from TEMPLATE.
+ The last six characters of TEMPLATE must be "XXXXXX";
+ they are replaced with a string that makes the filename unique.
+ Returns a file descriptor open on the file for reading and writing. */
+int mkstemp (char *template);
diff --git a/packet-isis-lsp.c b/packet-isis-lsp.c
index aa9352694c..b2c3c916f0 100644
--- a/packet-isis-lsp.c
+++ b/packet-isis-lsp.c
@@ -1,7 +1,7 @@
/* packet-isis-lsp.c
* Routines for decoding isis lsp packets and their CLVs
*
- * $Id: packet-isis-lsp.c,v 1.1 1999/12/15 04:34:18 guy Exp $
+ * $Id: packet-isis-lsp.c,v 1.2 2000/01/15 00:22:32 gram Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
@@ -37,12 +37,16 @@
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <netinet/in.h>
+
+#ifdef HAVE_NET_INET_H
+#include <net/inet.h>
+#endif
+
#include "packet.h"
-#include "resolv.h"
#include "packet-isis.h"
#include "packet-isis-clv.h"
#include "packet-isis-lsp.h"
+#include "resolv.h"
/* lsp packets */
static int proto_isis_lsp = -1;
diff --git a/packet-tcp.c b/packet-tcp.c
index 73eaa9c93d..05b7e65bc0 100644
--- a/packet-tcp.c
+++ b/packet-tcp.c
@@ -1,7 +1,7 @@
/* packet-tcp.c
* Routines for TCP packet disassembly
*
- * $Id: packet-tcp.c,v 1.54 1999/12/09 20:54:32 guy Exp $
+ * $Id: packet-tcp.c,v 1.55 2000/01/15 00:22:33 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -51,9 +51,7 @@
# include "snprintf.h"
#endif
-#ifdef HAVE_DLFCN_H
#include "plugins.h"
-#endif
#ifndef __PACKET_IP_H__
#include "packet-ip.h"
@@ -490,7 +488,7 @@ dissect_tcp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
if (packet_max > offset) {
/* try to apply the plugins */
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
plugin *pt_plug = plugin_list;
if (pt_plug) {
diff --git a/packet-udp.c b/packet-udp.c
index b5876bce2d..395c2fa5eb 100644
--- a/packet-udp.c
+++ b/packet-udp.c
@@ -1,7 +1,7 @@
/* packet-udp.c
* Routines for UDP packet disassembly
*
- * $Id: packet-udp.c,v 1.45 2000/01/07 09:10:12 guy Exp $
+ * $Id: packet-udp.c,v 1.46 2000/01/15 00:22:33 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -44,9 +44,7 @@
#include "globals.h"
#include "resolv.h"
-#ifdef HAVE_DLFCN_H
#include "plugins.h"
-#endif
static int proto_udp = -1;
static int hf_udp_srcport = -1;
@@ -247,7 +245,7 @@ dissect_udp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
return;
/* try to apply the plugins */
-#ifdef HAVE_DLFCN_H
+#ifdef HAVE_PLUGINS
{
plugin *pt_plug = plugin_list;
diff --git a/plugins.c b/plugins.c
index 48bac0fe51..67fcbda6e2 100644
--- a/plugins.c
+++ b/plugins.c
@@ -1,7 +1,7 @@
/* plugins.c
* plugin routines
*
- * $Id: plugins.c,v 1.4 2000/01/04 21:29:43 oabad Exp $
+ * $Id: plugins.c,v 1.5 2000/01/15 00:22:34 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -27,19 +27,35 @@
# include "config.h"
#endif
-#ifdef HAVE_DLFCN_H
+#include "plugins.h"
+
+#ifdef HAVE_PLUGINS
#include <time.h>
+
+#ifdef HAVE_DIRENT_H
#include <dirent.h>
+#endif
+
+#ifdef HAVE_DIRECT_H
+#include <direct.h>
+#endif
+
#include <string.h>
+#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
+
+#ifdef HAVE_FCNTL_H
#include <fcntl.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
#include "globals.h"
-#include "plugins.h"
/* linked list of all plugins */
plugin *plugin_list;
@@ -240,7 +256,11 @@ save_plugin_status()
if (!statusfile) {
pf_path = g_malloc(strlen(getenv("HOME")) + strlen(PF_DIR) + 2);
sprintf(pf_path, "%s/%s", getenv("HOME"), PF_DIR);
+ #ifdef WIN32
+ mkdir(pf_path);
+ #else
mkdir(pf_path, 0755);
+ #endif
g_free(pf_path);
statusfile=fopen(plugin_status_file, "w");
if (!statusfile) return -1;
@@ -262,7 +282,7 @@ save_plugin_status()
* If necessary, enable the plugin, and change the filter.
*/
static void
-check_plugin_status(gchar *name, gchar *version, lt_dlhandle handle,
+check_plugin_status(gchar *name, gchar *version, GModule *handle,
gchar *filter_string, FILE *statusfile)
{
gchar *ref_string;
@@ -285,9 +305,9 @@ check_plugin_status(gchar *name, gchar *version, lt_dlhandle handle,
else { /* found the plugin */
if (line[ref_string_len+1] == '1') {
enable_plugin(name, version);
- proto_init = (void (*)())lt_dlsym(handle, "proto_init");
- if (proto_init)
+ if (g_module_symbol(handle, "proto_init", (gpointer*)&proto_init) == TRUE) {
proto_init();
+ }
}
if (fgets(line, 512, statusfile) == NULL) return;
@@ -307,7 +327,7 @@ plugins_scan_dir(const char *dirname)
DIR *dir; /* scanned directory */
struct dirent *file; /* current file */
gchar filename[512]; /* current file name */
- lt_dlhandle handle; /* handle returned by dlopen */
+ GModule *handle; /* handle returned by dlopen */
gchar *name;
gchar *version;
gchar *protocol;
@@ -318,7 +338,11 @@ plugins_scan_dir(const char *dirname)
int cr;
FILE *statusfile;
+#ifdef WIN32
+#define LT_LIB_EXT ".dll"
+#else
#define LT_LIB_EXT ".la"
+#endif
if (!plugin_status_file)
{
@@ -341,34 +365,31 @@ plugins_scan_dir(const char *dirname)
sprintf(filename, "%s/%s", dirname, file->d_name);
- if ((handle = lt_dlopen(filename)) == NULL) continue;
+ if ((handle = g_module_open(filename, 0)) == NULL) continue;
name = (gchar *)file->d_name;
- if ((version = (gchar *)lt_dlsym(handle, "version")) == NULL)
+ if (g_module_symbol(handle, "version", (gpointer*)&version) == FALSE)
{
- lt_dlclose(handle);
+ g_module_close(handle);
continue;
}
- if ((protocol = (gchar *)lt_dlsym(handle, "protocol")) == NULL)
+ if (g_module_symbol(handle, "protocol", (gpointer*)&protocol) == FALSE)
{
- lt_dlclose(handle);
+ g_module_close(handle);
continue;
}
- if ((filter_string = (gchar *)lt_dlsym(handle, "filter_string")) == NULL)
+ if (g_module_symbol(handle, "filter_string", (gpointer*)&filter_string) == FALSE)
{
- lt_dlclose(handle);
+ g_module_close(handle);
continue;
}
if (dfilter_compile(filter_string, &filter) != 0) {
- lt_dlclose(handle);
+ g_module_close(handle);
continue;
}
- if ((dissector = (void (*)(const u_char *, int,
- frame_data *,
- proto_tree *)) lt_dlsym(handle, "dissector")) == NULL)
- {
+ if (g_module_symbol(handle, "dissector", (gpointer*)&dissector) == FALSE) {
if (filter != NULL)
dfilter_destroy(filter);
- lt_dlclose(handle);
+ g_module_close(handle);
continue;
}
@@ -384,7 +405,7 @@ plugins_scan_dir(const char *dirname)
name, version);
if (filter != NULL)
dfilter_destroy(filter);
- lt_dlclose(handle);
+ g_module_close(handle);
continue;
}
if (statusfile) {
diff --git a/plugins.h b/plugins.h
index 476b3ce047..ea4d84f33c 100644
--- a/plugins.h
+++ b/plugins.h
@@ -1,7 +1,7 @@
/* plugins.h
* definitions for plugins structures
*
- * $Id: plugins.h,v 1.4 2000/01/04 20:37:07 oabad Exp $
+ * $Id: plugins.h,v 1.5 2000/01/15 00:22:34 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -26,10 +26,30 @@
#ifndef __PLUGINS_H__
#define __PLUGINS_H__
-#include "ltdl.h"
+#include <glib.h>
+#include <gmodule.h>
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#ifdef HAVE_DLFCN_H
+#define HAVE_PLUGINS 1
+#endif
+#endif /* HAVE_CONFIG_H */
+
+#ifndef __DFILTER_H__
+#include "dfilter.h"
+#endif
+
+#ifndef __PACKET_H__
+#include "packet.h"
+#endif
+
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
typedef struct _plugin {
- lt_dlhandle handle; /* handle returned by dlopen */
+ GModule *handle; /* handle returned by dlopen */
gchar *name; /* plugin name */
gchar *version; /* plugin version */
gboolean enabled; /* is it active ? */
diff --git a/util.c b/util.c
index 18c914ed2d..6d3b5cf81e 100644
--- a/util.c
+++ b/util.c
@@ -1,7 +1,7 @@
/* util.c
* Utility routines
*
- * $Id: util.c,v 1.25 2000/01/10 17:32:53 gram Exp $
+ * $Id: util.c,v 1.26 2000/01/15 00:22:34 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -55,6 +55,10 @@
# include "snprintf.h"
#endif
+#ifdef NEED_MKSTEMP
+#include "mkstemp.h"
+#endif
+
#include "util.h"
#ifdef HAVE_IO_H
diff --git a/wiretap/Makefile.nmake b/wiretap/Makefile.nmake
index 44aa4ffc5b..755f5f9fd2 100644
--- a/wiretap/Makefile.nmake
+++ b/wiretap/Makefile.nmake
@@ -1,5 +1,4 @@
-GLIB_DIR=c:\prj\gtk+-win32\src\glib
-#LOCAL_CFLAGS=/Ic:\tools\msdev\include
+GLIB_DIR=T:\w32-ix86\glib
LOCAL_CFLAGS=
#################3
diff --git a/wiretap/config.h.win32 b/wiretap/config.h.win32
index 249df566d2..4c3529aca6 100644
--- a/wiretap/config.h.win32
+++ b/wiretap/config.h.win32
@@ -1,23 +1,12 @@
+
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-/* #undef WORDS_BIGENDIAN */
-
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#define YYTEXT_POINTER 1
-
-/* #undef HAVE_GLIB10 */
-
-/* Define if you have the <netinet/in.h> header file. */
-/* #undef HAVE_NETINET_IN_H */
-
-/* Define if you have the <sys/time.h> header file. */
-/* #undef HAVE_SYS_TIME_H */
+/* Define if you have the <unistd.h> header file. */
+/* #define HAVE_UNISTD_H */
/* Define if you have the z library (-lz). */
-/* #undef HAVE_LIBZ */
+/*#define HAVE_LIBZ 1*/
/* Name of package */
#define PACKAGE "libwtap.a"
@@ -27,5 +16,9 @@
#define HAVE_WINSOCK_H 1
#define HAVE_IO_H 1
-#define open _open
-#define close _close
+#define open _open
+#define close _close
+
+/* Needed for zlib, according to http://www.winimage.com/zLibDll/ */
+/*#define ZLIB_DLL 1
+#define _WINDOWS 1*/