Added Aaron Hillegass' summary dialogue. We're ignoring the problem with
authorgram <gram@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 22 Jun 1999 22:02:39 +0000 (22:02 +0000)
committergram <gram@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 22 Jun 1999 22:02:39 +0000 (22:02 +0000)
NetMon statistic packets for now. We might fix that problem with wiretap,
either filtering out those packets, and/or providing the summary
information through a new wiretap API.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@326 f5534014-38df-0310-8fa8-9805f1628bb7

17 files changed:
AUTHORS
Makefile.am
Makefile.in
NEWS
aclocal.m4
capture.c
configure
doc/ethereal.pod
ethereal.c
ethertype.c
etypes.h
file.c
file.h
menu.c
summary.c [new file with mode: 0644]
summary.h [new file with mode: 0644]
wiretap/config.h.in

diff --git a/AUTHORS b/AUTHORS
index 0ed193546cd69d94167a7a233e44caf520d170e6..6a08f1146d0b3ced99a3ff6f4bf305f483f89b54 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -100,6 +100,10 @@ Ashok Narayanan <ashokn@cisco.com> {
        RSVP
 }
 
+Aaron Hillegass <aaron@classmax.com> {
+       Summary dialogue
+}
+
 Alain Magloire <alainm@rcsm.ece.mcgill.ca> was kind enough to
 give his permission to use his version of snprintf.c.
 
index 99004846eafda7e8edbff8412e283dd62016bd5f..9c02ce43073eedd3868dcbdad5fb325f96d7c340 100644 (file)
@@ -90,6 +90,8 @@ ethereal_SOURCES = \
        resolv.c       \
        resolv.h       \
        smb.h          \
+        summary.h      \
+        summary.c      \
        util.c         \
        util.h
 
index b8922fbfa1408a9008c21fa8fb421f3ef54e850c..094fd825752d37e6ae535662da624a822dc32eee 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4a from Makefile.am
 
 # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
@@ -46,9 +46,10 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
 transform = @program_transform_name@
 
 NORMAL_INSTALL = :
@@ -82,7 +83,7 @@ man_MANS = ethereal.1
 
 sysconf_DATA = manuf
 
-ethereal_SOURCES =     alignment.h     capture.c       capture.h       column.c        column.h        config.h        display.c       display.h       ethereal.c      ethereal.h      ethertype.c     etypes.h        file.c          file.h          filter.c        filter.h        follow.c        follow.h        gtkpacket.c     gtkpacket.h     menu.c          menu.h          packet-aarp.c   packet-arp.c    packet-atalk.c  packet-bootp.c  packet-cdp.c    packet-data.c   packet-dns.c    packet-dns.h    packet-eth.c    packet-fddi.c   packet-ftp.c    packet-giop.c   packet-gre.c    packet-http.c   packet-icmpv6.c         packet-ip.c     packet-ip.h     packet-ipsec.c  packet-ipv6.c   packet-ipv6.h   packet-ipx.c    packet-ipx.h    packet-isakmp.c         packet-llc.c    packet-lpd.c    packet-nbipx.c  packet-nbns.c   packet-ncp.c    packet-ncp.h    packet-nntp.c   packet-null.c   packet-osi.c    packet-ospf.c   packet-ospf.h   packet-pop.c    packet-ppp.c    packet-pppoe.c  packet-pptp.c   packet-raw.c    packet-rip.c    packet-rip.h    packet-rsvp.c   packet-rsvp.h   packet-smb.c    packet-tcp.c    packet-telnet.c         packet-tftp.c   packet-tr.c     packet-trmac.c  packet-udp.c    packet-vines.c  packet-vines.h  packet.c        packet.h        prefs.c         prefs.h         print.c         print.h         ps.c            ps.h            resolv.c        resolv.h        smb.h           util.c          util.h
+ethereal_SOURCES =     alignment.h     capture.c       capture.h       column.c        column.h        config.h        display.c       display.h       ethereal.c      ethereal.h      ethertype.c     etypes.h        file.c          file.h          filter.c        filter.h        follow.c        follow.h        gtkpacket.c     gtkpacket.h     menu.c          menu.h          packet-aarp.c   packet-arp.c    packet-atalk.c  packet-bootp.c  packet-cdp.c    packet-data.c   packet-dns.c    packet-dns.h    packet-eth.c    packet-fddi.c   packet-ftp.c    packet-giop.c   packet-gre.c    packet-http.c   packet-icmpv6.c         packet-ip.c     packet-ip.h     packet-ipsec.c  packet-ipv6.c   packet-ipv6.h   packet-ipx.c    packet-ipx.h    packet-isakmp.c         packet-llc.c    packet-lpd.c    packet-nbipx.c  packet-nbns.c   packet-ncp.c    packet-ncp.h    packet-nntp.c   packet-null.c   packet-osi.c    packet-ospf.c   packet-ospf.h   packet-pop.c    packet-ppp.c    packet-pppoe.c  packet-pptp.c   packet-raw.c    packet-rip.c    packet-rip.h    packet-rsvp.c   packet-rsvp.h   packet-smb.c    packet-tcp.c    packet-telnet.c         packet-tftp.c   packet-tr.c     packet-trmac.c  packet-udp.c    packet-vines.c  packet-vines.h  packet.c        packet.h        prefs.c         prefs.h         print.c         print.h         ps.c            ps.h            resolv.c        resolv.h        smb.h                  summary.h              summary.c         util.c          util.h
 
 
 EXTRA_ethereal_SOURCES =       packet-snmp.c           snprintf.c              snprintf.h              snprintf-imp.h          strerror.c              strerror.h
@@ -119,7 +120,7 @@ packet-nbns.o packet-ncp.o packet-nntp.o packet-null.o packet-osi.o \
 packet-ospf.o packet-pop.o packet-ppp.o packet-pppoe.o packet-pptp.o \
 packet-raw.o packet-rip.o packet-rsvp.o packet-smb.o packet-tcp.o \
 packet-telnet.o packet-tftp.o packet-tr.o packet-trmac.o packet-udp.o \
-packet-vines.o packet.o prefs.o print.o ps.o resolv.o util.o
+packet-vines.o packet.o prefs.o print.o ps.o resolv.o summary.o util.o
 ethereal_LDFLAGS = 
 CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -139,7 +140,7 @@ missing mkinstalldirs ylwrap
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 DEP_FILES =  .deps/capture.P .deps/column.P .deps/display.P \
 .deps/ethereal.P .deps/ethertype.P .deps/file.P .deps/filter.P \
@@ -160,7 +161,7 @@ DEP_FILES =  .deps/capture.P .deps/column.P .deps/display.P \
 .deps/packet-tr.P .deps/packet-trmac.P .deps/packet-udp.P \
 .deps/packet-vines.P .deps/packet.P .deps/prefs.P .deps/print.P \
 .deps/ps.P .deps/resolv.P .deps/snprintf.P .deps/strerror.P \
-.deps/util.P
+.deps/summary.P .deps/util.P
 SOURCES = $(ethereal_SOURCES) $(EXTRA_ethereal_SOURCES)
 OBJECTS = $(ethereal_OBJECTS)
 
@@ -224,8 +225,8 @@ install-binPROGRAMS: $(bin_PROGRAMS)
        $(mkinstalldirs) $(DESTDIR)$(bindir)
        @list='$(bin_PROGRAMS)'; for p in $$list; do \
          if test -f $$p; then \
-           echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-            $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+           echo "  $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+            $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
          else :; fi; \
        done
 
@@ -449,7 +450,7 @@ distdir: $(DISTFILES)
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
-           cp -pr $$/$$file $(distdir)/$$file; \
+           cp -pr $$d/$$file $(distdir)/$$file; \
          else \
            test -f $(distdir)/$$file \
            || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -523,7 +524,7 @@ uninstall: uninstall-recursive
 all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) config.h
 all-redirect: all-recursive-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
 installdirs: installdirs-recursive
 installdirs-am:
        $(mkinstalldirs)  $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1 \
diff --git a/NEWS b/NEWS
index 18860b379e4aab1cf56a4884d43b112941ad6775..f1e1c0ff53f70dd98e81ec842bf8463683e558d9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ Overview of changes in Ethereal 0.6.3:
 * PPPoE (PPP over Ethernet) added (Jeff Jahr)
 * ISAKMP, GRE, PPTP added (Brad Robel-Forrest)
 * RSVP added (Ashok Narayanan)
+* Summary dialogue added (Aaron Hillegass)
 
 Overview of changes in Ethereal 0.6.2:
 * Almost-real-time capture and display (John, Laurent)
index aa9e319f1ed800ad33ab80629d280a6ed9ed9807..fba6b3a302e656bffb8c582aa5e403583c228cc5 100644 (file)
@@ -1,7 +1,7 @@
-dnl aclocal.m4 generated automatically by aclocal 1.3
+dnl aclocal.m4 generated automatically by aclocal 1.4a
 
-dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-dnl This Makefile.in is free software; the Free Software Foundation
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
@@ -183,6 +183,8 @@ dnl AM_INIT_AUTOMAKE(package,version, [no-define])
 
 AC_DEFUN(AM_INIT_AUTOMAKE,
 [AC_REQUIRE([AC_PROG_INSTALL])
+dnl We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
 PACKAGE=[$1]
 AC_SUBST(PACKAGE)
 VERSION=[$2]
@@ -192,8 +194,8 @@ if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
   AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
 fi
 ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
 AC_REQUIRE([AM_SANITY_CHECK])
 AC_REQUIRE([AC_ARG_PROGRAM])
 dnl FIXME This is truly gross.
@@ -205,15 +207,6 @@ AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
 AC_REQUIRE([AC_PROG_MAKE_SET])])
 
-
-# serial 1
-
-AC_DEFUN(AM_PROG_INSTALL,
-[AC_REQUIRE([AC_PROG_INSTALL])
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-AC_SUBST(INSTALL_SCRIPT)dnl
-])
-
 #
 # Check to make sure that the build environment is sane.
 #
@@ -276,7 +269,7 @@ AC_SUBST($1)])
 # Configure paths for GTK+
 # Owen Taylor     97-11-3
 
-dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
 dnl
 AC_DEFUN(AM_PATH_GTK,
@@ -290,6 +283,15 @@ AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK
 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
                    , enable_gtktest=yes)
 
+  for module in . $4
+  do
+      case "$module" in
+         gthread) 
+             gtk_config_args="$gtk_config_args gthread"
+         ;;
+      esac
+  done
+
   if test x$gtk_config_exec_prefix != x ; then
      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
      if test x${GTK_CONFIG+set} != xset ; then
@@ -322,7 +324,7 @@ AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run
       ac_save_CFLAGS="$CFLAGS"
       ac_save_LIBS="$LIBS"
       CFLAGS="$CFLAGS $GTK_CFLAGS"
-      LIBS="$LIBS $GTK_LIBS"
+      LIBS="$GTK_LIBS $LIBS"
 dnl
 dnl Now check if the installed GTK is sufficiently new. (Also sanity
 dnl checks the results of gtk-config to some extent
@@ -331,6 +333,7 @@ dnl
       AC_TRY_RUN([
 #include <gtk/gtk.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 int 
 main ()
@@ -363,6 +366,17 @@ main ()
       printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
       printf("*** before re-running configure\n");
     } 
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+          (gtk_minor_version != GTK_MINOR_VERSION) ||
+           (gtk_micro_version != GTK_MICRO_VERSION))
+    {
+      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+            GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+            gtk_major_version, gtk_minor_version, gtk_micro_version);
+    }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
   else
     {
       if ((gtk_major_version > major) ||
index f60892a549cc3b55ea6df3e978ddf86a9863813d..0b5ab5e3d145c439066de4d816f3bfe9f7dec79d 100644 (file)
--- a/capture.c
+++ b/capture.c
@@ -1,7 +1,7 @@
 /* capture.c
  * Routines for packet capture windows
  *
- * $Id: capture.c,v 1.28 1999/06/21 19:04:34 gram Exp $
+ * $Id: capture.c,v 1.29 1999/06/22 22:02:09 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -561,9 +561,11 @@ capture(void) {
 #ifdef USE_ITEM
   set_menu_sensitivity("/File/Save", TRUE);
   set_menu_sensitivity("/File/Save as", FALSE);
+  set_menu_sensitivity("/Tools/Summary", TRUE);
 #else
   set_menu_sensitivity("<Main>/File/Save", TRUE);
   set_menu_sensitivity("<Main>/File/Save as", FALSE);
+  set_menu_sensitivity("<Main>/Tools/Summary", TRUE);
 #endif
 }
 
index f351f6913eb429fc63dbc0cbe9ac6d83546efe2c..cdbdf58ad143a8fcf1d6364b47d842c8e313b363 100755 (executable)
--- a/configure
+++ b/configure
@@ -703,6 +703,7 @@ else
 fi
 
 
+
 PACKAGE=ethereal
 
 VERSION=0.6.2
@@ -722,7 +723,7 @@ EOF
 
 missing_dir=`cd $ac_aux_dir && pwd`
 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:726: checking for working aclocal" >&5
+echo "configure:727: checking for working aclocal" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -735,7 +736,7 @@ else
 fi
 
 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:739: checking for working autoconf" >&5
+echo "configure:740: checking for working autoconf" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -748,7 +749,7 @@ else
 fi
 
 echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:752: checking for working automake" >&5
+echo "configure:753: checking for working automake" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -761,7 +762,7 @@ else
 fi
 
 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:765: checking for working autoheader" >&5
+echo "configure:766: checking for working autoheader" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -774,7 +775,7 @@ else
 fi
 
 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:778: checking for working makeinfo" >&5
+echo "configure:779: checking for working makeinfo" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -795,7 +796,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:799: checking host system type" >&5
+echo "configure:800: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -819,7 +820,7 @@ echo "$ac_t""$host" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:823: checking for $ac_word" >&5
+echo "configure:824: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -849,7 +850,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:853: checking for $ac_word" >&5
+echo "configure:854: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -900,7 +901,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:904: checking for $ac_word" >&5
+echo "configure:905: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -932,7 +933,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:936: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:937: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -943,12 +944,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 947 "configure"
+#line 948 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -974,12 +975,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:978: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:979: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:983: checking whether we are using GNU C" >&5
+echo "configure:984: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -988,7 +989,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:992: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:993: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1007,7 +1008,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1011: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1012: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1041,7 +1042,7 @@ fi
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1045: checking for $ac_word" >&5
+echo "configure:1046: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1071,7 +1072,7 @@ fi
 
 # If we're running gcc, add '-Wall' to CFLAGS.
 echo $ac_n "checking to see if we can add '-Wall' to CFLAGS""... $ac_c" 1>&6
-echo "configure:1075: checking to see if we can add '-Wall' to CFLAGS" >&5
+echo "configure:1076: checking to see if we can add '-Wall' to CFLAGS" >&5
 if test x$GCC != x ; then
   CFLAGS="-Wall $CFLAGS"
   echo "$ac_t""yes" 1>&6
@@ -1097,7 +1098,7 @@ EOF
 case "$host_os" in
   solaris*)
     echo $ac_n "checking for LD_LIBRARY_PATH""... $ac_c" 1>&6
-echo "configure:1101: checking for LD_LIBRARY_PATH" >&5
+echo "configure:1102: checking for LD_LIBRARY_PATH" >&5
     if test x$LD_LIBRARY_PATH != x ; then
       LIBS="$LIBS -R$LD_LIBRARY_PATH"
       echo "$ac_t""yes -- added LD_LIBRARY_PATH to run-time linker path" 1>&6
@@ -1158,7 +1159,7 @@ fi
   # Extract the first word of "gtk-config", so it can be a program name with args.
 set dummy gtk-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1162: checking for $ac_word" >&5
+echo "configure:1163: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1193,7 +1194,7 @@ fi
 
   min_gtk_version=1.0.0
   echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
-echo "configure:1197: checking for GTK - version >= $min_gtk_version" >&5
+echo "configure:1198: checking for GTK - version >= $min_gtk_version" >&5
   no_gtk=""
   if test "$GTK_CONFIG" = "no" ; then
     no_gtk=yes
@@ -1216,7 +1217,7 @@ echo "configure:1197: checking for GTK - version >= $min_gtk_version" >&5
   echo $ac_n "cross compiling; assumed OK... $ac_c"
 else
   cat > conftest.$ac_ext <<EOF
-#line 1220 "configure"
+#line 1221 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -1294,7 +1295,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:1298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1328,7 +1329,7 @@ fi
           CFLAGS="$CFLAGS $GTK_CFLAGS"
           LIBS="$LIBS $GTK_LIBS"
           cat > conftest.$ac_ext <<EOF
-#line 1332 "configure"
+#line 1333 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -1338,7 +1339,7 @@ int main() {
  return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); 
 ; return 0; }
 EOF
-if { (eval echo configure:1342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    echo "*** The test program compiled, but did not run. This usually means"
           echo "*** that the run-time linker is not finding GTK or finding the wrong"
@@ -1379,7 +1380,7 @@ rm -f conftest*
 
 # Evidently, some systems have pcap.h, etc. in */include/pcap
 echo $ac_n "checking for extraneous pcap header directories""... $ac_c" 1>&6
-echo "configure:1383: checking for extraneous pcap header directories" >&5
+echo "configure:1384: checking for extraneous pcap header directories" >&5
 found_pcap_dir=""
 for pcap_dir in /usr/include/pcap /usr/local/include/pcap
 do
@@ -1399,7 +1400,7 @@ fi
 
 # Pcap checks
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1403: checking how to run the C preprocessor" >&5
+echo "configure:1404: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1414,13 +1415,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1418 "configure"
+#line 1419 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1424: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1425: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1431,13 +1432,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1435 "configure"
+#line 1436 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1441: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1442: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1448,13 +1449,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1452 "configure"
+#line 1453 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1480,17 +1481,17 @@ echo "$ac_t""$CPP" 1>&6
 
 ac_safe=`echo "net/bpf.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for net/bpf.h""... $ac_c" 1>&6
-echo "configure:1484: checking for net/bpf.h" >&5
+echo "configure:1485: checking for net/bpf.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1489 "configure"
+#line 1490 "configure"
 #include "confdefs.h"
 #include <net/bpf.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1494: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1495: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1514,17 +1515,17 @@ fi
 
 ac_safe=`echo "pcap.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for pcap.h""... $ac_c" 1>&6
-echo "configure:1518: checking for pcap.h" >&5
+echo "configure:1519: checking for pcap.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1524 "configure"
 #include "confdefs.h"
 #include <pcap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1547,7 +1548,7 @@ else
 fi
 
 echo $ac_n "checking for pcap_open_offline in -lpcap""... $ac_c" 1>&6
-echo "configure:1551: checking for pcap_open_offline in -lpcap" >&5
+echo "configure:1552: checking for pcap_open_offline in -lpcap" >&5
 ac_lib_var=`echo pcap'_'pcap_open_offline | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1555,7 +1556,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1559 "configure"
+#line 1560 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1566,7 +1567,7 @@ int main() {
 pcap_open_offline()
 ; return 0; }
 EOF
-if { (eval echo configure:1570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1597,7 +1598,7 @@ fi
 
 # Wiretap check
 echo $ac_n "checking whether to include wiretap library""... $ac_c" 1>&6
-echo "configure:1601: checking whether to include wiretap library" >&5
+echo "configure:1602: checking whether to include wiretap library" >&5
 # Check whether --with-wiretap or --without-wiretap was given.
 if test "${with_wiretap+set}" = set; then
   withval="$with_wiretap"
@@ -1639,7 +1640,7 @@ fi
 
 
 echo $ac_n "checking whether to enable ipv6 name resolution if available""... $ac_c" 1>&6
-echo "configure:1643: checking whether to enable ipv6 name resolution if available" >&5
+echo "configure:1644: checking whether to enable ipv6 name resolution if available" >&5
 if test "x$enable_ipv6" = "xno" ; then
        echo "$ac_t""no" 1>&6
 else
@@ -1649,12 +1650,12 @@ else
        v6lib=none
 
        echo $ac_n "checking ipv6 stack type""... $ac_c" 1>&6
-echo "configure:1653: checking ipv6 stack type" >&5
+echo "configure:1654: checking ipv6 stack type" >&5
        for i in v6d toshiba kame inria zeta linux; do
                case $i in
                v6d)
                        cat > conftest.$ac_ext <<EOF
-#line 1658 "configure"
+#line 1659 "configure"
 #include "confdefs.h"
 dnl
 #include </usr/local/v6/include/sys/types.h>
@@ -1674,7 +1675,7 @@ rm -f conftest*
                        ;;
                toshiba)
                        cat > conftest.$ac_ext <<EOF
-#line 1678 "configure"
+#line 1679 "configure"
 #include "confdefs.h"
 dnl
 #include <sys/param.h>
@@ -1694,7 +1695,7 @@ rm -f conftest*
                        ;;
                kame)
                        cat > conftest.$ac_ext <<EOF
-#line 1698 "configure"
+#line 1699 "configure"
 #include "confdefs.h"
 dnl
 #include <netinet/in.h>
@@ -1714,7 +1715,7 @@ rm -f conftest*
                        ;;
                inria)
                        cat > conftest.$ac_ext <<EOF
-#line 1718 "configure"
+#line 1719 "configure"
 #include "confdefs.h"
 dnl
 #include <netinet/in.h>
@@ -1732,7 +1733,7 @@ rm -f conftest*
                        ;;
                zeta)
                        cat > conftest.$ac_ext <<EOF
-#line 1736 "configure"
+#line 1737 "configure"
 #include "confdefs.h"
 dnl
 #include <sys/param.h>
@@ -1781,12 +1782,12 @@ fi
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1785: checking for ANSI C header files" >&5
+echo "configure:1786: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1790 "configure"
+#line 1791 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1794,7 +1795,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1798: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1811,7 +1812,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1815 "configure"
+#line 1816 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1829,7 +1830,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1833 "configure"
+#line 1834 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1850,7 +1851,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1854 "configure"
+#line 1855 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1861,7 +1862,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:1865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1888,17 +1889,17 @@ for ac_hdr in fcntl.h sys/ioctl.h sys/time.h unistd.h stdarg.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1892: checking for $ac_hdr" >&5
+echo "configure:1893: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1897 "configure"
+#line 1898 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1903: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1929,17 +1930,17 @@ for ac_hdr in sys/sockio.h sys/types.h netinet/in.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1933: checking for $ac_hdr" >&5
+echo "configure:1934: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1938 "configure"
+#line 1939 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1943: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1979,7 +1980,7 @@ fi
 SNMP_A=''
 SNMP_O=''
 echo $ac_n "checking whether to use SNMP library if available""... $ac_c" 1>&6
-echo "configure:1983: checking whether to use SNMP library if available" >&5
+echo "configure:1984: checking whether to use SNMP library if available" >&5
 if test "x$enable_snmp" = "xno" ; then
        echo "$ac_t""no" 1>&6
 else
@@ -1988,17 +1989,17 @@ else
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1992: checking for $ac_hdr" >&5
+echo "configure:1993: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1997 "configure"
+#line 1998 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2003: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2025,7 +2026,7 @@ fi
 done
 
        echo $ac_n "checking for asn_parse_header in -lsnmp""... $ac_c" 1>&6
-echo "configure:2029: checking for asn_parse_header in -lsnmp" >&5
+echo "configure:2030: checking for asn_parse_header in -lsnmp" >&5
 ac_lib_var=`echo snmp'_'asn_parse_header | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2033,7 +2034,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsnmp  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2037 "configure"
+#line 2038 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2044,7 +2045,7 @@ int main() {
 asn_parse_header()
 ; return 0; }
 EOF
-if { (eval echo configure:2048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2077,12 +2078,12 @@ fi
 # for get_interface_list().
 
 echo $ac_n "checking for sa_len in struct sockaddr""... $ac_c" 1>&6
-echo "configure:2081: checking for sa_len in struct sockaddr" >&5
+echo "configure:2082: checking for sa_len in struct sockaddr" >&5
 if eval "test \"`echo '$''{'ac_cv_ethereal_struct_sa_len'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2086 "configure"
+#line 2087 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -2090,7 +2091,7 @@ int main() {
 struct sockaddr s; s.sa_len;
 ; return 0; }
 EOF
-if { (eval echo configure:2094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2095: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_ethereal_struct_sa_len=yes
 else
@@ -2113,14 +2114,14 @@ fi
 
 # We must know our byte order
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2117: checking whether byte ordering is bigendian" >&5
+echo "configure:2118: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 2124 "configure"
+#line 2125 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -2131,11 +2132,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 2139 "configure"
+#line 2140 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -2146,7 +2147,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -2166,7 +2167,7 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 2170 "configure"
+#line 2171 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -2179,7 +2180,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:2183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -2205,13 +2206,13 @@ fi
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:2209: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:2210: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 2215 "configure"
+#line 2216 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -2229,7 +2230,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 2233 "configure"
+#line 2234 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -2251,12 +2252,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
 fi
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:2255: checking for socket" >&5
+echo "configure:2256: checking for socket" >&5
 if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2260 "configure"
+#line 2261 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -2279,7 +2280,7 @@ socket();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -2305,12 +2306,12 @@ fi
 SNPRINTF_C=""
 SNPRINTF_O=""
 echo $ac_n "checking for snprintf""... $ac_c" 1>&6
-echo "configure:2309: checking for snprintf" >&5
+echo "configure:2310: checking for snprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2314 "configure"
+#line 2315 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char snprintf(); below.  */
@@ -2333,7 +2334,7 @@ snprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_snprintf=yes"
 else
@@ -2364,12 +2365,12 @@ fi
 
 
 echo $ac_n "checking for strerror""... $ac_c" 1>&6
-echo "configure:2368: checking for strerror" >&5
+echo "configure:2369: checking for strerror" >&5
 if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2373 "configure"
+#line 2374 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char strerror(); below.  */
@@ -2392,7 +2393,7 @@ strerror();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_strerror=yes"
 else
index ae16fc1a162a28222d00d66d6adfe9113c6ad8ca..0ac105093495b156e48f206253f988e584ee28b4 100644 (file)
@@ -377,6 +377,7 @@ B<http://ethereal.zing.org>.
   Jeff Jahr                <jjahr@shastanets.com>
   Brad Robel-Forrest       <bradr@watchguard.com>
   Ashok Narayanan          <ashokn@cisco.com>
+  Aaron Hillegass          <aaron@classmax.com>
 
 Alain Magloire <alainm@rcsm.ece.mcgill.ca> was kind enough to give his
 permission to use his version of snprintf.c.
index 99b7630ff4a7ede43e8b17bbb635969503d8d167..475e7bea54ec19c0bfa5d4eb025401ae3edfe91a 100644 (file)
@@ -1,6 +1,6 @@
 /* ethereal.c
  *
- * $Id: ethereal.c,v 1.43 1999/06/19 03:14:31 guy Exp $
+ * $Id: ethereal.c,v 1.44 1999/06/22 22:02:10 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -75,6 +75,7 @@
 #include "timestamp.h"
 #include "packet.h"
 #include "capture.h"
+#include "summary.h"
 #include "file.h"
 #include "menu.h"
 #include "etypes.h"
@@ -142,6 +143,7 @@ about_ethereal( GtkWidget *w, gpointer data ) {
                "Jeff Jahr                <jjahr@shastanets.com>\n"
                "Brad Robel-Forrest       <bradr@watchguard.com>\n"
                "Ashok Narayanan          <ashokn@cisco.com>\n"
+               "Aaron Hillegass          <aaron@classmax.com>\n"
 
                "\nSee http://ethereal.zing.org for more information",
                 VERSION, comp_info_str);
@@ -169,9 +171,11 @@ file_sel_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
 #ifdef USE_ITEM
     set_menu_sensitivity("/File/Save", FALSE);
     set_menu_sensitivity("/File/Save As...", TRUE);
+    set_menu_sensitivity("/Tools/Summary", TRUE);
 #else
     set_menu_sensitivity("<Main>/File/Save", FALSE);
     set_menu_sensitivity("<Main>/File/Save As...", TRUE);
+    set_menu_sensitivity("<Main>/Tools/Summary", TRUE);
 #endif
 }
 
@@ -326,9 +330,11 @@ file_close_cmd_cb(GtkWidget *widget, gpointer data) {
 #ifdef USE_ITEM
   set_menu_sensitivity("/File/Close", FALSE);
   set_menu_sensitivity("/File/Reload", FALSE);
+  set_menu_sensitivity("/Tools/Summary", FALSE);
 #else
   set_menu_sensitivity("<Main>/File/Close", FALSE);
   set_menu_sensitivity("<Main>/File/Reload", FALSE);
+  set_menu_sensitivity("<Main>/Tools/Summary", FALSE);
 #endif
 }
 
@@ -942,8 +948,10 @@ main(int argc, char *argv[])
     cf_name[0] = '\0';
 #ifdef USE_ITEM
     set_menu_sensitivity("/File/Save As...", TRUE);
+    set_menu_sensitivity("/Tools/Summary", TRUE);
 #else
     set_menu_sensitivity("<Main>/File/Save As...", TRUE);
+    set_menu_sensitivity("<Main>/Tools/Summary", TRUE);
 #endif
   }
 
index 952723e7291aab13901f09bdda9b98e9987eaec6..e9ad98e2f048e64725ba6f85695bc29f5afba99f 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for calling the right protocol for the ethertype.
  * This is called by both packet-eth.c (Ethernet II) and packet-llc.c (SNAP)
  *
- * $Id: ethertype.c,v 1.14 1999/06/11 15:30:37 gram Exp $
+ * $Id: ethertype.c,v 1.15 1999/06/22 22:02:11 gram Exp $
  *
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
@@ -51,6 +51,7 @@ ethertype_to_str(guint16 etype, const char *fmt)
     {ETHERTYPE_IPX,    "Netware IPX/SPX"},
     {ETHERTYPE_VINES,  "Vines"          },
     {ETHERTYPE_CDP,    "CDP"            }, /* Cisco Discovery Protocol */
+    {ETHERTYPE_TRAIN,   "Netmon Train"  },
     {ETHERTYPE_LOOP,   "Loopback"       }, /* Ethernet Loopback */
                {ETHERTYPE_PPPOED, "PPPoE Discovery"}, 
                {ETHERTYPE_PPPOES, "PPPoE Session"  }, 
@@ -126,3 +127,6 @@ ethertype(guint16 etype, int offset,
       break;
   }
 }
+
+
+
index 3447b5305ece88904cfcd4985b59a783af90f0ab..3f50d600da68f694212108ed308d5d28bf29c9ad 100644 (file)
--- a/etypes.h
+++ b/etypes.h
@@ -1,7 +1,7 @@
 /* etypes.h
  * Defines ethernet packet types, similar to tcpdump's ethertype.h
  *
- * $Id: etypes.h,v 1.5 1999/06/11 15:30:37 gram Exp $
+ * $Id: etypes.h,v 1.6 1999/06/22 22:02:11 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 #define ETHERTYPE_VINES 0xbad
 #endif
 
+#ifndef ETHERTYPE_TRAIN
+#define ETHERTYPE_TRAIN 0x1984
+/* Created by Netmon as a summary packet */
+#endif
+
 #ifndef ETHERTYPE_CDP
 #define ETHERTYPE_CDP 0x2000   /* Cisco Discovery Protocol */
 #endif
@@ -88,3 +93,5 @@
 
 
 #endif /* etypes.h */
+
+
diff --git a/file.c b/file.c
index 03df57b114968126db64b0fdf9fd1d62eb549129..24670409c5eb951331bfacdb958c3cf309ff6879 100644 (file)
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
 /* file.c
  * File I/O routines
  *
- * $Id: file.c,v 1.32 1999/06/22 03:39:06 guy Exp $
+ * $Id: file.c,v 1.33 1999/06/22 22:02:11 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -315,9 +315,11 @@ load_cap_file(char *fname, capture_file *cf) {
 #ifdef USE_ITEM
     set_menu_sensitivity("/File/Close", TRUE);
     set_menu_sensitivity("/File/Reload", TRUE);
+    set_menu_sensitivity("/Tools/Summary", TRUE);
 #else
     set_menu_sensitivity("<Main>/File/Close", TRUE);
     set_menu_sensitivity("<Main>/File/Reload", TRUE);
+    set_menu_sensitivity("<Main>/Tools/Summary", TRUE);
 #endif
   } else {
     msg_len = strlen(name_ptr) + strlen(err_fmt) + 2;
@@ -330,11 +332,14 @@ load_cap_file(char *fname, capture_file *cf) {
     set_menu_sensitivity("/File/Save", FALSE);
     set_menu_sensitivity("/File/Save As...", FALSE);
     set_menu_sensitivity("/File/Reload", FALSE);
+    set_menu_sensitivity("/Tools/Summary", FALSE);
+
 #else
     set_menu_sensitivity("<Main>/File/Close", FALSE);
     set_menu_sensitivity("<Main>/File/Save", FALSE);
     set_menu_sensitivity("<Main>/File/Save As...", FALSE);
     set_menu_sensitivity("<Main>/File/Reload", FALSE);
+    set_menu_sensitivity("<Main>/Tools/Summary", FALSE);
 #endif
   }
   return err;
@@ -378,6 +383,8 @@ cap_file_input_cb (gpointer data, gint source, GdkInputCondition condition) {
     set_menu_sensitivity("/File/Reload", TRUE);
     set_menu_sensitivity("/Capture/Start...", TRUE);
     set_menu_sensitivity("/Tools/Capture...", TRUE);
+    set_menu_sensitivity("/Tools/Summary", TRUE);
+
 #else
     set_menu_sensitivity("<Main>/File/Open...", TRUE);
     set_menu_sensitivity("<Main>/File/Close", TRUE);
@@ -385,6 +392,7 @@ cap_file_input_cb (gpointer data, gint source, GdkInputCondition condition) {
     set_menu_sensitivity("<Main>/File/Reload", TRUE);
     set_menu_sensitivity("<Main>/Capture/Start...", TRUE);
     set_menu_sensitivity("<Main>/Tools/Capture...", TRUE);
+    set_menu_sensitivity("<Main>/Tools/Summary", TRUE);
 #endif
     gtk_statusbar_push(GTK_STATUSBAR(info_bar), file_ctx, " File: <none>");
     return;
@@ -465,12 +473,16 @@ tail_cap_file(char *fname, capture_file *cf) {
     set_menu_sensitivity("/File/Reload", FALSE);
     set_menu_sensitivity("/Capture/Start...", FALSE);
     set_menu_sensitivity("/Tools/Capture...", FALSE);
+    set_menu_sensitivity("/Tools/Summary", FALSE);
+
 #else
     set_menu_sensitivity("<Main>/File/Open...", FALSE);
     set_menu_sensitivity("<Main>/File/Close", FALSE);
     set_menu_sensitivity("<Main>/File/Reload", FALSE);
     set_menu_sensitivity("<Main>/Capture/Start...", FALSE);
     set_menu_sensitivity("<Main>/Tools/Capture...", FALSE);
+    set_menu_sensitivity("<Main>/Tools/Summary", FALSE);
+
 #endif
     cf->fh = fopen(fname, "r");
     tail_timeout_id = -1;
@@ -489,11 +501,13 @@ tail_cap_file(char *fname, capture_file *cf) {
     set_menu_sensitivity("/File/Save", FALSE);
     set_menu_sensitivity("/File/Save As...", FALSE);
     set_menu_sensitivity("/File/Reload", FALSE);
+    set_menu_sensitivity("/Tools/Summary", FALSE);
 #else
     set_menu_sensitivity("<Main>/File/Close", FALSE);
     set_menu_sensitivity("<Main>/File/Save", FALSE);
     set_menu_sensitivity("<Main>/File/Save As...", FALSE);
     set_menu_sensitivity("<Main>/File/Reload", FALSE);
+    set_menu_sensitivity("<Main>/Tools/Summary", FALSE);
 #endif
     close(sync_pipe[0]);
   }
diff --git a/file.h b/file.h
index 63088a8382ab26e89fe89b61cd17b8c94d571588..1da016cc402f339675ebbb9027e53bac7f10e24d 100644 (file)
--- a/file.h
+++ b/file.h
@@ -1,7 +1,7 @@
 /* file.h
  * Definitions for file structures and routines
  *
- * $Id: file.h,v 1.16 1999/06/22 03:39:06 guy Exp $
+ * $Id: file.h,v 1.17 1999/06/22 22:02:12 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -149,3 +149,6 @@ char *file_read_error_message(int);
 char *file_write_error_message(int);
 
 #endif /* file.h */
+
+
+
diff --git a/menu.c b/menu.c
index 5fa7f395c7ebfcc07e660867c0cbea14930c71b7..fd5cab68432b611cc49e2c6a05857cbc584c6810 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -1,7 +1,7 @@
 /* menu.c
  * Menu routines
  *
- * $Id: menu.c,v 1.20 1999/06/19 01:14:51 guy Exp $
+ * $Id: menu.c,v 1.21 1999/06/22 22:02:12 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -38,6 +38,7 @@
 #include "menu.h"
 #include "packet.h"
 #include "capture.h"
+#include "summary.h"
 #include "display.h"
 #include "prefs.h"
 #include "print.h"
@@ -102,6 +103,7 @@ static GtkItemFactoryEntry menu_items[] =
   {"/Tools/_Capture...", NULL, GTK_MENU_FUNC(capture_prep_cb), 0, NULL},
   {"/Tools/_Follow TCP Stream", NULL, GTK_MENU_FUNC(follow_stream_cb), 0, NULL},
   {"/Tools/Graph", NULL, NULL, 0, NULL},
+  {"/Tools/Summary", NULL, GTK_MENU_FUNC(summary_prep_cb), 0, NULL},
   {"/_Help", NULL, NULL, 0, "<LastBranch>" },
   {"/Help/_About Ethereal...", NULL, GTK_MENU_FUNC(about_ethereal), 0, NULL}
 };
@@ -136,6 +138,7 @@ static GtkMenuEntry menu_items[] =
   {"<Main>/Tools/Capture...", NULL, capture_prep_cb, NULL},
   {"<Main>/Tools/Follow TCP Stream", NULL, follow_stream_cb, NULL},
   {"<Main>/Tools/Graph", NULL, NULL, NULL},
+  {"<Main>/Tools/Summary", NULL, summary_prep_cb, NULL},
   {"<Main>/Help/About Ethereal...", NULL, about_ethereal, NULL}
 };
 #endif
@@ -207,6 +210,7 @@ menus_init(void) {
     set_menu_sensitivity("/Edit/Paste", FALSE);
     set_menu_sensitivity("/Edit/Find", FALSE);
     set_menu_sensitivity("/Tools/Graph", FALSE);
+    set_menu_sensitivity("/Tools/Summary", FALSE);
 #ifdef WITH_WIRETAP
     set_menu_sensitivity("/Tools/Follow TCP Stream", FALSE);
 #endif
@@ -227,6 +231,7 @@ menus_init(void) {
     set_menu_sensitivity("<Main>/Edit/Paste", FALSE);
     set_menu_sensitivity("<Main>/Edit/Find", FALSE);
     set_menu_sensitivity("<Main>/Tools/Graph", FALSE);
+    set_menu_sensitivity("<Main>/Tools/Summary", FALSE);
 #ifdef WITH_WIRETAP
     set_menu_sensitivity("<Main>/Tools/Follow TCP Stream", FALSE);
 #endif
diff --git a/summary.c b/summary.c
new file mode 100644 (file)
index 0000000..7429d75
--- /dev/null
+++ b/summary.c
@@ -0,0 +1,311 @@
+/* summary.c
+ * Routines for capture file summary window
+ *
+ * $Id: summary.c,v 1.1 1999/06/22 22:02:12 gram Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@zing.org>
+ * Copyright 1998 Gerald Combs
+ *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, 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
+
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#include <gtk/gtk.h>
+#include <pcap.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#ifdef NEED_SNPRINTF_H
+# ifdef HAVE_STDARG_H
+#  include <stdarg.h>
+# else
+#  include <varargs.h>
+# endif
+# include "snprintf.h"
+#endif
+
+#ifdef HAVE_SYS_SOCKIO_H
+# include <sys/sockio.h>
+#endif
+
+#include "ethereal.h"
+#include "packet.h"
+#include "file.h"
+#include "menu.h"
+#include "summary.h"
+#include "capture.h"
+#include "etypes.h"
+#include "util.h"
+#include "prefs.h"
+
+extern capture_file  cf;
+
+/* File selection data keys */
+#define E_SUM_PREP_FS_KEY "sum_prep_fs"
+#define E_SUM_PREP_TE_KEY "sum_prep_te"
+
+/* Summary callback data keys */
+#define E_SUM_IFACE_KEY "sum_iface"
+#define E_SUM_FILT_KEY  "sum_filter"
+#define E_SUM_COUNT_KEY "sum_count"
+#define E_SUM_OPEN_KEY  "sum_open"
+#define E_SUM_SNAP_KEY  "sum_snap"
+
+#define SUM_STR_MAX 1024
+
+/* Summary filter key */
+#define E_SUM_FILT_TE_KEY "sum_filt_te"
+
+char * string_for_format(guint16 cd_t){
+  switch (cd_t) {
+#ifdef WITH_WIRETAP
+  case WTAP_FILE_WTAP:
+    return "wiretap";
+  case WTAP_FILE_PCAP:
+    return "pcap";
+  case WTAP_FILE_LANALYZER:
+    return "LanAlyzer";
+  case WTAP_FILE_NGSNIFFER:
+    return "Sniffer";
+  case WTAP_FILE_SNOOP:
+    return "snoop";
+  case WTAP_FILE_IPTRACE:
+    return "iptrace";
+  case WTAP_FILE_NETMON:
+    return "Network Monitor";
+  case WTAP_FILE_NETXRAY:
+    return "NetXray/Sniffer Pro";
+#else
+  case CD_WIRE:
+    return "wiretap";
+  case CD_SNOOP:
+    return "snoop";
+  case CD_PCAP_BE:
+    return "pcap-be";
+  case CD_PCAP_LE:
+    return "pcap-le";
+  case CD_NA_UNCOMPR:
+    return "network-associates";
+#endif
+  default:
+    return "unknown";
+  }
+}
+
+double
+secs_usecs( guint32 s, guint32 us) {
+  return (us / 1000000.0) + (double)s;
+}
+
+void
+tally_frame_data(gpointer cf, gpointer st) {
+  double cur_time;
+  summary_tally * sum_tally = (summary_tally *)st;
+  frame_data *cur_frame = (frame_data *)cf;
+
+  cur_time = secs_usecs(cur_frame->abs_secs, cur_frame->abs_usecs);
+    if (cur_time < sum_tally->start_time) {
+      sum_tally->start_time = cur_time;
+    }
+    if (cur_time > sum_tally->stop_time){
+    sum_tally->stop_time = cur_time;
+  }
+  sum_tally->bytes += cur_frame->pkt_len;
+  sum_tally->count++;
+}
+
+void
+add_string_to_box(gchar *str, GtkWidget *box) {
+  GtkWidget *lb;
+  lb = gtk_label_new(str);
+  gtk_misc_set_alignment(GTK_MISC(lb), 0.0, 0.5);
+  gtk_box_pack_start(GTK_BOX(box), lb,FALSE,FALSE, 0);
+  gtk_widget_show(lb);
+}
+
+void
+summary_prep_cb(GtkWidget *w, gpointer d) {
+  frame_data    *first_frame, *cur_frame;
+  summary_tally *st;
+  GtkWidget     *sum_open_w,
+                *main_vb, *file_fr, *data_fr, *capture_fr, *file_box, 
+*data_box,
+                *capture_box;
+
+ gchar          string_buff[SUM_STR_MAX];
+
+ guint32        traffic_bytes, i;
+ double         seconds;
+ GList          *cur_glist;
+
+ /* initialize the tally */
+  first_frame = (frame_data *)(cf.plist->data);
+  st = (summary_tally *)g_malloc(sizeof(summary_tally));
+  st->start_time = secs_usecs(first_frame->abs_secs,first_frame->abs_usecs) 
+;
+  st->stop_time = secs_usecs(first_frame->abs_secs,first_frame->abs_usecs) 
+;
+  st->bytes = 0;
+  st->count = 0;
+  cur_glist = cf.plist;
+
+  for (i = 0; i < cf.count; i++){
+    cur_frame = (frame_data *)cur_glist->data;
+    tally_frame_data(cur_frame, st);
+    cur_glist = cur_glist->next;
+    }
+
+  /*  g_list_foreach(cf.plist_first, (GFunc)tally_frame_data, st); */
+
+  /* traffic_bytes will be computed here */
+  traffic_bytes = st->bytes;
+  seconds = st->stop_time - st->start_time;
+  sum_open_w = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_title(GTK_WINDOW(sum_open_w), "Ethereal: Summary");
+
+  /* Container for each row of widgets */
+  main_vb = gtk_vbox_new(FALSE, 3);
+  gtk_container_border_width(GTK_CONTAINER(main_vb), 5);
+  gtk_container_add(GTK_CONTAINER(sum_open_w), main_vb);
+  gtk_widget_show(main_vb);
+
+  /* File frame */
+  file_fr = gtk_frame_new("File");
+  gtk_container_add(GTK_CONTAINER(main_vb), file_fr);
+  gtk_widget_show(file_fr);
+
+  file_box = gtk_vbox_new(FALSE, 3);
+  gtk_container_add(GTK_CONTAINER(file_fr), file_box);
+  gtk_widget_show(file_box);
+
+  /* filename */
+  snprintf(string_buff, SUM_STR_MAX, "Name: %s", cf.filename);
+  add_string_to_box(string_buff, file_box);
+
+  /* length */
+  snprintf(string_buff, SUM_STR_MAX, "Length: %lu", cf.f_len);
+  add_string_to_box(string_buff, file_box);
+
+  /* format */
+  snprintf(string_buff, SUM_STR_MAX, "Format: %s", 
+string_for_format(cf.cd_t));
+  add_string_to_box(string_buff, file_box);
+
+  /* Data frame */
+  data_fr = gtk_frame_new("Data");
+  gtk_container_add(GTK_CONTAINER(main_vb), data_fr);
+  gtk_widget_show(data_fr);
+
+  data_box = gtk_vbox_new(FALSE, 3);
+  gtk_container_add(GTK_CONTAINER(data_fr), data_box);
+  gtk_widget_show(data_box);
+
+  /* seconds */
+  snprintf(string_buff, SUM_STR_MAX, "Elapsed time: %.3f seconds", 
+secs_usecs(cf.esec,cf.eusec));
+  add_string_to_box(string_buff, data_box);
+
+  snprintf(string_buff, SUM_STR_MAX, "Between first and last packet: %.3f 
+seconds", seconds);
+  add_string_to_box(string_buff, data_box);
+
+  /* Packet count */
+  snprintf(string_buff, SUM_STR_MAX, "Packet count: %i", cf.count);
+  add_string_to_box(string_buff, data_box);
+
+  /* Packets per second */
+  if (seconds > 0){
+    snprintf(string_buff, SUM_STR_MAX, "Avg. packets/sec: %.3f", 
+cf.count/seconds);
+    add_string_to_box(string_buff, data_box);
+  }
+
+  /* Dropped count */
+  snprintf(string_buff, SUM_STR_MAX, "Dropped packets: %i", cf.drops);
+  add_string_to_box(string_buff, data_box);
+
+  /* Byte count */
+  snprintf(string_buff, SUM_STR_MAX, "Bytes of traffic: %d", 
+traffic_bytes);
+  add_string_to_box(string_buff, data_box);
+
+  /* Bytes per second */
+  if (seconds > 0){
+    snprintf(string_buff, SUM_STR_MAX, "Avg. bytes/sec: %.3f", 
+traffic_bytes/seconds);
+    add_string_to_box(string_buff, data_box);
+  }
+
+  /* Capture frame */
+  capture_fr = gtk_frame_new("Capture");
+  gtk_container_add(GTK_CONTAINER(main_vb), capture_fr);
+  gtk_widget_show(capture_fr);
+
+  capture_box = gtk_vbox_new(FALSE, 3);
+  gtk_container_add(GTK_CONTAINER(capture_fr), capture_box);
+  gtk_widget_show(capture_box);
+
+
+  /* interface */
+  if (cf.iface) {
+    snprintf(string_buff, SUM_STR_MAX, "Interface: %s", cf.iface);
+  } else {
+    sprintf(string_buff, "Interface: unknown");
+  }
+  add_string_to_box(string_buff, capture_box);
+
+  /* Display filter */
+  if (cf.dfilter) {
+    snprintf(string_buff, SUM_STR_MAX, "Display filter: %s", cf.dfilter);
+  } else {
+    sprintf(string_buff, "Display filter: none");
+  }
+  add_string_to_box(string_buff, capture_box);
+
+
+  /* Capture filter */
+  if (cf.cfilter) {
+    snprintf(string_buff, SUM_STR_MAX, "Capture filter: %s", cf.cfilter);
+  } else {
+    sprintf(string_buff, "Capture filter: none");
+  }
+  add_string_to_box(string_buff, capture_box);
+  gtk_window_set_position(GTK_WINDOW(sum_open_w), GTK_WIN_POS_MOUSE);
+  gtk_widget_show(sum_open_w);
+}
+
+
+void
+summary_prep_close_cb(GtkWidget *w, gpointer win) {
+
+#ifdef GTK_HAVE_FEATURES_1_1_0
+  win = w;
+#endif
+  gtk_grab_remove(GTK_WIDGET(win));
+  gtk_widget_destroy(GTK_WIDGET(win));
+}
diff --git a/summary.h b/summary.h
new file mode 100644 (file)
index 0000000..8e6ffba
--- /dev/null
+++ b/summary.h
@@ -0,0 +1,46 @@
+/* summary.h
+ * Definitions for capture file summary windows
+ *
+ * $Id: summary.h,v 1.1 1999/06/22 22:02:12 gram Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@zing.org>
+ * Copyright 1998 Gerald Combs
+ *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifndef __SUMMARY_H__
+#define __SUMMARY_H__
+
+typedef struct _summary_tally {
+    guint32  bytes;
+    double  start_time;
+    double  stop_time;
+    guint32  count;
+} summary_tally;
+
+
+
+void   summary_prep_cb(GtkWidget *, gpointer);
+void   summary_prep_close_cb(GtkWidget *, gpointer);
+
+#endif /* summary.h */
+
+
+
+
+
index 4ae27a3df1794d397fdbf6a426c8034dbd8fd230..4486b95254be242af966a3343b6aa3b16c83ba6e 100644 (file)
@@ -6,11 +6,14 @@
 /* Define if lex declares yytext as a char * by default, not a char[].  */
 #undef YYTEXT_POINTER
 
-#undef PACKAGE
-
-#undef VERSION
-
 #undef HAVE_GLIB10
 
 /* Define if you have the <unistd.h> header file.  */
 #undef HAVE_UNISTD_H
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+