Browse Source

Import upstream version 2.99+3.0.beta9

Aaron Turner 18 years ago
parent
commit
a742c684d3
100 changed files with 19024 additions and 13948 deletions
  1. BIN
      ._Makefile.am
  2. 16 3
      Makefile.am
  3. 21 11
      Makefile.in
  4. 44 1
      README
  5. 799 438
      aclocal.m4
  6. 13706 10431
      configure
  7. 41 11
      configure.in
  8. 22 1
      docs/CHANGELOG
  9. 5 2
      docs/CREDIT
  10. 631 281
      docs/FAQ.lyx
  11. BIN
      docs/FAQ.pdf
  12. 3 2
      docs/HACKING
  13. 1 1
      docs/INSTALL
  14. 5 2
      docs/LICENSE
  15. 5 5
      docs/Makefile.am
  16. 7 6
      docs/Makefile.in
  17. 93 51
      docs/TODO
  18. BIN
      docs/flowreplay.pdf
  19. 1030 643
      docs/manual.lyx
  20. 366 488
      docs/manual.pdf
  21. 26 25
      docs/web/FAQ/FAQ.html
  22. 26 25
      docs/web/FAQ/index.html
  23. 2 2
      docs/web/FAQ/labels.pl
  24. 62 60
      docs/web/FAQ/node1.html
  25. 49 47
      docs/web/FAQ/node2.html
  26. 32 29
      docs/web/FAQ/node3.html
  27. 27 27
      docs/web/FAQ/node4.html
  28. 34 48
      docs/web/FAQ/node5.html
  29. 50 25
      docs/web/FAQ/node6.html
  30. 101 92
      docs/web/FAQ/node7.html
  31. 97 89
      docs/web/FAQ/node8.html
  32. 169 0
      docs/web/FAQ/node9.html
  33. 123 123
      docs/web/flowreplay/flowreplay.css
  34. 21 21
      docs/web/flowreplay/flowreplay.html
  35. 32 32
      docs/web/flowreplay/images.log
  36. 3 3
      docs/web/flowreplay/images.pl
  37. 12 12
      docs/web/flowreplay/images.tex
  38. BIN
      docs/web/flowreplay/img1.old
  39. BIN
      docs/web/flowreplay/img1.png
  40. 21 21
      docs/web/flowreplay/index.html
  41. 2 2
      docs/web/flowreplay/labels.pl
  42. 9 9
      docs/web/flowreplay/node1.html
  43. 23 23
      docs/web/flowreplay/node2.html
  44. 34 34
      docs/web/flowreplay/node3.html
  45. 51 51
      docs/web/flowreplay/node4.html
  46. 18 16
      docs/web/flowreplay/node5.html
  47. 36 36
      docs/web/flowreplay/node6.html
  48. 20 6
      docs/web/index.html
  49. 5 0
      docs/web/man/flowreplay.html
  50. 0 0
      docs/web/man/tcpbridge.html
  51. 35 4
      docs/web/man/tcpprep.html
  52. 11 0
      docs/web/man/tcpreplay.html
  53. 73 38
      docs/web/man/tcprewrite.html
  54. 0 1
      docs/web/manual/WARNINGS
  55. 36 34
      docs/web/manual/images.log
  56. 4 5
      docs/web/manual/images.pl
  57. 10 11
      docs/web/manual/images.tex
  58. BIN
      docs/web/manual/img1.old
  59. BIN
      docs/web/manual/img1.png
  60. 39 31
      docs/web/manual/index.html
  61. 2 2
      docs/web/manual/labels.pl
  62. 39 31
      docs/web/manual/manual.html
  63. 9 3
      docs/web/manual/node1.html
  64. BIN
      docs/web/manual/router-mode3.png
  65. 1 1
      doxygen.cfg.in
  66. 2 3
      lib/Makefile.in
  67. BIN
      libopts/._README
  68. 11 13
      libopts/COPYING.lgpl
  69. 0 5
      libopts/MakeDefs.inc
  70. 15 13
      libopts/Makefile.am
  71. 27 19
      libopts/Makefile.in
  72. 16 12
      libopts/README
  73. 16 6
      libopts/autoopts.c
  74. 18 34
      libopts/autoopts.h
  75. 99 55
      libopts/autoopts/options.h
  76. 5 5
      libopts/autoopts/usage-txt.h
  77. 5 4
      libopts/boolean.c
  78. 62 23
      libopts/compat/compat.h
  79. 2 4
      libopts/compat/pathfind.c
  80. 36 0
      libopts/compat/snprintf.c
  81. 19 0
      libopts/compat/strdup.c
  82. 9 14
      libopts/configfile.c
  83. 5 5
      libopts/cook.c
  84. 47 11
      libopts/enumeration.c
  85. 6 6
      libopts/environment.c
  86. 10 9
      libopts/genshell.c
  87. 28 9
      libopts/genshell.h
  88. 2 1
      libopts/libopts.c
  89. 149 99
      libopts/load.c
  90. 215 122
      libopts/libopts.m4
  91. 39 0
      libopts/m4/liboptschk.m4
  92. 6 6
      libopts/makeshell.c
  93. 5 7
      libopts/nested.c
  94. 4 4
      libopts/numeric.c
  95. 9 9
      libopts/pgusage.c
  96. 3 39
      libopts/proto.h
  97. 7 7
      libopts/putshell.c
  98. 4 4
      libopts/restore.c
  99. 4 4
      libopts/save.c
  100. 0 0
      libopts/sort.c

BIN
._Makefile.am


+ 16 - 3
Makefile.am

@@ -1,13 +1,20 @@
+# $Id$
 AUTOMAKE_OPTIONS = foreign
 AUTOMAKE_OPTIONS = foreign
 
 
-include $(top_srcdir)/libopts/MakeDefs.inc
-
+if NEED_LIBOPTS
 SUBDIRS = scripts lib $(LIBOPTS_DIR) src
 SUBDIRS = scripts lib $(LIBOPTS_DIR) src
+else
+SUBDIRS = scripts lib src
+endif
+
 DIST_SUBDIRS = scripts lib libopts src docs test
 DIST_SUBDIRS = scripts lib libopts src docs test
 .PHONY: manpages docs test man2html
 .PHONY: manpages docs test man2html
 
 
-dist-hook: version manpages
 
 
+dist-hook: version manpages update
+
+update:
+	svn update
 
 
 DOCS_DIR = $(top_builddir)/docs
 DOCS_DIR = $(top_builddir)/docs
 
 
@@ -32,6 +39,9 @@ manpages: man2html
 
 
 TEST_DIR = $(top_builddir)/test
 TEST_DIR = $(top_builddir)/test
 
 
+autoopts:
+	cd src && make autoopts
+
 test:
 test:
 	echo Making test in $(TEST_DIR)
 	echo Making test in $(TEST_DIR)
 	cd $(TEST_DIR) && make test
 	cd $(TEST_DIR) && make test
@@ -49,6 +59,9 @@ distclean-local:
 doxygen: version
 doxygen: version
 	doxygen doxygen.cfg
 	doxygen doxygen.cfg
 
 
+ncc:
+	CC=ncc make
+
 MOSTLYCLEANFILES = tcpreplay.spec *~
 MOSTLYCLEANFILES = tcpreplay.spec *~
 
 
 DISTCLEANFILES = .tm_project.cache stamp-h1 *.tar.*
 DISTCLEANFILES = .tm_project.cache stamp-h1 *.tar.*

+ 21 - 11
Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 # @configure_input@
 
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -39,10 +39,9 @@ target_triplet = @target@
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/doxygen.cfg.in \
 	$(srcdir)/Makefile.in $(srcdir)/doxygen.cfg.in \
 	$(srcdir)/tcpreplay.spec.in $(top_srcdir)/configure \
 	$(srcdir)/tcpreplay.spec.in $(top_srcdir)/configure \
-	$(top_srcdir)/libopts/MakeDefs.inc config/compile \
-	config/config.guess config/config.sub config/depcomp \
-	config/install-sh config/ltmain.sh config/missing \
-	config/mkinstalldirs
+	config/compile config/config.guess config/config.sub \
+	config/depcomp config/install-sh config/ltmain.sh \
+	config/missing config/mkinstalldirs
 subdir = .
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.in
 am__aclocal_m4_deps = $(top_srcdir)/configure.in
@@ -119,6 +118,7 @@ LATEX2HTML = @LATEX2HTML@
 LDFLAGS = @LDFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
+LIBOPTS_DIR = @LIBOPTS_DIR@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBS = @LIBS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBTOOL = @LIBTOOL@
@@ -211,10 +211,11 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_os = @target_os@
 target_vendor = @target_vendor@
 target_vendor = @target_vendor@
 td = @td@
 td = @td@
+
+# $Id$
 AUTOMAKE_OPTIONS = foreign
 AUTOMAKE_OPTIONS = foreign
-@NEED_LIBOPTS_FALSE@LIBOPTS_DIR = 
-@NEED_LIBOPTS_TRUE@LIBOPTS_DIR = libopts
-SUBDIRS = scripts lib $(LIBOPTS_DIR) src
+@NEED_LIBOPTS_FALSE@SUBDIRS = scripts lib src
+@NEED_LIBOPTS_TRUE@SUBDIRS = scripts lib $(LIBOPTS_DIR) src
 DIST_SUBDIRS = scripts lib libopts src docs test
 DIST_SUBDIRS = scripts lib libopts src docs test
 DOCS_DIR = $(top_builddir)/docs
 DOCS_DIR = $(top_builddir)/docs
 TEST_DIR = $(top_builddir)/test
 TEST_DIR = $(top_builddir)/test
@@ -227,7 +228,7 @@ all: all-recursive
 .SUFFIXES:
 .SUFFIXES:
 am--refresh:
 am--refresh:
 	@:
 	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/libopts/MakeDefs.inc $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
 	    *$$dep*) \
@@ -408,7 +409,7 @@ distclean-tags:
 distdir: $(DISTFILES)
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
 	$(am__remove_distdir)
 	mkdir $(distdir)
 	mkdir $(distdir)
-	$(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/libopts $(distdir)/src $(distdir)/test
+	$(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/src $(distdir)/test
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
 	list='$(DISTFILES)'; for file in $$list; do \
 	list='$(DISTFILES)'; for file in $$list; do \
@@ -651,7 +652,10 @@ uninstall-info: uninstall-info-recursive
 
 
 .PHONY: manpages docs test man2html
 .PHONY: manpages docs test man2html
 
 
-dist-hook: version manpages
+dist-hook: version manpages update
+
+update:
+	svn update
 
 
 man2html:
 man2html:
 	cd scripts && make man2html
 	cd scripts && make man2html
@@ -672,6 +676,9 @@ postwebsf: manpages doxygen
 manpages: man2html
 manpages: man2html
 	cd src && make manpages
 	cd src && make manpages
 
 
+autoopts:
+	cd src && make autoopts
+
 test:
 test:
 	echo Making test in $(TEST_DIR)
 	echo Making test in $(TEST_DIR)
 	cd $(TEST_DIR) && make test
 	cd $(TEST_DIR) && make test
@@ -688,6 +695,9 @@ distclean-local:
 
 
 doxygen: version
 doxygen: version
 	doxygen doxygen.cfg
 	doxygen doxygen.cfg
+
+ncc:
+	CC=ncc make
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
 .NOEXPORT:

+ 44 - 1
README

@@ -1 +1,44 @@
-All the documentation, licensing information, etc is now in the docs directory
+$Id: README 1476 2006-07-07 04:53:44Z aturner $
+[Please note that licensing, compiling, usage and other documentation can be 
+found in the docs subdirectory.]
+
+If you have a question or think you are experiancing a bug, it is important
+that you provide enough information for us to help you.  Failure to provide
+enough information will likely cause your email to be ignored or get an
+annoyed reply from the author.
+
+If your problem has to do with COMPILING tcpreplay:
+- Version of tcpreplay you are trying to compile
+- Platform (Red Hat Linux 9 on x86, Solaris 7 on SPARC, OS X on PPC, etc)
+- ./configure arguments
+- Contents of config.log
+- Output from 'make'
+- Any additional information you think that would be useful.
+
+If your problem has to do with RUNNING tcpreplay or one of the sub-tools:
+- Version information (output of -V)
+- Command line used (options and arguments)
+- Platform (Red Hat Linux 9 on Intel, Solaris 7 on SPARC, etc)
+- Make & model of the network card(s) and driver(s)
+- Error message (if available) and/or description of problem
+- If possible, attach the pcap file used (compressed with bzip2 or gzip
+    preferred)
+- The core dump or backtrace if available
+- Detailed description of your problem or what you are trying to accomplish
+
+Note: The author of tcpreplay primarily uses OS X; hence, if you're reporting
+an issue on another platform, it is important that you give very detailed
+information as I may not be able to reproduce your issue.
+
+You are also strongly encouraged to read the extensive documentation (man
+pages, FAQ, documents in /docs and email list archives) BEFORE posting to the
+tcpreplay-users email list:
+
+http://lists.sourceforge.net/lists/listinfo/tcpreplay-users
+
+Lastly, please don't email the author directly with your questions.  Doing so
+prevents others from potentially helping you and your question/answer from
+showing up in the list archives.
+
+Thanks,
+Aaron (tcpreplay author)

File diff suppressed because it is too large
+ 799 - 438
aclocal.m4


File diff suppressed because it is too large
+ 13706 - 10431
configure


+ 41 - 11
configure.in

@@ -1,5 +1,5 @@
 
 
-dnl $Id: configure.in 1380 2005-06-30 05:54:26Z aturner $
+dnl $Id: configure.in 1519 2006-07-18 02:51:09Z aturner $
 
 
 AC_INIT(tcpreplay)
 AC_INIT(tcpreplay)
 AC_CONFIG_SRCDIR(src/tcpreplay.c)
 AC_CONFIG_SRCDIR(src/tcpreplay.c)
@@ -12,7 +12,7 @@ AC_PROG_LIBTOOL
 dnl Set version info here!
 dnl Set version info here!
 MAJOR_VERSION=3
 MAJOR_VERSION=3
 MINOR_VERSION=0
 MINOR_VERSION=0
-MICRO_VERSION=beta7
+MICRO_VERSION=beta9
 TCPREPLAY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
 TCPREPLAY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
 
 
 dnl Release is only used for the RPM spec file
 dnl Release is only used for the RPM spec file
@@ -23,7 +23,7 @@ AC_DEFINE_UNQUOTED(VERSION, "$TCPREPLAY_VERSION", [What is our version?])
 AC_SUBST(TCPREPLAY_VERSION)
 AC_SUBST(TCPREPLAY_VERSION)
 AC_SUBST(TCPREPLAY_RELEASE)
 AC_SUBST(TCPREPLAY_RELEASE)
 
 
-CFLAGS="$CFLAGS -Wall -O2 -funroll-loops" # -std=c99 -Wno-variadic-macros"
+CFLAGS="$CFLAGS -Wall -O2 -funroll-loops -std=gnu99" # -std=c99 -Wno-variadic-macros"
 
 
 dnl Determine OS
 dnl Determine OS
 AC_CANONICAL_BUILD
 AC_CANONICAL_BUILD
@@ -136,19 +136,23 @@ if test -n "$FIG2DEV" -a -n "$LYX" -a -n "$DVIPS" -a -n "$TEXI2DVI" \
 fi
 fi
 AM_CONDITIONAL(HAVE_DOCTOOLS, test $doctools = yes)
 AM_CONDITIONAL(HAVE_DOCTOOLS, test $doctools = yes)
 
 
-
-
 dnl Enable debugging in code/compiler options
 dnl Enable debugging in code/compiler options
 debug=no
 debug=no
 AC_ARG_ENABLE(debug,
 AC_ARG_ENABLE(debug,
     AC_HELP_STRING([--enable-debug], [Enable debugging code and support for the -d option]),
     AC_HELP_STRING([--enable-debug], [Enable debugging code and support for the -d option]),
     [ if test x$enableval = xyes; then
     [ if test x$enableval = xyes; then
          debug=yes
          debug=yes
-         CFLAGS="-ggdb -Wall -pedantic"
+         CFLAGS="-ggdb -std=gnu99 -Wall -Wextra -Wfatal-errors -Wno-variadic-macros"
+#         -Wformat-security -Wswitch-default -Wunused-paramter -Wpadded"
          AC_SUBST(debug_flag)
          AC_SUBST(debug_flag)
          AC_DEFINE([DEBUG], [], [Enable debuggin code and support for the -d option]) 
          AC_DEFINE([DEBUG], [], [Enable debuggin code and support for the -d option]) 
       fi])
       fi])
 
 
+AC_ARG_ENABLE(pedantic,
+    AC_HELP_STRING([--enable-pedantic], [Enable gcc's -pedantic option]),
+    [ if test x$enableval = xyes; then
+        CFLAGS="$CFLAGS -pedantic"
+      fi ])
 
 
 dnl Enable Efense
 dnl Enable Efense
 AC_ARG_ENABLE(efence,
 AC_ARG_ENABLE(efence,
@@ -192,21 +196,39 @@ AC_ARG_ENABLE(dynamic-link,
       fi
       fi
     ])
     ])
 
 
-dnl Check for inet_aton and inet_addr
+dnl Check for inet_aton and inet_pton
 AC_CHECK_FUNC(inet_aton, 
 AC_CHECK_FUNC(inet_aton, 
-    AC_DEFINE([INET_ATON], [], [Do we have inet_aton?]) 
+    AC_DEFINE([HAVE_INET_ATON], [], [Do we have inet_aton?]) 
     inet_aton=yes, 
     inet_aton=yes, 
     inet_aton=no)
     inet_aton=no)
+AC_CHECK_FUNC(inet_pton, 
+    AC_DEFINE([HAVE_INET_PTON], [], [Do we have inet_pton?]) 
+    inet_pton=yes, 
+    inet_pton=no)
+AC_CHECK_FUNC(inet_ntop, 
+    AC_DEFINE([HAVE_INET_NTOP], [], [Do we have inet_ntop?]) 
+    inet_ntop=yes, 
+    inet_ntop=no)
+
+if test "$inet_ntop" = "no" -a "$inet_pton" = "no" ; then
+	AC_MSG_ERROR([We need either inet_ntop or inet_pton])
+fi
+
+if test "$inet_aton" = "no" ; then
+    AC_MSG_ERROR([We need inet_aton])
+fi
+
 AC_CHECK_FUNC(inet_addr, 
 AC_CHECK_FUNC(inet_addr, 
-    AC_DEFINE([INET_ADDR], [], [Do we have inet_addr?]) 
+    AC_DEFINE([HAVE_INET_ADDR], [], [Do we have inet_addr?]) 
     inet_addr=yes, 
     inet_addr=yes, 
     inet_addr=no)
     inet_addr=no)
 
 
-if test $inet_aton = no -a $inet_addr = no ; then
-	AC_MSG_ERROR("We need either inet_aton or inet_addr")
+if test x$inet_addr = no ; then
+    AC_MSG_ERROR([We need inet_addr.  See bug 26])
 fi
 fi
 
 
 
 
+
 dnl ##################################################
 dnl ##################################################
 dnl Checks for libnet (shamelessly horked from dsniff)
 dnl Checks for libnet (shamelessly horked from dsniff)
 dnl ##################################################
 dnl ##################################################
@@ -746,8 +768,16 @@ AC_OUTPUT([Makefile
            docs/Makefile
            docs/Makefile
            src/Makefile
            src/Makefile
            src/common/Makefile
            src/common/Makefile
+           src/tcpedit/Makefile
+           src/flow/Makefile
            src/defines.h
            src/defines.h
            test/Makefile
            test/Makefile
            test/config
            test/config
            scripts/Makefile
            scripts/Makefile
            tcpreplay.spec])
            tcpreplay.spec])
+
+if test $doctools = no; then
+    AC_MSG_NOTICE([One or more tool for creating documentation is unavailable.])
+    AC_MSG_NOTICE([This is only an issue for developers, so don't worry.])
+fi
+

+ 22 - 1
docs/CHANGELOG

@@ -1,4 +1,25 @@
-$Id: CHANGELOG 1400 2005-08-07 16:38:46Z aturner $
+$Id: CHANGELOG 1519 2006-07-18 02:51:09Z aturner $
+
+07/17/2006: Version 3.0.beta9
+    - Fix compile issue for users not having AutoOpts installed #54
+    - Fix compile issue for users w/ AutoOpts 5.8.4 (upgrade to 5.8.4)
+
+07/16/2006: Version 3.0.beta8
+    - Fix -M running in MBps rather then Mbps
+    - Fix tcpbridge segfault/bus error reported by Steven Z. (Gerry)
+    - Improve tcpbridge man page
+    - Massive tcprewrite fixes & cleanup #50
+    - Much improved README document
+    - Reorganize packet editing code into a standalone module (tcpedit) 
+          which has been librarized. #5
+    - Strict code cleanup #27
+    - Fix tcpprep from generating bad cache files #48
+    - Add MAC split mode for tcpprep #1
+    - Improve dbg() to list file/line #32
+    - Add tcpprep statistical reports #2
+    - Reorganize flowreplay code #46
+    - Fix conflicting speed_t for Debian #33
+    - Too many other things to document
 
 
 08/07/2005: Version 3.0.beta7
 08/07/2005: Version 3.0.beta7
     - New 'make doxygen' target builds pretty source code docs in
     - New 'make doxygen' target builds pretty source code docs in

+ 5 - 2
docs/CREDIT

@@ -1,7 +1,10 @@
-$Id: CREDIT 1164 2005-02-27 00:44:16Z aturner $ 
+$Id: CREDIT 1469 2006-06-09 06:48:46Z aturner $ 
 
 
 tcpreplay and it's associated utilities (tcpprep, tcprewrite and flowreplay)
 tcpreplay and it's associated utilities (tcpprep, tcprewrite and flowreplay)
-were designed and written by Aaron Turner <aturner@pobox.com>.
+were designed and written by Aaron Turner.
+
+This product includes software developed by the University of California,
+Berkeley and its contributors. 
 
 
 The following is a list of people in no particular order who have kindly
 The following is a list of people in no particular order who have kindly
 submitted patches or code snippets for me to use in tcpreplay.
 submitted patches or code snippets for me to use in tcpreplay.

File diff suppressed because it is too large
+ 631 - 281
docs/FAQ.lyx


BIN
docs/FAQ.pdf


+ 3 - 2
docs/HACKING

@@ -1,4 +1,4 @@
-$Id: HACKING 1348 2005-06-13 06:22:17Z aturner $
+$Id: HACKING 1470 2006-06-09 06:50:42Z aturner $
 
 
                           Guide to Hacking Tcpreplay
                           Guide to Hacking Tcpreplay
 
 
@@ -13,7 +13,7 @@ If you contribute code the following will happen:
     c) You will be assigning your copyright to me
     c) You will be assigning your copyright to me
 
 
 If you have any questions regarding any of the three above stipulations,
 If you have any questions regarding any of the three above stipulations,
-feel free to email me: aturner@pobox.com
+feel free to email the list at: tcpreplay-users@lists.sourceforge.net
 
 
 
 
 1. Introduction
 1. Introduction
@@ -32,6 +32,7 @@ The file layout is pretty simple:
 /libopts    - GNU AutoOpts code
 /libopts    - GNU AutoOpts code
 /src        - Main code routines
 /src        - Main code routines
 /src/common - Common routines for all binaries
 /src/common - Common routines for all binaries
+/src/tcpedit - libtcpedit
 /docs       - Where to find documentation
 /docs       - Where to find documentation
 /test       - Test scripts and stuff which is used during 'make test'
 /test       - Test scripts and stuff which is used during 'make test'
 /man        - Unix man pages which get copied to $MANPATH
 /man        - Unix man pages which get copied to $MANPATH

+ 1 - 1
docs/INSTALL

@@ -1,4 +1,4 @@
-$Id: INSTALL 1389 2005-07-03 19:34:12Z aturner $
+$Id: INSTALL 1464 2006-04-13 05:27:17Z aturner $
 
 
 You'll need:
 You'll need:
 
 

+ 5 - 2
docs/LICENSE

@@ -1,5 +1,4 @@
-Copyright (c) 2001-2005 Aaron Turner <aturner@pobox.com>.
-All rights reserved.
+Copyright (c) 2001-2006 Aaron Turner.  All rights reserved.
 
 
 Redistribution and use in source and binary forms, with or without
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 modification, are permitted provided that the following conditions
@@ -25,3 +24,7 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+This product includes software developed by the University of California,
+Berkeley and its contributors. 
+

+ 5 - 5
docs/Makefile.am

@@ -59,17 +59,17 @@ web/man/tcpbridge.html:
 	$(MAN2HTML) < ../src/tcpbridge.1 > web/man/tcpbridge.html
 	$(MAN2HTML) < ../src/tcpbridge.1 > web/man/tcpbridge.html
 
 
 manpages: web/man/tcpreplay.html web/man/tcpprep.html web/man/flowreplay.html \
 manpages: web/man/tcpreplay.html web/man/tcpprep.html web/man/flowreplay.html \
-	web/man/tcprewrite.html web/man/tcpbridge.html
+	web/man/tcprewrite.html web/man/tcpbridge.html 
 
 
 postweb: webfiles manpages
 postweb: webfiles manpages
 	rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
 	rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
-		-avz web/ aturner@tequila.synfin.net:/var/www-vhosts/tcpreplay/
-	scp CHANGELOG aturner@tequila.synfin.net:/var/www-vhosts/tcpreplay/
+		-avz web/ aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
+	scp CHANGELOG TODO aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
 
 
 postwebsf: webfiles manpages
 postwebsf: webfiles manpages
 	-rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
 	-rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
 		-avz web/ aturner@shell.sf.net:htdocs/
 		-avz web/ aturner@shell.sf.net:htdocs/
-	scp CHANGELOG aturner@shell.sf.net:htdocs/
+	scp CHANGELOG TODO aturner@shell.sf.net:htdocs/
 
 
 endif
 endif
 
 
@@ -78,7 +78,7 @@ EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE TODO \
 	flowreplay.lyx flowreplay.pdf web/flowreplay/flowreplay.html web/flowreplay \
 	flowreplay.lyx flowreplay.pdf web/flowreplay/flowreplay.html web/flowreplay \
 	flowheader.fig router-mode1.fig router-mode2.fig router-mode3.fig \
 	flowheader.fig router-mode1.fig router-mode2.fig router-mode3.fig \
 	manual.lyx manual.pdf web/manual/manual.html web/manual \
 	manual.lyx manual.pdf web/manual/manual.html web/manual \
-	web/index.html web/web.css \
+	web/index.html web/web.css web/man/tcpbridge.html \
 	web/man/tcpreplay.html  web/man/tcpprep.html web/man/flowreplay.html \
 	web/man/tcpreplay.html  web/man/tcpprep.html web/man/flowreplay.html \
 	web/man/tcprewrite.html web/tcpreplay-2-faq.html web/tcpreplay-2-faq.css
 	web/man/tcprewrite.html web/tcpreplay-2-faq.html web/tcpreplay-2-faq.css
 
 

+ 7 - 6
docs/Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 # @configure_input@
 
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -93,6 +93,7 @@ LATEX2HTML = @LATEX2HTML@
 LDFLAGS = @LDFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
+LIBOPTS_DIR = @LIBOPTS_DIR@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBS = @LIBS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBTOOL = @LIBTOOL@
@@ -195,7 +196,7 @@ EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE TODO \
 	flowreplay.lyx flowreplay.pdf web/flowreplay/flowreplay.html web/flowreplay \
 	flowreplay.lyx flowreplay.pdf web/flowreplay/flowreplay.html web/flowreplay \
 	flowheader.fig router-mode1.fig router-mode2.fig router-mode3.fig \
 	flowheader.fig router-mode1.fig router-mode2.fig router-mode3.fig \
 	manual.lyx manual.pdf web/manual/manual.html web/manual \
 	manual.lyx manual.pdf web/manual/manual.html web/manual \
-	web/index.html web/web.css \
+	web/index.html web/web.css web/man/tcpbridge.html \
 	web/man/tcpreplay.html  web/man/tcpprep.html web/man/flowreplay.html \
 	web/man/tcpreplay.html  web/man/tcpprep.html web/man/flowreplay.html \
 	web/man/tcprewrite.html web/tcpreplay-2-faq.html web/tcpreplay-2-faq.css
 	web/man/tcprewrite.html web/tcpreplay-2-faq.html web/tcpreplay-2-faq.css
 
 
@@ -425,17 +426,17 @@ uninstall-am: uninstall-info-am
 @HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/tcpbridge.1 > web/man/tcpbridge.html
 @HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/tcpbridge.1 > web/man/tcpbridge.html
 
 
 @HAVE_DOCTOOLS_TRUE@manpages: web/man/tcpreplay.html web/man/tcpprep.html web/man/flowreplay.html \
 @HAVE_DOCTOOLS_TRUE@manpages: web/man/tcpreplay.html web/man/tcpprep.html web/man/flowreplay.html \
-@HAVE_DOCTOOLS_TRUE@	web/man/tcprewrite.html web/man/tcpbridge.html
+@HAVE_DOCTOOLS_TRUE@	web/man/tcprewrite.html web/man/tcpbridge.html 
 
 
 @HAVE_DOCTOOLS_TRUE@postweb: webfiles manpages
 @HAVE_DOCTOOLS_TRUE@postweb: webfiles manpages
 @HAVE_DOCTOOLS_TRUE@	rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
 @HAVE_DOCTOOLS_TRUE@	rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
-@HAVE_DOCTOOLS_TRUE@		-avz web/ aturner@tequila.synfin.net:/var/www-vhosts/tcpreplay/
-@HAVE_DOCTOOLS_TRUE@	scp CHANGELOG aturner@tequila.synfin.net:/var/www-vhosts/tcpreplay/
+@HAVE_DOCTOOLS_TRUE@		-avz web/ aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
+@HAVE_DOCTOOLS_TRUE@	scp CHANGELOG TODO aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
 
 
 @HAVE_DOCTOOLS_TRUE@postwebsf: webfiles manpages
 @HAVE_DOCTOOLS_TRUE@postwebsf: webfiles manpages
 @HAVE_DOCTOOLS_TRUE@	-rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
 @HAVE_DOCTOOLS_TRUE@	-rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
 @HAVE_DOCTOOLS_TRUE@		-avz web/ aturner@shell.sf.net:htdocs/
 @HAVE_DOCTOOLS_TRUE@		-avz web/ aturner@shell.sf.net:htdocs/
-@HAVE_DOCTOOLS_TRUE@	scp CHANGELOG aturner@shell.sf.net:htdocs/
+@HAVE_DOCTOOLS_TRUE@	scp CHANGELOG TODO aturner@shell.sf.net:htdocs/
 
 
 clean-docs: clean
 clean-docs: clean
 	-rm -rf *.pdf web/manual web/FAQ web/flowreplay web/man/*
 	-rm -rf *.pdf web/manual web/FAQ web/flowreplay web/man/*

+ 93 - 51
docs/TODO

@@ -10,6 +10,66 @@ Legend:
     . = Canceled
     . = Canceled
     ? = To think about
     ? = To think about
 
 
+GENERAL:
+
++ Improve config file format
+  + better variable names
+  + use "var: value" format
+  + have tcpreplay, tcpprep, tcprewrite sections
+  + Being solved using GNU AutoOpts
+
++ Improve autoconf detection of libraries
+
++ Re-organize source tree
+
+O tcpdump decoder should print packets syncronously w/ the main process
+
++ Better use of GNU Autotools
+
++ Improve CLI/config file parsing
+- Only tcpreplay/tcpbridge should need to run as root.
+
+- Tcpreplay should use raw sockets or BPF directly for writing rather then
+      libnet where applicable for theoretically higher performance.
+
+- Detect system version of libopts b/c we need a recent version
+
+- Generalize packet editing and printing code so it can be shipped as a 
+  seperate library and plugged into tcpreplay/tcprewrite/flowreplay/etc
+
+- See about removing libnet_init() from all binaries other then tcprewrite
+  so we don't have to run as root:
+  . libnet_addr2name4 (ignore, doesn't require libnet_t context)
+  + libnet_name2addr4
+  - libnet_get_hwaddr
+  - libnet_do_checksum
+
+TCPREPLAY:
+
+. Add support for dual-nic send on one intf, wait for packet, send next.
+  would be really useful for testing the effectiveness of how well an IPS
+  detects and blocks attacks. (TP's tomahawk does this even better then
+  described here, so why re-invent the wheel?)
+
+- Rewrite do_sleep() to handle sub sleep times by only nanosleep()'ing
+  once for multiple packets when the timestamps are close enough.  We
+  also need to time nanosleep, since different architectures have lower
+  minimum sleep times (Linux/Alpha is 1ms vs. 10ms for Linux/x86)
+
++ Tcpreplay should say which interface each packet is going out
+
+TCPBRIDGE:
+
+- Duplicate all tcprewrite functionality
+
+TCPREWRITE:
+
+- Support fragrouter like features 
+    - basic IP fragmenation
+    - TCP fudging 
+    - then more advanced stuff
+    - Can we integrate FR's code?
+
 + Look at VLAN (802.1q) packets
 + Look at VLAN (802.1q) packets
     - others non-vanilla types?
     - others non-vanilla types?
     + Add tags?  Remove tags?  Change tags?
     + Add tags?  Remove tags?  Change tags?
@@ -48,74 +108,56 @@ Legend:
         (client/server)
         (client/server)
   - Step through packets ala tcpreplay and provide option to edit (Y/n)
   - Step through packets ala tcpreplay and provide option to edit (Y/n)
 
 
-+ Improve config file format
-  + better variable names
-  + use "var: value" format
-  + have tcpreplay, tcpprep, tcprewrite sections
-  + Being solved using GNU AutoOpts
-
-. Add support for dual-nic send on one intf, wait for packet, send next.
-  would be really useful for testing the effectiveness of how well an IPS
-  detects and blocks attacks. (TP's tomahawk does this even better then
-  described here, so why re-invent the wheel?)
-
-- Support fragrouter like features 
-    - basic IP fragmenation
-    - TCP fudging 
-    - then more advanced stuff
-    - Can we integrate FR's code?
-
 - Support connection tracking and generating 3way handshake for connections
 - Support connection tracking and generating 3way handshake for connections
   missing them.
   missing them.
 
 
-- Bump Syn/Ack numbers by a random or given value so that running 
+- Bump Syn/Ack numbers by a pseudo random or given value so that running 
   the same pcap will behave as different streams.
   the same pcap will behave as different streams.
 
 
-- Improve flowreplay so it actually works
-  o Use libnids to read the pcaps
-  - Allow handoff to a socket after user specified client/server exchanges
-
-- Perhaps integrate stick/snot/fpg logic into flowreplay:
-  http://www.geschke-online.de/FLoP/fpg.8.html
-  to do full 3way handshakes
-
 - IPv6 support?  People ask for this every few months, but nobody actually
 - IPv6 support?  People ask for this every few months, but nobody actually
   says they "need" or "really want" it; seems more of "gee, wouldn't it be
   says they "need" or "really want" it; seems more of "gee, wouldn't it be
-  nice".
+  nice".  What does that mean anyways???
 
 
-+ When splitting traffic via tcpprep print out each packet (tcpdump style)
-  so end users know where each packet is going
+- tcprewrite should be able to remove the two byte ethernet FCS (checksums)
+  at the end of the frame.
 
 
-+ Improve autoconf detection of libraries
++ Support randomization of IP addresses in ARP packets
 
 
-+ Re-organize source tree
+- Add support for rewriting MAC addresses in the ARP body for
+  tcprewrite/tcpbridge to allow proxy-arp like behaviour
 
 
-O tcpdump decoder should print packets syncronously w/ the main process
+- Add support for IP fragmenting frames which are > MTU
 
 
-- Rewrite do_sleep() to handle sub sleep times by only nanosleep()'ing
-  once for multiple packets when the timestamps are close enough.  We
-  also need to time nanosleep, since different architectures have lower
-  minimum sleep times (Linux/Alpha is 1ms vs. 10ms for Linux/x86)
 
 
-+ Tcpreplay should say which interface each packet is going out
+TCPPREP:
 
 
-+ Better use of GNU Autotools
++ When splitting traffic via tcpprep print out each packet (tcpdump style)
+  so end users know where each packet is going
 
 
-+ Improve CLI/config file parsing
+FLOWREPLAY:
 
 
-- Tcprewrite should be able to remove the two byte ethernet FCS (checksums)
-  at the end of the frame.
+- Improve flowreplay so it actually works
+  . Use libnids to read the pcaps.  This seems DOA at this time since
+    libnids is GPL and the author is unwilling to make it support multiple
+    threads which flowreplay probably needs to be.  The only other option is
+    a major rewrite which would break API compatibility.  Doesn't seem worth
+    it.
+  - Allow handoff to a socket after user specified client/server exchanges
 
 
-- See about removing libnet_init() from all binaries other then tcprewrite
-  so we don't have to run as root:
-  . libnet_addr2name4 (ignore, doesn't require libnet_t context)
-  + libnet_name2addr4
-  - libnet_get_hwaddr
-  - libnet_do_checksum
+- Perhaps integrate stick/snot/fpg logic into flowreplay:
+  http://www.geschke-online.de/FLoP/fpg.8.html
+  to do full 3way handshakes
 
 
-+ Support randomization of IP addresses in ARP packets
 
 
-- Only tcpreplay should need to run as root.
+BUGS:
+- fix RNG for randomization of IP's
+
+- Fix tcpbridge after code refactoring
+
+- Fix spec file using patch
+
+- adding a layer 2 header to RawIP pcap's results in broken pcap's
+
+- Tcpbridge between loopback (LinuxSSL and BSD loop) and another NIC 
+  (support rewriting MAC)
 
 
-- Tcpreplay should use raw sockets or BPF directly for writing rather then
-      libnet where applicable for higher performance.

BIN
docs/flowreplay.pdf


File diff suppressed because it is too large
+ 1030 - 643
docs/manual.lyx


File diff suppressed because it is too large
+ 366 - 488
docs/manual.pdf


+ 26 - 25
docs/web/FAQ/FAQ.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -53,7 +53,6 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <P ALIGN="CENTER"><STRONG>Aaron Turner</STRONG></P>
 <P ALIGN="CENTER"><STRONG>Aaron Turner</STRONG></P>
 <P ALIGN="CENTER"><I>http://tcpreplay.sourceforge.net/</I></P>
 <P ALIGN="CENTER"><I>http://tcpreplay.sourceforge.net/</I></P>
 </DIV>
 </DIV>
-
 <BR><HR>
 <BR><HR>
 <!--Table of Child-Links-->
 <!--Table of Child-Links-->
 <A NAME="CHILD_LINKS"></A>
 <A NAME="CHILD_LINKS"></A>
@@ -136,54 +135,56 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <LI><A NAME="tex2html45"
 <LI><A NAME="tex2html45"
   HREF="node5.html#SECTION00054000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> 100000 write attempts failed from full buffers and were repeated</A>
   HREF="node5.html#SECTION00054000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> 100000 write attempts failed from full buffers and were repeated</A>
 <LI><A NAME="tex2html46"
 <LI><A NAME="tex2html46"
-  HREF="node5.html#SECTION00055000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Invalid mac address: 00:00:00:00:00:00</A>
+  HREF="node5.html#SECTION00055000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Unable to process test.cache: cache file version missmatch</A>
 <LI><A NAME="tex2html47"
 <LI><A NAME="tex2html47"
-  HREF="node5.html#SECTION00056000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Unable to process test.cache: cache file version missmatch</A>
+  HREF="node5.html#SECTION00056000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Skipping SLL loopback packet.</A>
 <LI><A NAME="tex2html48"
 <LI><A NAME="tex2html48"
-  HREF="node5.html#SECTION00057000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Skipping SLL loopback packet.</A>
-<LI><A NAME="tex2html49"
-  HREF="node5.html#SECTION00058000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">8</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
+  HREF="node5.html#SECTION00057000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html50"
+<LI><A NAME="tex2html49"
   HREF="node6.html"><SPAN CLASS="arabic">5</SPAN> Common Questions from Users</A>
   HREF="node6.html"><SPAN CLASS="arabic">5</SPAN> Common Questions from Users</A>
 <UL>
 <UL>
-<LI><A NAME="tex2html51"
+<LI><A NAME="tex2html50"
   HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Why is tcpreplay not sending all the packets?</A>
   HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Why is tcpreplay not sending all the packets?</A>
-<LI><A NAME="tex2html52"
+<LI><A NAME="tex2html51"
   HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can tcpreplay read gzip/bzip2 compressed files?</A>
   HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can tcpreplay read gzip/bzip2 compressed files?</A>
-<LI><A NAME="tex2html53"
+<LI><A NAME="tex2html52"
   HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> How fast can tcpreplay send packets?</A>
   HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> How fast can tcpreplay send packets?</A>
+<LI><A NAME="tex2html53"
+  HREF="node6.html#SECTION00064000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Is tcpreplay stateful?</A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html54"
 <LI><A NAME="tex2html54"
-  HREF="node7.html"><SPAN CLASS="arabic">6</SPAN> Required Libraries and Tools</A>
-<UL>
+  HREF="node7.html"><SPAN CLASS="arabic">6</SPAN> Testing Methodologies</A>
 <LI><A NAME="tex2html55"
 <LI><A NAME="tex2html55"
-  HREF="node7.html#SECTION00071000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
+  HREF="node8.html"><SPAN CLASS="arabic">7</SPAN> Required Libraries and Tools</A>
+<UL>
 <LI><A NAME="tex2html56"
 <LI><A NAME="tex2html56"
-  HREF="node7.html#SECTION00072000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
+  HREF="node8.html#SECTION00081000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
 <LI><A NAME="tex2html57"
 <LI><A NAME="tex2html57"
-  HREF="node7.html#SECTION00073000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
+  HREF="node8.html#SECTION00082000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
 <LI><A NAME="tex2html58"
 <LI><A NAME="tex2html58"
-  HREF="node7.html#SECTION00074000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
+  HREF="node8.html#SECTION00083000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
+<LI><A NAME="tex2html59"
+  HREF="node8.html#SECTION00084000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html59"
-  HREF="node8.html"><SPAN CLASS="arabic">7</SPAN> Other pcap tools available</A>
-<UL>
 <LI><A NAME="tex2html60"
 <LI><A NAME="tex2html60"
-  HREF="node8.html#SECTION00081000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
+  HREF="node9.html"><SPAN CLASS="arabic">8</SPAN> Other pcap tools available</A>
+<UL>
 <LI><A NAME="tex2html61"
 <LI><A NAME="tex2html61"
-  HREF="node8.html#SECTION00082000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+  HREF="node9.html#SECTION00091000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
 <LI><A NAME="tex2html62"
 <LI><A NAME="tex2html62"
-  HREF="node8.html#SECTION00083000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
+  HREF="node9.html#SECTION00092000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+<LI><A NAME="tex2html63"
+  HREF="node9.html#SECTION00093000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
 </UL></UL>
 </UL></UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 26 - 25
docs/web/FAQ/index.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -53,7 +53,6 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <P ALIGN="CENTER"><STRONG>Aaron Turner</STRONG></P>
 <P ALIGN="CENTER"><STRONG>Aaron Turner</STRONG></P>
 <P ALIGN="CENTER"><I>http://tcpreplay.sourceforge.net/</I></P>
 <P ALIGN="CENTER"><I>http://tcpreplay.sourceforge.net/</I></P>
 </DIV>
 </DIV>
-
 <BR><HR>
 <BR><HR>
 <!--Table of Child-Links-->
 <!--Table of Child-Links-->
 <A NAME="CHILD_LINKS"></A>
 <A NAME="CHILD_LINKS"></A>
@@ -136,54 +135,56 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <LI><A NAME="tex2html45"
 <LI><A NAME="tex2html45"
   HREF="node5.html#SECTION00054000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> 100000 write attempts failed from full buffers and were repeated</A>
   HREF="node5.html#SECTION00054000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> 100000 write attempts failed from full buffers and were repeated</A>
 <LI><A NAME="tex2html46"
 <LI><A NAME="tex2html46"
-  HREF="node5.html#SECTION00055000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Invalid mac address: 00:00:00:00:00:00</A>
+  HREF="node5.html#SECTION00055000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Unable to process test.cache: cache file version missmatch</A>
 <LI><A NAME="tex2html47"
 <LI><A NAME="tex2html47"
-  HREF="node5.html#SECTION00056000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Unable to process test.cache: cache file version missmatch</A>
+  HREF="node5.html#SECTION00056000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Skipping SLL loopback packet.</A>
 <LI><A NAME="tex2html48"
 <LI><A NAME="tex2html48"
-  HREF="node5.html#SECTION00057000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Skipping SLL loopback packet.</A>
-<LI><A NAME="tex2html49"
-  HREF="node5.html#SECTION00058000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">8</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
+  HREF="node5.html#SECTION00057000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html50"
+<LI><A NAME="tex2html49"
   HREF="node6.html"><SPAN CLASS="arabic">5</SPAN> Common Questions from Users</A>
   HREF="node6.html"><SPAN CLASS="arabic">5</SPAN> Common Questions from Users</A>
 <UL>
 <UL>
-<LI><A NAME="tex2html51"
+<LI><A NAME="tex2html50"
   HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Why is tcpreplay not sending all the packets?</A>
   HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Why is tcpreplay not sending all the packets?</A>
-<LI><A NAME="tex2html52"
+<LI><A NAME="tex2html51"
   HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can tcpreplay read gzip/bzip2 compressed files?</A>
   HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can tcpreplay read gzip/bzip2 compressed files?</A>
-<LI><A NAME="tex2html53"
+<LI><A NAME="tex2html52"
   HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> How fast can tcpreplay send packets?</A>
   HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> How fast can tcpreplay send packets?</A>
+<LI><A NAME="tex2html53"
+  HREF="node6.html#SECTION00064000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Is tcpreplay stateful?</A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html54"
 <LI><A NAME="tex2html54"
-  HREF="node7.html"><SPAN CLASS="arabic">6</SPAN> Required Libraries and Tools</A>
-<UL>
+  HREF="node7.html"><SPAN CLASS="arabic">6</SPAN> Testing Methodologies</A>
 <LI><A NAME="tex2html55"
 <LI><A NAME="tex2html55"
-  HREF="node7.html#SECTION00071000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
+  HREF="node8.html"><SPAN CLASS="arabic">7</SPAN> Required Libraries and Tools</A>
+<UL>
 <LI><A NAME="tex2html56"
 <LI><A NAME="tex2html56"
-  HREF="node7.html#SECTION00072000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
+  HREF="node8.html#SECTION00081000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
 <LI><A NAME="tex2html57"
 <LI><A NAME="tex2html57"
-  HREF="node7.html#SECTION00073000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
+  HREF="node8.html#SECTION00082000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
 <LI><A NAME="tex2html58"
 <LI><A NAME="tex2html58"
-  HREF="node7.html#SECTION00074000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
+  HREF="node8.html#SECTION00083000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
+<LI><A NAME="tex2html59"
+  HREF="node8.html#SECTION00084000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html59"
-  HREF="node8.html"><SPAN CLASS="arabic">7</SPAN> Other pcap tools available</A>
-<UL>
 <LI><A NAME="tex2html60"
 <LI><A NAME="tex2html60"
-  HREF="node8.html#SECTION00081000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
+  HREF="node9.html"><SPAN CLASS="arabic">8</SPAN> Other pcap tools available</A>
+<UL>
 <LI><A NAME="tex2html61"
 <LI><A NAME="tex2html61"
-  HREF="node8.html#SECTION00082000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+  HREF="node9.html#SECTION00091000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
 <LI><A NAME="tex2html62"
 <LI><A NAME="tex2html62"
-  HREF="node8.html#SECTION00083000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
+  HREF="node9.html#SECTION00092000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+<LI><A NAME="tex2html63"
+  HREF="node9.html#SECTION00093000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
 </UL></UL>
 </UL></UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 2 - 2
docs/web/FAQ/labels.pl

@@ -1,11 +1,11 @@
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # Associate labels original text with physical files.
 # Associate labels original text with physical files.
 
 
 
 
 1;
 1;
 
 
 
 
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # labels from external_latex_labels array.
 # labels from external_latex_labels array.
 
 
 
 

+ 62 - 60
docs/web/FAQ/node1.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,21 +28,21 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html71"
+<A NAME="tex2html72"
   HREF="node2.html">
   HREF="node2.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html69"
+<A NAME="tex2html70"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html63"
+<A NAME="tex2html64"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>   
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>   
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html72"
+<B> Next:</B> <A NAME="tex2html73"
   HREF="node2.html">1 General Info</A>
   HREF="node2.html">1 General Info</A>
-<B> Up:</B> <A NAME="tex2html70"
+<B> Up:</B> <A NAME="tex2html71"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html64"
+<B> Previous:</B> <A NAME="tex2html65"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
@@ -55,88 +55,86 @@ Contents</A>
 <!--Table of Contents-->
 <!--Table of Contents-->
 
 
 <UL CLASS="TofC">
 <UL CLASS="TofC">
-<LI><A NAME="tex2html73"
+<LI><A NAME="tex2html74"
   HREF="node2.html">1 General Info</A>
   HREF="node2.html">1 General Info</A>
 <UL>
 <UL>
-<LI><A NAME="tex2html74"
-  HREF="node2.html#SECTION00021000000000000000">1.1 What is this FAQ for?</A>
 <LI><A NAME="tex2html75"
 <LI><A NAME="tex2html75"
-  HREF="node2.html#SECTION00022000000000000000">1.2 What tools come with tcpreplay?</A>
+  HREF="node2.html#SECTION00021000000000000000">1.1 What is this FAQ for?</A>
 <LI><A NAME="tex2html76"
 <LI><A NAME="tex2html76"
-  HREF="node2.html#SECTION00023000000000000000">1.3 What tools no longer come with Tcpreplay?</A>
+  HREF="node2.html#SECTION00022000000000000000">1.2 What tools come with tcpreplay?</A>
 <LI><A NAME="tex2html77"
 <LI><A NAME="tex2html77"
-  HREF="node2.html#SECTION00024000000000000000">1.4 How can I get tcpreplay's source?</A>
+  HREF="node2.html#SECTION00023000000000000000">1.3 What tools no longer come with Tcpreplay?</A>
 <LI><A NAME="tex2html78"
 <LI><A NAME="tex2html78"
-  HREF="node2.html#SECTION00025000000000000000">1.5 What requirements does tcpreplay have?</A>
+  HREF="node2.html#SECTION00024000000000000000">1.4 How can I get tcpreplay's source?</A>
 <LI><A NAME="tex2html79"
 <LI><A NAME="tex2html79"
-  HREF="node2.html#SECTION00026000000000000000">1.6 Are there binaries available?</A>
+  HREF="node2.html#SECTION00025000000000000000">1.5 What requirements does tcpreplay have?</A>
 <LI><A NAME="tex2html80"
 <LI><A NAME="tex2html80"
-  HREF="node2.html#SECTION00027000000000000000">1.7 Is there a Microsoft Windows port?</A>
+  HREF="node2.html#SECTION00026000000000000000">1.6 Are there binaries available?</A>
 <LI><A NAME="tex2html81"
 <LI><A NAME="tex2html81"
-  HREF="node2.html#SECTION00028000000000000000">1.8 How is tcpreplay licensed?</A>
+  HREF="node2.html#SECTION00027000000000000000">1.7 Is there a Microsoft Windows port?</A>
 <LI><A NAME="tex2html82"
 <LI><A NAME="tex2html82"
-  HREF="node2.html#SECTION00029000000000000000">1.9 What is tcpreplay?</A>
+  HREF="node2.html#SECTION00028000000000000000">1.8 How is tcpreplay licensed?</A>
 <LI><A NAME="tex2html83"
 <LI><A NAME="tex2html83"
-  HREF="node2.html#SECTION000210000000000000000">1.10 What are some uses for tcpreplay?</A>
+  HREF="node2.html#SECTION00029000000000000000">1.9 What is tcpreplay?</A>
 <LI><A NAME="tex2html84"
 <LI><A NAME="tex2html84"
-  HREF="node2.html#SECTION000211000000000000000">1.11 What are some uses for flowreplay?</A>
+  HREF="node2.html#SECTION000210000000000000000">1.10 What are some uses for tcpreplay?</A>
 <LI><A NAME="tex2html85"
 <LI><A NAME="tex2html85"
+  HREF="node2.html#SECTION000211000000000000000">1.11 What are some uses for flowreplay?</A>
+<LI><A NAME="tex2html86"
   HREF="node2.html#SECTION000212000000000000000">1.12 What is the history of tcpreplay?</A>
   HREF="node2.html#SECTION000212000000000000000">1.12 What is the history of tcpreplay?</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html86"
+<LI><A NAME="tex2html87"
   HREF="node3.html">2 Bugs, Feature Requests, and Patches</A>
   HREF="node3.html">2 Bugs, Feature Requests, and Patches</A>
 <UL>
 <UL>
-<LI><A NAME="tex2html87"
-  HREF="node3.html#SECTION00031000000000000000">2.1 Where can I get help, report bugs or contact the developers?</A>
 <LI><A NAME="tex2html88"
 <LI><A NAME="tex2html88"
-  HREF="node3.html#SECTION00032000000000000000">2.2 What information should I provide when I report a bug?</A>
+  HREF="node3.html#SECTION00031000000000000000">2.1 Where can I get help, report bugs or contact the developers?</A>
 <LI><A NAME="tex2html89"
 <LI><A NAME="tex2html89"
-  HREF="node3.html#SECTION00033000000000000000">2.3 I have a feature request, what should I do?</A>
+  HREF="node3.html#SECTION00032000000000000000">2.2 What information should I provide when I report a bug?</A>
 <LI><A NAME="tex2html90"
 <LI><A NAME="tex2html90"
-  HREF="node3.html#SECTION00034000000000000000">2.4 I've written a patch for tcpreplay, how can I submit it?</A>
+  HREF="node3.html#SECTION00033000000000000000">2.3 I have a feature request, what should I do?</A>
 <LI><A NAME="tex2html91"
 <LI><A NAME="tex2html91"
+  HREF="node3.html#SECTION00034000000000000000">2.4 I've written a patch for tcpreplay, how can I submit it?</A>
+<LI><A NAME="tex2html92"
   HREF="node3.html#SECTION00035000000000000000">2.5 Patch requirements</A>
   HREF="node3.html#SECTION00035000000000000000">2.5 Patch requirements</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html92"
+<LI><A NAME="tex2html93"
   HREF="node4.html">3 Understanding tcpprep</A>
   HREF="node4.html">3 Understanding tcpprep</A>
 <UL>
 <UL>
-<LI><A NAME="tex2html93"
-  HREF="node4.html#SECTION00041000000000000000">3.1 What is tcpprep?</A>
 <LI><A NAME="tex2html94"
 <LI><A NAME="tex2html94"
-  HREF="node4.html#SECTION00042000000000000000">3.2 How does tcpprep work? </A>
+  HREF="node4.html#SECTION00041000000000000000">3.1 What is tcpprep?</A>
 <LI><A NAME="tex2html95"
 <LI><A NAME="tex2html95"
-  HREF="node4.html#SECTION00043000000000000000">3.3 Does tcpprep modify my libpcap file?</A>
+  HREF="node4.html#SECTION00042000000000000000">3.2 How does tcpprep work? </A>
 <LI><A NAME="tex2html96"
 <LI><A NAME="tex2html96"
-  HREF="node4.html#SECTION00044000000000000000">3.4 Why use tcpprep?</A>
+  HREF="node4.html#SECTION00043000000000000000">3.3 Does tcpprep modify my libpcap file?</A>
 <LI><A NAME="tex2html97"
 <LI><A NAME="tex2html97"
-  HREF="node4.html#SECTION00045000000000000000">3.5 Can a cache file be used for multiple (different) libpcap files? </A>
+  HREF="node4.html#SECTION00044000000000000000">3.4 Why use tcpprep?</A>
 <LI><A NAME="tex2html98"
 <LI><A NAME="tex2html98"
-  HREF="node4.html#SECTION00046000000000000000">3.6 Why would I want to use tcpreplay with two network cards? </A>
+  HREF="node4.html#SECTION00045000000000000000">3.5 Can a cache file be used for multiple (different) libpcap files? </A>
 <LI><A NAME="tex2html99"
 <LI><A NAME="tex2html99"
+  HREF="node4.html#SECTION00046000000000000000">3.6 Why would I want to use tcpreplay with two network cards? </A>
+<LI><A NAME="tex2html100"
   HREF="node4.html#SECTION00047000000000000000">3.7 How big are the cache files?</A>
   HREF="node4.html#SECTION00047000000000000000">3.7 How big are the cache files?</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html100"
+<LI><A NAME="tex2html101"
   HREF="node5.html">4 Common Error and Warning Messages</A>
   HREF="node5.html">4 Common Error and Warning Messages</A>
 <UL>
 <UL>
-<LI><A NAME="tex2html101"
-  HREF="node5.html#SECTION00051000000000000000">4.1 Can't open eth0: libnet_select_device(): Can't find interface eth0</A>
 <LI><A NAME="tex2html102"
 <LI><A NAME="tex2html102"
-  HREF="node5.html#SECTION00052000000000000000">4.2 Can't open lo: libnet_select_device(): Can't find interface lo</A>
+  HREF="node5.html#SECTION00051000000000000000">4.1 Can't open eth0: libnet_select_device(): Can't find interface eth0</A>
 <LI><A NAME="tex2html103"
 <LI><A NAME="tex2html103"
-  HREF="node5.html#SECTION00053000000000000000">4.3 Can't open eth0: UID != 0</A>
+  HREF="node5.html#SECTION00052000000000000000">4.2 Can't open lo: libnet_select_device(): Can't find interface lo</A>
 <LI><A NAME="tex2html104"
 <LI><A NAME="tex2html104"
-  HREF="node5.html#SECTION00054000000000000000">4.4 100000 write attempts failed from full buffers and were repeated</A>
+  HREF="node5.html#SECTION00053000000000000000">4.3 Can't open eth0: UID != 0</A>
 <LI><A NAME="tex2html105"
 <LI><A NAME="tex2html105"
-  HREF="node5.html#SECTION00055000000000000000">4.5 Invalid mac address: 00:00:00:00:00:00</A>
+  HREF="node5.html#SECTION00054000000000000000">4.4 100000 write attempts failed from full buffers and were repeated</A>
 <LI><A NAME="tex2html106"
 <LI><A NAME="tex2html106"
-  HREF="node5.html#SECTION00056000000000000000">4.6 Unable to process test.cache: cache file version missmatch</A>
+  HREF="node5.html#SECTION00055000000000000000">4.5 Unable to process test.cache: cache file version missmatch</A>
 <LI><A NAME="tex2html107"
 <LI><A NAME="tex2html107"
-  HREF="node5.html#SECTION00057000000000000000">4.7 Skipping SLL loopback packet.</A>
+  HREF="node5.html#SECTION00056000000000000000">4.6 Skipping SLL loopback packet.</A>
 <LI><A NAME="tex2html108"
 <LI><A NAME="tex2html108"
-  HREF="node5.html#SECTION00058000000000000000">4.8 Packet length (8892) is greater then MTU; skipping packet.</A>
+  HREF="node5.html#SECTION00057000000000000000">4.7 Packet length (8892) is greater then MTU; skipping packet.</A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html109"
 <LI><A NAME="tex2html109"
@@ -148,30 +146,34 @@ Contents</A>
   HREF="node6.html#SECTION00062000000000000000">5.2 Can tcpreplay read gzip/bzip2 compressed files?</A>
   HREF="node6.html#SECTION00062000000000000000">5.2 Can tcpreplay read gzip/bzip2 compressed files?</A>
 <LI><A NAME="tex2html112"
 <LI><A NAME="tex2html112"
   HREF="node6.html#SECTION00063000000000000000">5.3 How fast can tcpreplay send packets?</A>
   HREF="node6.html#SECTION00063000000000000000">5.3 How fast can tcpreplay send packets?</A>
+<LI><A NAME="tex2html113"
+  HREF="node6.html#SECTION00064000000000000000">5.4 Is tcpreplay stateful?</A>
 </UL>
 </UL>
 <BR>
 <BR>
-<LI><A NAME="tex2html113"
-  HREF="node7.html">6 Required Libraries and Tools</A>
-<UL>
 <LI><A NAME="tex2html114"
 <LI><A NAME="tex2html114"
-  HREF="node7.html#SECTION00071000000000000000">6.1 Libpcap</A>
+  HREF="node7.html">6 Testing Methodologies</A>
 <LI><A NAME="tex2html115"
 <LI><A NAME="tex2html115"
-  HREF="node7.html#SECTION00072000000000000000">6.2 Libnet</A>
+  HREF="node8.html">7 Required Libraries and Tools</A>
+<UL>
 <LI><A NAME="tex2html116"
 <LI><A NAME="tex2html116"
-  HREF="node7.html#SECTION00073000000000000000">6.3 Libpcapnav</A>
+  HREF="node8.html#SECTION00081000000000000000">7.1 Libpcap</A>
 <LI><A NAME="tex2html117"
 <LI><A NAME="tex2html117"
-  HREF="node7.html#SECTION00074000000000000000">6.4 Tcpdump</A>
-</UL>
-<BR>
+  HREF="node8.html#SECTION00082000000000000000">7.2 Libnet</A>
 <LI><A NAME="tex2html118"
 <LI><A NAME="tex2html118"
-  HREF="node8.html">7 Other pcap tools available</A>
-<UL>
+  HREF="node8.html#SECTION00083000000000000000">7.3 Libpcapnav</A>
 <LI><A NAME="tex2html119"
 <LI><A NAME="tex2html119"
-  HREF="node8.html#SECTION00081000000000000000">7.1 Tools to capture network traffic or decode pcap files</A>
+  HREF="node8.html#SECTION00084000000000000000">7.4 Tcpdump</A>
+</UL>
+<BR>
 <LI><A NAME="tex2html120"
 <LI><A NAME="tex2html120"
-  HREF="node8.html#SECTION00082000000000000000">7.2 Tools to edit pcap files</A>
+  HREF="node9.html">8 Other pcap tools available</A>
+<UL>
 <LI><A NAME="tex2html121"
 <LI><A NAME="tex2html121"
-  HREF="node8.html#SECTION00083000000000000000">7.3 Other useful tools</A>
+  HREF="node9.html#SECTION00091000000000000000">8.1 Tools to capture network traffic or decode pcap files</A>
+<LI><A NAME="tex2html122"
+  HREF="node9.html#SECTION00092000000000000000">8.2 Tools to edit pcap files</A>
+<LI><A NAME="tex2html123"
+  HREF="node9.html#SECTION00093000000000000000">8.3 Other useful tools</A>
 </UL></UL>
 </UL></UL>
 <!--End of Table of Contents-->
 <!--End of Table of Contents-->
 
 
@@ -179,7 +181,7 @@ Contents</A>
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 49 - 47
docs/web/FAQ/node2.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,26 +28,26 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html132"
+<A NAME="tex2html134"
   HREF="node3.html">
   HREF="node3.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html128"
+<A NAME="tex2html130"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html122"
+<A NAME="tex2html124"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html130"
+<A NAME="tex2html132"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html133"
+<B> Next:</B> <A NAME="tex2html135"
   HREF="node3.html">2 Bugs, Feature Requests,</A>
   HREF="node3.html">2 Bugs, Feature Requests,</A>
-<B> Up:</B> <A NAME="tex2html129"
+<B> Up:</B> <A NAME="tex2html131"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html123"
+<B> Previous:</B> <A NAME="tex2html125"
   HREF="node1.html">Contents</A>
   HREF="node1.html">Contents</A>
- &nbsp; <B>  <A NAME="tex2html131"
+ &nbsp; <B>  <A NAME="tex2html133"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
@@ -56,29 +56,29 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html134"
+<LI><A NAME="tex2html136"
   HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> What is this FAQ for?</A>
   HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> What is this FAQ for?</A>
-<LI><A NAME="tex2html135"
+<LI><A NAME="tex2html137"
   HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> What tools come with tcpreplay?</A>
   HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> What tools come with tcpreplay?</A>
-<LI><A NAME="tex2html136"
+<LI><A NAME="tex2html138"
   HREF="node2.html#SECTION00023000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> What tools no longer come with Tcpreplay?</A>
   HREF="node2.html#SECTION00023000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> What tools no longer come with Tcpreplay?</A>
-<LI><A NAME="tex2html137"
+<LI><A NAME="tex2html139"
   HREF="node2.html#SECTION00024000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> How can I get tcpreplay's source?</A>
   HREF="node2.html#SECTION00024000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> How can I get tcpreplay's source?</A>
-<LI><A NAME="tex2html138"
+<LI><A NAME="tex2html140"
   HREF="node2.html#SECTION00025000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> What requirements does tcpreplay have?</A>
   HREF="node2.html#SECTION00025000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> What requirements does tcpreplay have?</A>
-<LI><A NAME="tex2html139"
+<LI><A NAME="tex2html141"
   HREF="node2.html#SECTION00026000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> Are there binaries available?</A>
   HREF="node2.html#SECTION00026000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> Are there binaries available?</A>
-<LI><A NAME="tex2html140"
+<LI><A NAME="tex2html142"
   HREF="node2.html#SECTION00027000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> Is there a Microsoft Windows port?</A>
   HREF="node2.html#SECTION00027000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> Is there a Microsoft Windows port?</A>
-<LI><A NAME="tex2html141"
+<LI><A NAME="tex2html143"
   HREF="node2.html#SECTION00028000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> How is tcpreplay licensed?</A>
   HREF="node2.html#SECTION00028000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> How is tcpreplay licensed?</A>
-<LI><A NAME="tex2html142"
+<LI><A NAME="tex2html144"
   HREF="node2.html#SECTION00029000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> What is tcpreplay?</A>
   HREF="node2.html#SECTION00029000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> What is tcpreplay?</A>
-<LI><A NAME="tex2html143"
+<LI><A NAME="tex2html145"
   HREF="node2.html#SECTION000210000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> What are some uses for tcpreplay?</A>
   HREF="node2.html#SECTION000210000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> What are some uses for tcpreplay?</A>
-<LI><A NAME="tex2html144"
+<LI><A NAME="tex2html146"
   HREF="node2.html#SECTION000211000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> What are some uses for flowreplay?</A>
   HREF="node2.html#SECTION000211000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> What are some uses for flowreplay?</A>
-<LI><A NAME="tex2html145"
+<LI><A NAME="tex2html147"
   HREF="node2.html#SECTION000212000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> What is the history of tcpreplay?</A>
   HREF="node2.html#SECTION000212000000000000000"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> What is the history of tcpreplay?</A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
@@ -121,7 +121,7 @@ were captured
 <LI>tcpprep - a pcap pre-processor for tcpreplay
 <LI>tcpprep - a pcap pre-processor for tcpreplay
 </LI>
 </LI>
 <LI>flowreplay<A NAME="tex2html1"
 <LI>flowreplay<A NAME="tex2html1"
-  HREF="#foot136"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A> - connects to a server(s) and replays the client side of the connection
+  HREF="#foot153"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A> - connects to a server(s) and replays the client side of the connection
 stored in a pcap file
 stored in a pcap file
 </LI>
 </LI>
 </UL>
 </UL>
@@ -134,7 +134,7 @@ stored in a pcap file
 
 
 <P>
 <P>
 Recently, other people and projects have developed better versions
 Recently, other people and projects have developed better versions
-of two applications that ship with tcpreplay 2.x:
+of two applications that shipped with tcpreplay 2.x:
 
 
 <P>
 <P>
 
 
@@ -160,7 +160,7 @@ with Subversion to try checking out the latest code as it often has
 additional features and bugfixes not found in the tarballs.
 additional features and bugfixes not found in the tarballs.
 
 
 <P>
 <P>
-svn checkout https://www.synfin.net:444/svn/tcpreplay/trunk tcpreplay
+svn checkout https://www.synfin.net/svn/tcpreplay/trunk tcpreplay
 
 
 <P>
 <P>
 
 
@@ -172,11 +172,11 @@ svn checkout https://www.synfin.net:444/svn/tcpreplay/trunk tcpreplay
 
 
 <OL>
 <OL>
 <LI>You'll need recent versions of the libnet<A NAME="tex2html2"
 <LI>You'll need recent versions of the libnet<A NAME="tex2html2"
-  HREF="#foot36"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A> and libpcap<A NAME="tex2html3"
-  HREF="#foot37"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A> libraries.
+  HREF="#foot38"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A> and libpcap<A NAME="tex2html3"
+  HREF="#foot39"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A> libraries.
 </LI>
 </LI>
 <LI>To support the packet decoding feature you'll need tcpdump<A NAME="tex2html4"
 <LI>To support the packet decoding feature you'll need tcpdump<A NAME="tex2html4"
-  HREF="#foot38"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A> installed.
+  HREF="#foot40"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A> installed.
 </LI>
 </LI>
 <LI>You'll also need a compatible operating system. Basically, any UNIX-like
 <LI>You'll also need a compatible operating system. Basically, any UNIX-like
 or UNIX-based operating system should work. Linux, *BSD, Solaris,
 or UNIX-based operating system should work. Linux, *BSD, Solaris,
@@ -245,7 +245,7 @@ Originally, tcpreplay was written to test network intrusion detection
 systems (NIDS), however tcpreplay has been used to test firewalls,
 systems (NIDS), however tcpreplay has been used to test firewalls,
 routers, and other network devices. With the addition of flowreplay,
 routers, and other network devices. With the addition of flowreplay,
 most<A NAME="tex2html5"
 most<A NAME="tex2html5"
-  HREF="#foot46"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A> any udp or tcp service on a server can be tested as well.
+  HREF="#foot48"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A> any udp or tcp service on a server can be tested as well.
 
 
 <P>
 <P>
 
 
@@ -263,7 +263,9 @@ systems (HIDS) as well as captured exploits and security patches when
 the actual exploit code is not available. Please note that flowreplay
 the actual exploit code is not available. Please note that flowreplay
 is still alpha quality code which means it doesn't work very well
 is still alpha quality code which means it doesn't work very well
 (some would argue it doesn't work at all) and is currently missing
 (some would argue it doesn't work at all) and is currently missing
-some important features.
+some important features. Feel free to try flowreplay, but unless you're
+willing and able to contribute, don't bother complaining that it doesn't
+work.
 
 
 <P>
 <P>
 
 
@@ -284,9 +286,9 @@ was (at least partially) purchased by NFR and development ceased.
 
 
 <P>
 <P>
 Then in 2001, two people independently started work on tcpreplay:
 Then in 2001, two people independently started work on tcpreplay:
-Matt Bing of NFR and Aaron Turner. After developing a series of patches
-(the -adt branch), Aaron attempted to send the patches in to be included
-in the main development tree.
+Matt Bing of NFR and Aaron Turner of OneSecure. After developing a
+series of patches (the -adt branch), Aaron attempted to send the patches
+in to be included in the main development tree.
 
 
 <P>
 <P>
 After some discussion between Aaron and Matt Bing, they decided to
 After some discussion between Aaron and Matt Bing, they decided to
@@ -300,29 +302,29 @@ Today, Aaron continues active development of the code.
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
 <DL>
 <DL>
-<DT><A NAME="foot136">... flowreplay</A><A
+<DT><A NAME="foot153">... flowreplay</A><A
  HREF="node2.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
  HREF="node2.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
 <DD>Flowreplay is still ``alpha'' quality and is not usable for most
 <DD>Flowreplay is still ``alpha'' quality and is not usable for most
 situations. Anyone interested in helping me develop flowreplay is
 situations. Anyone interested in helping me develop flowreplay is
 encouraged to contact me.
 encouraged to contact me.
 
 
 </DD>
 </DD>
-<DT><A NAME="foot36">... libnet</A><A
+<DT><A NAME="foot38">... libnet</A><A
  HREF="node2.html#tex2html2"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
  HREF="node2.html#tex2html2"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
 <DD>http://www.packetfactory.net/libnet/
 <DD>http://www.packetfactory.net/libnet/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot37">... libpcap</A><A
+<DT><A NAME="foot39">... libpcap</A><A
  HREF="node2.html#tex2html3"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
  HREF="node2.html#tex2html3"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
 <DD>http://www.tcpdump.org/
 <DD>http://www.tcpdump.org/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot38">... tcpdump</A><A
+<DT><A NAME="foot40">... tcpdump</A><A
  HREF="node2.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
  HREF="node2.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
 <DD>http://www.tcpdump.org/
 <DD>http://www.tcpdump.org/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot46">...
+<DT><A NAME="foot48">...
 most</A><A
 most</A><A
  HREF="node2.html#tex2html5"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
  HREF="node2.html#tex2html5"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
 <DD>Note the flowreplay does not support protocols such as ftp which use
 <DD>Note the flowreplay does not support protocols such as ftp which use
@@ -332,31 +334,31 @@ multiple connections.
 </DL>
 </DL>
 <DIV CLASS="navigation"><HR>
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
 <!--Navigation Panel-->
-<A NAME="tex2html132"
+<A NAME="tex2html134"
   HREF="node3.html">
   HREF="node3.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html128"
+<A NAME="tex2html130"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html122"
+<A NAME="tex2html124"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html130"
+<A NAME="tex2html132"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html133"
+<B> Next:</B> <A NAME="tex2html135"
   HREF="node3.html">2 Bugs, Feature Requests,</A>
   HREF="node3.html">2 Bugs, Feature Requests,</A>
-<B> Up:</B> <A NAME="tex2html129"
+<B> Up:</B> <A NAME="tex2html131"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html123"
+<B> Previous:</B> <A NAME="tex2html125"
   HREF="node1.html">Contents</A>
   HREF="node1.html">Contents</A>
- &nbsp; <B>  <A NAME="tex2html131"
+ &nbsp; <B>  <A NAME="tex2html133"
   HREF="node1.html">Contents</A></B> </DIV>
   HREF="node1.html">Contents</A></B> </DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 32 - 29
docs/web/FAQ/node3.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,26 +28,26 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html156"
+<A NAME="tex2html158"
   HREF="node4.html">
   HREF="node4.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html152"
+<A NAME="tex2html154"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html146"
+<A NAME="tex2html148"
   HREF="node2.html">
   HREF="node2.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html154"
+<A NAME="tex2html156"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html157"
+<B> Next:</B> <A NAME="tex2html159"
   HREF="node4.html">3 Understanding tcpprep</A>
   HREF="node4.html">3 Understanding tcpprep</A>
-<B> Up:</B> <A NAME="tex2html153"
+<B> Up:</B> <A NAME="tex2html155"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html147"
+<B> Previous:</B> <A NAME="tex2html149"
   HREF="node2.html">1 General Info</A>
   HREF="node2.html">1 General Info</A>
- &nbsp; <B>  <A NAME="tex2html155"
+ &nbsp; <B>  <A NAME="tex2html157"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
@@ -56,15 +56,15 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html158"
+<LI><A NAME="tex2html160"
   HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Where can I get help, report bugs or contact the developers?</A>
   HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Where can I get help, report bugs or contact the developers?</A>
-<LI><A NAME="tex2html159"
+<LI><A NAME="tex2html161"
   HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> What information should I provide when I report a bug?</A>
   HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> What information should I provide when I report a bug?</A>
-<LI><A NAME="tex2html160"
+<LI><A NAME="tex2html162"
   HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> I have a feature request, what should I do?</A>
   HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> I have a feature request, what should I do?</A>
-<LI><A NAME="tex2html161"
+<LI><A NAME="tex2html163"
   HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> I've written a patch for tcpreplay, how can I submit it?</A>
   HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> I've written a patch for tcpreplay, how can I submit it?</A>
-<LI><A NAME="tex2html162"
+<LI><A NAME="tex2html164"
   HREF="node3.html#SECTION00035000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> Patch requirements</A>
   HREF="node3.html#SECTION00035000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> Patch requirements</A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
@@ -87,6 +87,10 @@ mailing list:
 http://lists.sourceforge.net/lists/listinfo/tcpreplay-users
 http://lists.sourceforge.net/lists/listinfo/tcpreplay-users
 
 
 <P>
 <P>
+Please do not email the author directly as it prevents others from
+learning from your questions.
+
+<P>
 
 
 <H2><A NAME="SECTION00032000000000000000">
 <H2><A NAME="SECTION00032000000000000000">
 <SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> What information should I provide when I report a bug?</A>
 <SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> What information should I provide when I report a bug?</A>
@@ -124,9 +128,8 @@ preferred)
 
 
 <P>
 <P>
 Let us know! Many of the features exist today because users like you
 Let us know! Many of the features exist today because users like you
-asked for them. To make a feature request, you can either email the
-tcpreplay-users mailing list (see above) or fill out the feature request
-form on the tcpreplay SourceForge website.
+asked for them. To make a feature request, email the tcpreplay-users
+mailing list (see above).
 
 
 <P>
 <P>
 
 
@@ -168,8 +171,8 @@ Generally that means that most recent stable and development branches
 <LI>Make sure you are patching against the most recent release for that
 <LI>Make sure you are patching against the most recent release for that
 branch.
 branch.
 </LI>
 </LI>
-<LI>Please submit your patch in the unified diff format so I can better
-understand what you're changing.
+<LI>Please submit your patch in the <SPAN  CLASS="textit">unified diff</SPAN> format so I can
+better understand what you're changing.
 </LI>
 </LI>
 <LI>Please provide any relevant personal information you'd like listed
 <LI>Please provide any relevant personal information you'd like listed
 in the CREDITS file.
 in the CREDITS file.
@@ -182,31 +185,31 @@ some or all of your submission to maintain a consistent coding style.
 
 
 <DIV CLASS="navigation"><HR>
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
 <!--Navigation Panel-->
-<A NAME="tex2html156"
+<A NAME="tex2html158"
   HREF="node4.html">
   HREF="node4.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html152"
+<A NAME="tex2html154"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html146"
+<A NAME="tex2html148"
   HREF="node2.html">
   HREF="node2.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html154"
+<A NAME="tex2html156"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html157"
+<B> Next:</B> <A NAME="tex2html159"
   HREF="node4.html">3 Understanding tcpprep</A>
   HREF="node4.html">3 Understanding tcpprep</A>
-<B> Up:</B> <A NAME="tex2html153"
+<B> Up:</B> <A NAME="tex2html155"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html147"
+<B> Previous:</B> <A NAME="tex2html149"
   HREF="node2.html">1 General Info</A>
   HREF="node2.html">1 General Info</A>
- &nbsp; <B>  <A NAME="tex2html155"
+ &nbsp; <B>  <A NAME="tex2html157"
   HREF="node1.html">Contents</A></B> </DIV>
   HREF="node1.html">Contents</A></B> </DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 27 - 27
docs/web/FAQ/node4.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,26 +28,26 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html173"
+<A NAME="tex2html175"
   HREF="node5.html">
   HREF="node5.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html169"
+<A NAME="tex2html171"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html163"
+<A NAME="tex2html165"
   HREF="node3.html">
   HREF="node3.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html171"
+<A NAME="tex2html173"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html174"
+<B> Next:</B> <A NAME="tex2html176"
   HREF="node5.html">4 Common Error and</A>
   HREF="node5.html">4 Common Error and</A>
-<B> Up:</B> <A NAME="tex2html170"
+<B> Up:</B> <A NAME="tex2html172"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html164"
+<B> Previous:</B> <A NAME="tex2html166"
   HREF="node3.html">2 Bugs, Feature Requests,</A>
   HREF="node3.html">2 Bugs, Feature Requests,</A>
- &nbsp; <B>  <A NAME="tex2html172"
+ &nbsp; <B>  <A NAME="tex2html174"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
@@ -56,19 +56,19 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html175"
+<LI><A NAME="tex2html177"
   HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> What is tcpprep?</A>
   HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> What is tcpprep?</A>
-<LI><A NAME="tex2html176"
+<LI><A NAME="tex2html178"
   HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> How does tcpprep work? </A>
   HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> How does tcpprep work? </A>
-<LI><A NAME="tex2html177"
+<LI><A NAME="tex2html179"
   HREF="node4.html#SECTION00043000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Does tcpprep modify my libpcap file?</A>
   HREF="node4.html#SECTION00043000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Does tcpprep modify my libpcap file?</A>
-<LI><A NAME="tex2html178"
+<LI><A NAME="tex2html180"
   HREF="node4.html#SECTION00044000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Why use tcpprep?</A>
   HREF="node4.html#SECTION00044000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Why use tcpprep?</A>
-<LI><A NAME="tex2html179"
+<LI><A NAME="tex2html181"
   HREF="node4.html#SECTION00045000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Can a cache file be used for multiple (different) libpcap files? </A>
   HREF="node4.html#SECTION00045000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Can a cache file be used for multiple (different) libpcap files? </A>
-<LI><A NAME="tex2html180"
+<LI><A NAME="tex2html182"
   HREF="node4.html#SECTION00046000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> Why would I want to use tcpreplay with two network cards? </A>
   HREF="node4.html#SECTION00046000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> Why would I want to use tcpreplay with two network cards? </A>
-<LI><A NAME="tex2html181"
+<LI><A NAME="tex2html183"
   HREF="node4.html#SECTION00047000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">7</SPAN> How big are the cache files?</A>
   HREF="node4.html#SECTION00047000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">7</SPAN> How big are the cache files?</A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
@@ -161,7 +161,7 @@ Tcpreplay traditionally is good for putting traffic on a given network,
 often used to test a network intrusion detection system (NIDS). However,
 often used to test a network intrusion detection system (NIDS). However,
 there are cases where putting traffic onto a subnet in this manner
 there are cases where putting traffic onto a subnet in this manner
 is not good enough- you have to be able to send traffic *through*
 is not good enough- you have to be able to send traffic *through*
-a device such as a router, firewall, or bridge.
+a device such as a IPS, router, firewall, or bridge.
 
 
 <P>
 <P>
 In these cases, being able to use a single source file (libpcap) for
 In these cases, being able to use a single source file (libpcap) for
@@ -183,31 +183,31 @@ was only 150K.
 
 
 <DIV CLASS="navigation"><HR>
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
 <!--Navigation Panel-->
-<A NAME="tex2html173"
+<A NAME="tex2html175"
   HREF="node5.html">
   HREF="node5.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html169"
+<A NAME="tex2html171"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html163"
+<A NAME="tex2html165"
   HREF="node3.html">
   HREF="node3.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html171"
+<A NAME="tex2html173"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html174"
+<B> Next:</B> <A NAME="tex2html176"
   HREF="node5.html">4 Common Error and</A>
   HREF="node5.html">4 Common Error and</A>
-<B> Up:</B> <A NAME="tex2html170"
+<B> Up:</B> <A NAME="tex2html172"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html164"
+<B> Previous:</B> <A NAME="tex2html166"
   HREF="node3.html">2 Bugs, Feature Requests,</A>
   HREF="node3.html">2 Bugs, Feature Requests,</A>
- &nbsp; <B>  <A NAME="tex2html172"
+ &nbsp; <B>  <A NAME="tex2html174"
   HREF="node1.html">Contents</A></B> </DIV>
   HREF="node1.html">Contents</A></B> </DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 34 - 48
docs/web/FAQ/node5.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,26 +28,26 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html192"
+<A NAME="tex2html194"
   HREF="node6.html">
   HREF="node6.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html188"
+<A NAME="tex2html190"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html182"
+<A NAME="tex2html184"
   HREF="node4.html">
   HREF="node4.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html190"
+<A NAME="tex2html192"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html193"
+<B> Next:</B> <A NAME="tex2html195"
   HREF="node6.html">5 Common Questions from</A>
   HREF="node6.html">5 Common Questions from</A>
-<B> Up:</B> <A NAME="tex2html189"
+<B> Up:</B> <A NAME="tex2html191"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html183"
+<B> Previous:</B> <A NAME="tex2html185"
   HREF="node4.html">3 Understanding tcpprep</A>
   HREF="node4.html">3 Understanding tcpprep</A>
- &nbsp; <B>  <A NAME="tex2html191"
+ &nbsp; <B>  <A NAME="tex2html193"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
@@ -56,22 +56,20 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html194"
-  HREF="node5.html#SECTION00051000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Can't open eth0: libnet_select_device(): Can't find interface eth0</A>
-<LI><A NAME="tex2html195"
-  HREF="node5.html#SECTION00052000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can't open lo: libnet_select_device(): Can't find interface lo</A>
 <LI><A NAME="tex2html196"
 <LI><A NAME="tex2html196"
-  HREF="node5.html#SECTION00053000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Can't open eth0: UID != 0</A>
+  HREF="node5.html#SECTION00051000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Can't open eth0: libnet_select_device(): Can't find interface eth0</A>
 <LI><A NAME="tex2html197"
 <LI><A NAME="tex2html197"
-  HREF="node5.html#SECTION00054000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> 100000 write attempts failed from full buffers and were repeated</A>
+  HREF="node5.html#SECTION00052000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can't open lo: libnet_select_device(): Can't find interface lo</A>
 <LI><A NAME="tex2html198"
 <LI><A NAME="tex2html198"
-  HREF="node5.html#SECTION00055000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Invalid mac address: 00:00:00:00:00:00</A>
+  HREF="node5.html#SECTION00053000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Can't open eth0: UID != 0</A>
 <LI><A NAME="tex2html199"
 <LI><A NAME="tex2html199"
-  HREF="node5.html#SECTION00056000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Unable to process test.cache: cache file version missmatch</A>
+  HREF="node5.html#SECTION00054000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> 100000 write attempts failed from full buffers and were repeated</A>
 <LI><A NAME="tex2html200"
 <LI><A NAME="tex2html200"
-  HREF="node5.html#SECTION00057000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Skipping SLL loopback packet.</A>
+  HREF="node5.html#SECTION00055000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Unable to process test.cache: cache file version missmatch</A>
 <LI><A NAME="tex2html201"
 <LI><A NAME="tex2html201"
-  HREF="node5.html#SECTION00058000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">8</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
+  HREF="node5.html#SECTION00056000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Skipping SLL loopback packet.</A>
+<LI><A NAME="tex2html202"
+  HREF="node5.html#SECTION00057000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
@@ -127,20 +125,7 @@ section in this document for suggestions on solving this problem.
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00055000000000000000">
 <H2><A NAME="SECTION00055000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Invalid mac address: 00:00:00:00:00:00</A>
-</H2>
-
-<P>
-Currently tcpreplay reserves the MAC address of 00:00:00:00:00:00
-as reserved for internal use. Hence you can't rewrite the MAC address
-of packets to be all zeros. While we intend to fix this someday it's
-not currently high on our priority list, so let us know if we should
-re-prioritize things.
-
-<P>
-
-<H2><A NAME="SECTION00056000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Unable to process test.cache: cache file version missmatch</A>
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">5</SPAN> Unable to process test.cache: cache file version missmatch</A>
 </H2>
 </H2>
 
 
 <P>
 <P>
@@ -178,8 +163,8 @@ systems.
 
 
 <P>
 <P>
 
 
-<H2><A NAME="SECTION00057000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Skipping SLL loopback packet.</A>
+<H2><A NAME="SECTION00056000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">6</SPAN> Skipping SLL loopback packet.</A>
 </H2>
 </H2>
 
 
 <P>
 <P>
@@ -191,8 +176,8 @@ allow tcpreplay to send these packets.
 
 
 <P>
 <P>
 
 
-<H2><A NAME="SECTION00058000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">8</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
+<H2><A NAME="SECTION00057000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">7</SPAN> Packet length (8892) is greater then MTU; skipping packet.</A>
 </H2>
 </H2>
 
 
 <P>
 <P>
@@ -200,37 +185,38 @@ The packet length (in this case 8892 bytes) is greater then the maximum
 transmition unit (MTU) on the outgoing interface. Tcpreplay must skip
 transmition unit (MTU) on the outgoing interface. Tcpreplay must skip
 the packet. Alternatively, you can specify the -T option and tcpreplay
 the packet. Alternatively, you can specify the -T option and tcpreplay
 will truncate the packet to the MTU size, fix the checksums and send
 will truncate the packet to the MTU size, fix the checksums and send
-it.
+it. This often occurs with pcaps captured over loopback interfaces
+which have much larger MTU's then ethernet.
 
 
 <P>
 <P>
 
 
 <DIV CLASS="navigation"><HR>
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
 <!--Navigation Panel-->
-<A NAME="tex2html192"
+<A NAME="tex2html194"
   HREF="node6.html">
   HREF="node6.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html188"
+<A NAME="tex2html190"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html182"
+<A NAME="tex2html184"
   HREF="node4.html">
   HREF="node4.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html190"
+<A NAME="tex2html192"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html193"
+<B> Next:</B> <A NAME="tex2html195"
   HREF="node6.html">5 Common Questions from</A>
   HREF="node6.html">5 Common Questions from</A>
-<B> Up:</B> <A NAME="tex2html189"
+<B> Up:</B> <A NAME="tex2html191"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html183"
+<B> Previous:</B> <A NAME="tex2html185"
   HREF="node4.html">3 Understanding tcpprep</A>
   HREF="node4.html">3 Understanding tcpprep</A>
- &nbsp; <B>  <A NAME="tex2html191"
+ &nbsp; <B>  <A NAME="tex2html193"
   HREF="node1.html">Contents</A></B> </DIV>
   HREF="node1.html">Contents</A></B> </DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 50 - 25
docs/web/FAQ/node6.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,26 +28,26 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html212"
+<A NAME="tex2html213"
   HREF="node7.html">
   HREF="node7.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html208"
+<A NAME="tex2html209"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html202"
+<A NAME="tex2html203"
   HREF="node5.html">
   HREF="node5.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html210"
+<A NAME="tex2html211"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html213"
-  HREF="node7.html">6 Required Libraries and</A>
-<B> Up:</B> <A NAME="tex2html209"
+<B> Next:</B> <A NAME="tex2html214"
+  HREF="node7.html">6 Testing Methodologies</A>
+<B> Up:</B> <A NAME="tex2html210"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html203"
+<B> Previous:</B> <A NAME="tex2html204"
   HREF="node5.html">4 Common Error and</A>
   HREF="node5.html">4 Common Error and</A>
- &nbsp; <B>  <A NAME="tex2html211"
+ &nbsp; <B>  <A NAME="tex2html212"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
@@ -56,12 +56,14 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html214"
-  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Why is tcpreplay not sending all the packets?</A>
 <LI><A NAME="tex2html215"
 <LI><A NAME="tex2html215"
-  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can tcpreplay read gzip/bzip2 compressed files?</A>
+  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Why is tcpreplay not sending all the packets?</A>
 <LI><A NAME="tex2html216"
 <LI><A NAME="tex2html216"
+  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Can tcpreplay read gzip/bzip2 compressed files?</A>
+<LI><A NAME="tex2html217"
   HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> How fast can tcpreplay send packets?</A>
   HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> How fast can tcpreplay send packets?</A>
+<LI><A NAME="tex2html218"
+  HREF="node6.html#SECTION00064000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Is tcpreplay stateful?</A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
@@ -146,7 +148,7 @@ and will likely reduce the overall performance of tcpreplay.
 
 
 <P>
 <P>
 First, if performance is important to you, then upgrading to tcpreplay
 First, if performance is important to you, then upgrading to tcpreplay
-3.x is worthwhile since it is more optimized then the 2.x series.
+3.x is worthwhile since it is more optimized then the 1.x or 2.x series.
 After that, there are a number of variables which effect performance,
 After that, there are a number of variables which effect performance,
 including on how you measure it (packets/sec or bytes/sec). 100Mbps
 including on how you measure it (packets/sec or bytes/sec). 100Mbps
 and 120K pps are quite doable. Generally speaking here are some points
 and 120K pps are quite doable. Generally speaking here are some points
@@ -172,37 +174,60 @@ using mergecap to generate a single large file.
 <LI>Network cards and drivers, disk speed (RPM is more important then
 <LI>Network cards and drivers, disk speed (RPM is more important then
 seek), amount of RAM and system bus speed are all important.
 seek), amount of RAM and system bus speed are all important.
 </LI>
 </LI>
+<LI>In general servers with faster disks and bus speeds will be faster
+then desktops which will be faster then laptops.
+</LI>
 </UL>
 </UL>
 
 
 <P>
 <P>
 
 
+<H2><A NAME="SECTION00064000000000000000">
+<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Is tcpreplay stateful?</A>
+</H2>
+
+<P>
+No. Tcpreplay processes each packet in the order it is stored in the
+pcap file. The default is to send each packet based on the timestamp
+stored in the pcap file. If your pcap file has packets out of order,
+tcpreplay will send them out of order. In certain situations a packet
+may have an earlier timestamp then the packet before it, tcpreplay
+will then send the second packet as soon as possible.
+
+<P>
+The basic point is that if your pcap file is well formed and has the
+packets in the correct order, then tcpreplay will create a ``stateful''
+packet stream. If your pcap file has errors, then tcpreplay will repeat
+those errors. Garbage in, garbage out.
+
+<P>
+
 <DIV CLASS="navigation"><HR>
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
 <!--Navigation Panel-->
-<A NAME="tex2html212"
+<A NAME="tex2html213"
   HREF="node7.html">
   HREF="node7.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html208"
+<A NAME="tex2html209"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html202"
+<A NAME="tex2html203"
   HREF="node5.html">
   HREF="node5.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html210"
+<A NAME="tex2html211"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html213"
-  HREF="node7.html">6 Required Libraries and</A>
-<B> Up:</B> <A NAME="tex2html209"
+<B> Next:</B> <A NAME="tex2html214"
+  HREF="node7.html">6 Testing Methodologies</A>
+<B> Up:</B> <A NAME="tex2html210"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html203"
+<B> Previous:</B> <A NAME="tex2html204"
   HREF="node5.html">4 Common Error and</A>
   HREF="node5.html">4 Common Error and</A>
- &nbsp; <B>  <A NAME="tex2html211"
+ &nbsp; <B>  <A NAME="tex2html212"
   HREF="node1.html">Contents</A></B> </DIV>
   HREF="node1.html">Contents</A></B> </DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 101 - 92
docs/web/FAQ/node7.html

@@ -1,20 +1,20 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 <HTML>
 <HTML>
 <HEAD>
 <HEAD>
-<TITLE>6 Required Libraries and Tools</TITLE>
-<META NAME="description" CONTENT="6 Required Libraries and Tools">
+<TITLE>6 Testing Methodologies</TITLE>
+<META NAME="description" CONTENT="6 Testing Methodologies">
 <META NAME="keywords" CONTENT="FAQ">
 <META NAME="keywords" CONTENT="FAQ">
 <META NAME="resource-type" CONTENT="document">
 <META NAME="resource-type" CONTENT="document">
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
@@ -28,150 +28,159 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html227"
+<A NAME="tex2html229"
   HREF="node8.html">
   HREF="node8.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html223"
+<A NAME="tex2html225"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html217"
+<A NAME="tex2html219"
   HREF="node6.html">
   HREF="node6.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html225"
+<A NAME="tex2html227"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html228"
-  HREF="node8.html">7 Other pcap tools</A>
-<B> Up:</B> <A NAME="tex2html224"
+<B> Next:</B> <A NAME="tex2html230"
+  HREF="node8.html">7 Required Libraries and</A>
+<B> Up:</B> <A NAME="tex2html226"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html218"
+<B> Previous:</B> <A NAME="tex2html220"
   HREF="node6.html">5 Common Questions from</A>
   HREF="node6.html">5 Common Questions from</A>
- &nbsp; <B>  <A NAME="tex2html226"
+ &nbsp; <B>  <A NAME="tex2html228"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
 <BR></DIV>
 <BR></DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
-<!--Table of Child-Links-->
-<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
-
-<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html229"
-  HREF="node7.html#SECTION00071000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
-<LI><A NAME="tex2html230"
-  HREF="node7.html#SECTION00072000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
-<LI><A NAME="tex2html231"
-  HREF="node7.html#SECTION00073000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
-<LI><A NAME="tex2html232"
-  HREF="node7.html#SECTION00074000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
-</UL>
-<!--End of Table of Child-Links-->
-<HR>
 
 
 <H1><A NAME="SECTION00070000000000000000">
 <H1><A NAME="SECTION00070000000000000000">
-<SPAN CLASS="arabic">6</SPAN> Required Libraries and Tools</A>
+<SPAN CLASS="arabic">6</SPAN> Testing Methodologies</A>
 </H1>
 </H1>
 
 
 <P>
 <P>
-
-<H2><A NAME="SECTION00071000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
-</H2>
+A topic which comes up regularly, is how to use tcpreplay to test
+products like intrusion detection/prevention devices (IDS/IPS) and
+deep inspection firewalls. Generally, I hear people suggest three
+things:
 
 
 <P>
 <P>
-As of tcpreplay v1.4, you'll need to have libpcap installed on your
-system. As of v2.0, you'll need at least version 0.6.0 or better,
-but I only test our code with the latest version. Libpcap can be obtained
-on the tcpdump homepage<A NAME="tex2html6"
-  HREF="#foot137"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A>. 
 
 
-<P>
+<OL>
+<LI>Use security scanners like Nessus
+</LI>
+<LI>Use ``real attacks'' like those generated by Metasploit
+</LI>
+<LI>Use a replay tool like tcpreplay to generate attack traffic
+</LI>
+</OL>
+First, let me say that security scanners like Nessus do a really crappy
+job of testing the effectiveness of IDS/IPS and firewalls. The simple
+reason is that security scanners don't try to exploit vulnerabilities
+because it creates problems on the network. IT managers don't like
+it when their servers start rebooting or routers crash, so scanners
+use other non-agressive techniques like banner grabbing to find potentially
+vulnerable systems. Simply put, these non-agressive techniques often
+look nothing like a real attack.
 
 
-<H2><A NAME="SECTION00072000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
-</H2>
+<P>
+That leaves generating ``real attacks'' and replay tools. 
 
 
 <P>
 <P>
-Tcpreplay v1.3 is the last version to support the old libnet API (everything
-before 1.1.x). As of v1.4 you will need to use Libnet 1.1.0 or better
-which can be obtained from the Libnet homepage<A NAME="tex2html7"
-  HREF="#foot138"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A>. 
+Advantages of real attacks:
 
 
 <P>
 <P>
 
 
-<H2><A NAME="SECTION00073000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
-</H2>
+<UL>
+<LI>It's clear when you have a valid test case because the target system
+is compromised
+</LI>
+<LI>Exploit code and attack tools are widely available for many attacks
+</LI>
+</UL>
+Disadvantages of real attacks:
 
 
 <P>
 <P>
-Starting with v2.0, tcpreplay can use libpcapnav to support the jump
-offset feature. If libpcapnav is not found on the system, that feature
-will be disabled. Libpcapnav can be found on the NetDude homepage<A NAME="tex2html8"
-  HREF="#foot139"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A>. 
+
+<UL>
+<LI>After the test case is run, the target system may be unstable or corrupted,
+requiring a reboot or re-install
+</LI>
+<LI>Generally requires two systems: a target (often running VMWare) and
+an attacker system
+</LI>
+<LI>Installing, configuring and managing various operating systems and
+applications to attack is a lot of work
+</LI>
+<LI>Difficult to automate test cases since there is no standardized interface
+to these tools
+</LI>
+<LI>You have to be careful about trojaned exploit code or worms which
+escape your lab
+</LI>
+</UL>
+Advantages of replay tools:
 
 
 <P>
 <P>
 
 
-<H2><A NAME="SECTION00074000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
-</H2>
+<UL>
+<LI>Since both the victim and attacker are virtual, there is no need to
+reboot/re-install systems after each test
+</LI>
+<LI>A complete test bed requires only a single system with two NIC's
+</LI>
+<LI>Once you have a library of pcap files, there is virtually zero management
+overhead
+</LI>
+<LI>Replay tools provide a common interface to emulating any attack against
+any OS/application making automation simple
+</LI>
+<LI>Pcap files are not executable, so trojans and escaping worms aren't
+an issue
+</LI>
+</UL>
+Disadvantages of replay tools;
 
 
 <P>
 <P>
-As of 2.0, tcpreplay uses tcpdump (the binary, not code) to decode
-packets to STDOUT in a human readable (with practice) format as it
-sends them. If you would like this feature, tcpdump must be installed
-on your system.
 
 
-<P>
-N<SMALL>OTE:</SMALL> The location of the tcpdump binary is hardcoded in
-tcpreplay at compile time. If tcpdump gets renamed or moved, the feature
-will become disabled.
+<UL>
+<LI>There are trust issues regarding pcap files. Are you 100% sure that
+pcap file is correct (not corrupted, doesn't have truncated packets,
+actually contains the valid exploit)
+</LI>
+<LI>There are few publicly available pcap's which contain attacks useful
+for testing so you must create your own
+</LI>
+</UL>
 
 
 <P>
 <P>
-<BR><HR><H4>Footnotes</H4>
-<DL>
-<DT><A NAME="foot137">... homepage</A><A
- HREF="node7.html#tex2html6"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
-<DD>http://www.tcpdump.org/
-
-</DD>
-<DT><A NAME="foot138">... homepage</A><A
- HREF="node7.html#tex2html7"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A></DT>
-<DD>http://www.packetfactory.net/Projects/Libnet/
-
-</DD>
-<DT><A NAME="foot139">... homepage</A><A
- HREF="node7.html#tex2html8"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A></DT>
-<DD>http://netdude.sourceforge.net/
-
-</DD>
-</DL>
+
 <DIV CLASS="navigation"><HR>
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
 <!--Navigation Panel-->
-<A NAME="tex2html227"
+<A NAME="tex2html229"
   HREF="node8.html">
   HREF="node8.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html223"
+<A NAME="tex2html225"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html217"
+<A NAME="tex2html219"
   HREF="node6.html">
   HREF="node6.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html225"
+<A NAME="tex2html227"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
-<B> Next:</B> <A NAME="tex2html228"
-  HREF="node8.html">7 Other pcap tools</A>
-<B> Up:</B> <A NAME="tex2html224"
+<B> Next:</B> <A NAME="tex2html230"
+  HREF="node8.html">7 Required Libraries and</A>
+<B> Up:</B> <A NAME="tex2html226"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html218"
+<B> Previous:</B> <A NAME="tex2html220"
   HREF="node6.html">5 Common Questions from</A>
   HREF="node6.html">5 Common Questions from</A>
- &nbsp; <B>  <A NAME="tex2html226"
+ &nbsp; <B>  <A NAME="tex2html228"
   HREF="node1.html">Contents</A></B> </DIV>
   HREF="node1.html">Contents</A></B> </DIV>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 97 - 89
docs/web/FAQ/node8.html

@@ -1,46 +1,52 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 <HTML>
 <HTML>
 <HEAD>
 <HEAD>
-<TITLE>7 Other pcap tools available</TITLE>
-<META NAME="description" CONTENT="7 Other pcap tools available">
+<TITLE>7 Required Libraries and Tools</TITLE>
+<META NAME="description" CONTENT="7 Required Libraries and Tools">
 <META NAME="keywords" CONTENT="FAQ">
 <META NAME="keywords" CONTENT="FAQ">
 <META NAME="resource-type" CONTENT="document">
 <META NAME="resource-type" CONTENT="document">
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 <LINK REL="STYLESHEET" HREF="FAQ.css">
 
 
+<LINK REL="next" HREF="node9.html">
 <LINK REL="previous" HREF="node7.html">
 <LINK REL="previous" HREF="node7.html">
 <LINK REL="up" HREF="FAQ.html">
 <LINK REL="up" HREF="FAQ.html">
+<LINK REL="next" HREF="node9.html">
 </HEAD>
 </HEAD>
 
 
 <BODY >
 <BODY >
 
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive" SRC="nx_grp_g.png"> 
+<A NAME="tex2html241"
+  HREF="node9.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
 <A NAME="tex2html237"
 <A NAME="tex2html237"
   HREF="FAQ.html">
   HREF="FAQ.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html235"
+<A NAME="tex2html231"
   HREF="node7.html">
   HREF="node7.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
 <A NAME="tex2html239"
 <A NAME="tex2html239"
   HREF="node1.html">
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
 <BR>
 <BR>
+<B> Next:</B> <A NAME="tex2html242"
+  HREF="node9.html">8 Other pcap tools</A>
 <B> Up:</B> <A NAME="tex2html238"
 <B> Up:</B> <A NAME="tex2html238"
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
   HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
-<B> Previous:</B> <A NAME="tex2html236"
-  HREF="node7.html">6 Required Libraries and</A>
+<B> Previous:</B> <A NAME="tex2html232"
+  HREF="node7.html">6 Testing Methodologies</A>
  &nbsp; <B>  <A NAME="tex2html240"
  &nbsp; <B>  <A NAME="tex2html240"
   HREF="node1.html">Contents</A></B> 
   HREF="node1.html">Contents</A></B> 
 <BR>
 <BR>
@@ -50,120 +56,122 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html241"
-  HREF="node8.html#SECTION00081000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
-<LI><A NAME="tex2html242"
-  HREF="node8.html#SECTION00082000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
 <LI><A NAME="tex2html243"
 <LI><A NAME="tex2html243"
-  HREF="node8.html#SECTION00083000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
+  HREF="node8.html#SECTION00081000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
+<LI><A NAME="tex2html244"
+  HREF="node8.html#SECTION00082000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
+<LI><A NAME="tex2html245"
+  HREF="node8.html#SECTION00083000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
+<LI><A NAME="tex2html246"
+  HREF="node8.html#SECTION00084000000000000000"><SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
 
 
 <H1><A NAME="SECTION00080000000000000000">
 <H1><A NAME="SECTION00080000000000000000">
-<SPAN CLASS="arabic">7</SPAN> Other pcap tools available</A>
+<SPAN CLASS="arabic">7</SPAN> Required Libraries and Tools</A>
 </H1>
 </H1>
 
 
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00081000000000000000">
 <H2><A NAME="SECTION00081000000000000000">
-<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
+<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> Libpcap</A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-
-<UL>
-<LI>tcpdump
-<BR>
-http://www.tcpdump.org/
-</LI>
-<LI>ethereal
-<BR>
-http://www.ethereal.com/
-</LI>
-<LI>ettercap
-<BR>
-http://ettercap.sourceforge.net/
-</LI>
-</UL>
+As of tcpreplay v1.4, you'll need to have libpcap installed on your
+system. As of v2.0, you'll need at least version 0.6.0 or better,
+but I only test our code with the latest version. Libpcap can be obtained
+on the tcpdump homepage<A NAME="tex2html6"
+  HREF="#foot154"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00082000000000000000">
 <H2><A NAME="SECTION00082000000000000000">
-<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">2</SPAN> Libnet</A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-
-<UL>
-<LI>tcpslice
-<BR>
-Splits pcap files into smaller files
-<BR>
-http://www.tcpdump.org/
-</LI>
-<LI>mergecap
-<BR>
-Merges two pcap capture files into one
-<BR>
-http://www.ethreal.com/
-</LI>
-<LI>pcapmerge
-<BR>
-Merges two or more pcap capture files into one
-<BR>
-http://tcpreplay.sourceforge.net/
-</LI>
-<LI>editcap
-<BR>
-Converts capture file formats (pcap, snoop, etc)
-<BR>
-http://www.ethreal.com/
-</LI>
-<LI>netdude
-<BR>
-GTK based pcap capture file editor. Allows editing most anything in
-the packet.
-<BR>
-http://netdude.sourceforge.net/
-</LI>
-</UL>
+Tcpreplay v1.3 is the last version to support the old libnet API (everything
+before 1.1.x). As of v1.4 you will need to use Libnet 1.1.0 or better
+which can be obtained from the Libnet homepage<A NAME="tex2html7"
+  HREF="#foot155"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00083000000000000000">
 <H2><A NAME="SECTION00083000000000000000">
-<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
+<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">3</SPAN> Libpcapnav</A>
 </H2>
 </H2>
 
 
 <P>
 <P>
+Starting with v2.0, tcpreplay can use libpcapnav to support the jump
+offset feature. If libpcapnav is not found on the system, that feature
+will be disabled. Libpcapnav can be found on the NetDude homepage<A NAME="tex2html8"
+  HREF="#foot156"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A>. 
 
 
-<UL>
-<LI>capinfo
-<BR>
-Prints statistics and basic information about a pcap file
-<BR>
-http://tcpreplay.sourceforge.net/
-</LI>
-<LI>text2pcap
-<BR>
-Generates a pcap capture file from a hex dump
-<BR>
-http://www.ethreal.com/
-</LI>
-<LI>tcpflow
-<BR>
-Extracts and reassembles the data portion on a per-flow basis on live
-traffic or pcap capture files
-<BR>
-http://www.circlemud.org/&nbsp;jelson/software/tcpflow/
-</LI>
-</UL>
+<P>
+
+<H2><A NAME="SECTION00084000000000000000">
+<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">4</SPAN> Tcpdump</A>
+</H2>
 
 
 <P>
 <P>
-<BR><HR>
+As of 2.0, tcpreplay uses tcpdump (the binary, not code) to decode
+packets to STDOUT in a human readable (with practice) format as it
+sends them. If you would like this feature, tcpdump must be installed
+on your system.
+
+<P>
+N<SMALL>OTE:</SMALL> The location of the tcpdump binary is hardcoded in tcpreplay
+at compile time. If tcpdump gets renamed or moved, the feature will
+become disabled.
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot154">... homepage</A><A
+ HREF="node8.html#tex2html6"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
+<DD>http://www.tcpdump.org/
+
+</DD>
+<DT><A NAME="foot155">... homepage</A><A
+ HREF="node8.html#tex2html7"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A></DT>
+<DD>http://www.packetfactory.net/Projects/Libnet/
+
+</DD>
+<DT><A NAME="foot156">... homepage</A><A
+ HREF="node8.html#tex2html8"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A></DT>
+<DD>http://netdude.sourceforge.net/
+
+</DD>
+</DL>
+<DIV CLASS="navigation"><HR>
+<!--Navigation Panel-->
+<A NAME="tex2html241"
+  HREF="node9.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
+<A NAME="tex2html237"
+  HREF="FAQ.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
+<A NAME="tex2html231"
+  HREF="node7.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
+<A NAME="tex2html239"
+  HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
+<BR>
+<B> Next:</B> <A NAME="tex2html242"
+  HREF="node9.html">8 Other pcap tools</A>
+<B> Up:</B> <A NAME="tex2html238"
+  HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
+<B> Previous:</B> <A NAME="tex2html232"
+  HREF="node7.html">6 Testing Methodologies</A>
+ &nbsp; <B>  <A NAME="tex2html240"
+  HREF="node1.html">Contents</A></B> </DIV>
+<!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 169 - 0
docs/web/FAQ/node9.html

@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>8 Other pcap tools available</TITLE>
+<META NAME="description" CONTENT="8 Other pcap tools available">
+<META NAME="keywords" CONTENT="FAQ">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="FAQ.css">
+
+<LINK REL="previous" HREF="node8.html">
+<LINK REL="up" HREF="FAQ.html">
+</HEAD>
+
+<BODY >
+
+<DIV CLASS="navigation"><!--Navigation Panel-->
+<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive" SRC="nx_grp_g.png"> 
+<A NAME="tex2html251"
+  HREF="FAQ.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
+<A NAME="tex2html249"
+  HREF="node8.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
+<A NAME="tex2html253"
+  HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
+<BR>
+<B> Up:</B> <A NAME="tex2html252"
+  HREF="FAQ.html">Tcpreplay 3.x FAQ</A>
+<B> Previous:</B> <A NAME="tex2html250"
+  HREF="node8.html">7 Required Libraries and</A>
+ &nbsp; <B>  <A NAME="tex2html254"
+  HREF="node1.html">Contents</A></B> 
+<BR>
+<BR></DIV>
+<!--End of Navigation Panel-->
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html255"
+  HREF="node9.html#SECTION00091000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
+<LI><A NAME="tex2html256"
+  HREF="node9.html#SECTION00092000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+<LI><A NAME="tex2html257"
+  HREF="node9.html#SECTION00093000000000000000"><SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
+</UL>
+<!--End of Table of Child-Links-->
+<HR>
+
+<H1><A NAME="SECTION00090000000000000000">
+<SPAN CLASS="arabic">8</SPAN> Other pcap tools available</A>
+</H1>
+
+<P>
+
+<H2><A NAME="SECTION00091000000000000000">
+<SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">1</SPAN> Tools to capture network traffic or decode pcap files</A>
+</H2>
+
+<P>
+
+<UL>
+<LI>tcpdump
+<BR>
+http://www.tcpdump.org/
+</LI>
+<LI>ethereal
+<BR>
+http://www.ethereal.com/
+</LI>
+<LI>ettercap
+<BR>
+http://ettercap.sourceforge.net/
+</LI>
+</UL>
+
+<P>
+
+<H2><A NAME="SECTION00092000000000000000">
+<SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tools to edit pcap files</A>
+</H2>
+
+<P>
+
+<UL>
+<LI>tcpslice
+<BR>
+Splits pcap files into smaller files
+<BR>
+http://www.tcpdump.org/
+</LI>
+<LI>mergecap
+<BR>
+Merges two pcap capture files into one
+<BR>
+http://www.ethreal.com/
+</LI>
+<LI>pcapmerge
+<BR>
+Merges two or more pcap capture files into one
+<BR>
+http://tcpreplay.sourceforge.net/
+</LI>
+<LI>editcap
+<BR>
+Converts capture file formats (pcap, snoop, etc)
+<BR>
+http://www.ethreal.com/
+</LI>
+<LI>netdude
+<BR>
+GTK based pcap capture file editor. Allows editing most anything in
+the packet.
+<BR>
+http://netdude.sourceforge.net/
+</LI>
+</UL>
+
+<P>
+
+<H2><A NAME="SECTION00093000000000000000">
+<SPAN CLASS="arabic">8</SPAN>.<SPAN CLASS="arabic">3</SPAN> Other useful tools</A>
+</H2>
+
+<P>
+
+<UL>
+<LI>capinfo
+<BR>
+Prints statistics and basic information about a pcap file
+<BR>
+http://tcpreplay.sourceforge.net/
+</LI>
+<LI>text2pcap
+<BR>
+Generates a pcap capture file from a hex dump
+<BR>
+http://www.ethreal.com/
+</LI>
+<LI>tcpflow
+<BR>
+Extracts and reassembles the data portion on a per-flow basis on live
+traffic or pcap capture files
+<BR>
+http://www.circlemud.org/&nbsp;jelson/software/tcpflow/
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Aaron Turner
+2006-07-17
+</ADDRESS>
+</BODY>
+</HTML>

+ 123 - 123
docs/web/flowreplay/flowreplay.css

@@ -33,140 +33,140 @@ DIV.navigation		{   }
 DIV.center		{   }
 DIV.center		{   }
 SPAN.arabic		{   }
 SPAN.arabic		{   }
 SPAN.textit		{ font-style: italic  }
 SPAN.textit		{ font-style: italic  }
-#hue100		{ color: #000000;  }
-#hue102		{ color: #000000;  }
-#hue104		{ color: #000000;  }
-#hue106		{ color: #000000;  }
-#hue108		{ color: #000000;  }
-#hue110		{ color: #000000;  }
-#hue112		{ color: #000000;  }
-#hue114		{ color: #000000;  }
-#hue117		{ color: #000000;  }
-#hue119		{ color: #000000;  }
-#hue121		{ color: #000000;  }
-#hue123		{ color: #000000;  }
-#hue126		{ color: #000000;  }
-#hue128		{ color: #000000;  }
-#hue133		{ color: #000000;  }
-#hue135		{ color: #000000;  }
-#hue139		{ color: #000000;  }
-#hue141		{ color: #000000;  }
-#hue143		{ color: #000000;  }
-#hue146		{ color: #000000;  }
-#hue150		{ color: #000000;  }
-#hue153		{ color: #000000;  }
-#hue157		{ color: #000000;  }
-#hue159		{ color: #000000;  }
-#hue162		{ color: #000000;  }
-#hue164		{ color: #000000;  }
-#hue166		{ color: #000000;  }
-#hue168		{ color: #000000;  }
-#hue170		{ color: #000000;  }
-#hue173		{ color: #000000;  }
-#hue175		{ color: #000000;  }
-#hue177		{ color: #000000;  }
-#hue179		{ color: #000000;  }
-#hue181		{ color: #000000;  }
-#hue184		{ color: #000000;  }
-#hue186		{ color: #000000;  }
-#hue188		{ color: #000000;  }
-#hue190		{ color: #000000;  }
-#hue193		{ color: #000000;  }
-#hue195		{ color: #000000;  }
-#hue197		{ color: #000000;  }
-#hue200		{ color: #000000;  }
-#hue202		{ color: #000000;  }
-#hue204		{ color: #000000;  }
-#hue207		{ color: #000000;  }
-#hue210		{ color: #000000;  }
-#hue212		{ color: #000000;  }
-#hue215		{ color: #000000;  }
-#hue218		{ color: #000000;  }
-#hue220		{ color: #000000;  }
-#hue231		{ color: #000000;  }
-#hue233		{ color: #000000;  }
-#hue238		{ color: #000000;  }
-#hue240		{ color: #000000;  }
-#hue247		{ color: #000000;  }
-#hue250		{ color: #000000;  }
-#hue252		{ color: #000000;  }
-#hue256		{ color: #000000;  }
-#hue258		{ color: #000000;  }
-#hue260		{ color: #000000;  }
-#hue263		{ color: #000000;  }
-#hue265		{ color: #000000;  }
-#hue267		{ color: #000000;  }
-#hue274		{ color: #000000;  }
-#hue276		{ color: #000000;  }
-#hue280		{ color: #000000;  }
-#hue282		{ color: #000000;  }
-#hue284		{ color: #000000;  }
-#hue288		{ color: #000000;  }
-#hue290		{ color: #000000;  }
-#hue292		{ color: #000000;  }
-#hue299		{ color: #000000;  }
-#hue309		{ color: #000000;  }
-#hue311		{ color: #000000;  }
-#hue314		{ color: #000000;  }
-#hue316		{ color: #000000;  }
-#hue318		{ color: #000000;  }
-#hue321		{ color: #000000;  }
-#hue324		{ color: #000000;  }
-#hue326		{ color: #000000;  }
-#hue328		{ color: #000000;  }
+#hue101		{ color: #000000;  }
+#hue103		{ color: #000000;  }
+#hue105		{ color: #000000;  }
+#hue107		{ color: #000000;  }
+#hue109		{ color: #000000;  }
+#hue111		{ color: #000000;  }
+#hue113		{ color: #000000;  }
+#hue115		{ color: #000000;  }
+#hue118		{ color: #000000;  }
+#hue120		{ color: #000000;  }
+#hue122		{ color: #000000;  }
+#hue124		{ color: #000000;  }
+#hue127		{ color: #000000;  }
+#hue129		{ color: #000000;  }
+#hue134		{ color: #000000;  }
+#hue136		{ color: #000000;  }
+#hue140		{ color: #000000;  }
+#hue142		{ color: #000000;  }
+#hue144		{ color: #000000;  }
+#hue147		{ color: #000000;  }
+#hue151		{ color: #000000;  }
+#hue154		{ color: #000000;  }
+#hue158		{ color: #000000;  }
+#hue160		{ color: #000000;  }
+#hue163		{ color: #000000;  }
+#hue165		{ color: #000000;  }
+#hue167		{ color: #000000;  }
+#hue169		{ color: #000000;  }
+#hue171		{ color: #000000;  }
+#hue174		{ color: #000000;  }
+#hue176		{ color: #000000;  }
+#hue178		{ color: #000000;  }
+#hue180		{ color: #000000;  }
+#hue182		{ color: #000000;  }
+#hue185		{ color: #000000;  }
+#hue187		{ color: #000000;  }
+#hue189		{ color: #000000;  }
+#hue191		{ color: #000000;  }
+#hue194		{ color: #000000;  }
+#hue196		{ color: #000000;  }
+#hue198		{ color: #000000;  }
+#hue201		{ color: #000000;  }
+#hue203		{ color: #000000;  }
+#hue205		{ color: #000000;  }
+#hue208		{ color: #000000;  }
+#hue211		{ color: #000000;  }
+#hue213		{ color: #000000;  }
+#hue216		{ color: #000000;  }
+#hue219		{ color: #000000;  }
+#hue221		{ color: #000000;  }
+#hue232		{ color: #000000;  }
+#hue234		{ color: #000000;  }
+#hue239		{ color: #000000;  }
+#hue241		{ color: #000000;  }
+#hue248		{ color: #000000;  }
+#hue251		{ color: #000000;  }
+#hue253		{ color: #000000;  }
+#hue257		{ color: #000000;  }
+#hue259		{ color: #000000;  }
+#hue261		{ color: #000000;  }
+#hue264		{ color: #000000;  }
+#hue266		{ color: #000000;  }
+#hue268		{ color: #000000;  }
+#hue275		{ color: #000000;  }
+#hue277		{ color: #000000;  }
+#hue281		{ color: #000000;  }
+#hue283		{ color: #000000;  }
+#hue285		{ color: #000000;  }
+#hue289		{ color: #000000;  }
+#hue291		{ color: #000000;  }
+#hue293		{ color: #000000;  }
+#hue300		{ color: #000000;  }
+#hue310		{ color: #000000;  }
+#hue312		{ color: #000000;  }
+#hue315		{ color: #000000;  }
+#hue317		{ color: #000000;  }
+#hue319		{ color: #000000;  }
+#hue322		{ color: #000000;  }
+#hue325		{ color: #000000;  }
+#hue327		{ color: #000000;  }
+#hue329		{ color: #000000;  }
 #hue33		{ color: #000000;  }
 #hue33		{ color: #000000;  }
-#hue330		{ color: #000000;  }
-#hue332		{ color: #000000;  }
-#hue335		{ color: #000000;  }
-#hue338		{ color: #000000;  }
-#hue340		{ color: #000000;  }
-#hue342		{ color: #000000;  }
-#hue344		{ color: #000000;  }
-#hue346		{ color: #000000;  }
-#hue348		{ color: #000000;  }
+#hue331		{ color: #000000;  }
+#hue333		{ color: #000000;  }
+#hue336		{ color: #000000;  }
+#hue339		{ color: #000000;  }
+#hue341		{ color: #000000;  }
+#hue343		{ color: #000000;  }
+#hue345		{ color: #000000;  }
+#hue347		{ color: #000000;  }
+#hue349		{ color: #000000;  }
 #hue35		{ color: #000000;  }
 #hue35		{ color: #000000;  }
-#hue365		{ color: #000000;  }
 #hue366		{ color: #000000;  }
 #hue366		{ color: #000000;  }
+#hue367		{ color: #000000;  }
 #hue37		{ color: #000000;  }
 #hue37		{ color: #000000;  }
-#hue375		{ color: #000000;  }
-#hue377		{ color: #000000;  }
-#hue379		{ color: #000000;  }
-#hue383		{ color: #000000;  }
+#hue376		{ color: #000000;  }
+#hue378		{ color: #000000;  }
+#hue380		{ color: #000000;  }
 #hue384		{ color: #000000;  }
 #hue384		{ color: #000000;  }
 #hue385		{ color: #000000;  }
 #hue385		{ color: #000000;  }
 #hue386		{ color: #000000;  }
 #hue386		{ color: #000000;  }
 #hue387		{ color: #000000;  }
 #hue387		{ color: #000000;  }
-#hue389		{ color: #000000;  }
+#hue388		{ color: #000000;  }
 #hue39		{ color: #000000;  }
 #hue39		{ color: #000000;  }
 #hue390		{ color: #000000;  }
 #hue390		{ color: #000000;  }
-#hue392		{ color: #000000;  }
-#hue394		{ color: #000000;  }
-#hue396		{ color: #000000;  }
+#hue391		{ color: #000000;  }
+#hue393		{ color: #000000;  }
+#hue395		{ color: #000000;  }
 #hue397		{ color: #000000;  }
 #hue397		{ color: #000000;  }
 #hue398		{ color: #000000;  }
 #hue398		{ color: #000000;  }
 #hue399		{ color: #000000;  }
 #hue399		{ color: #000000;  }
+#hue400		{ color: #000000;  }
 #hue41		{ color: #000000;  }
 #hue41		{ color: #000000;  }
-#hue43		{ color: #000000;  }
-#hue45		{ color: #000000;  }
-#hue47		{ color: #000000;  }
-#hue49		{ color: #000000;  }
-#hue51		{ color: #000000;  }
-#hue53		{ color: #000000;  }
-#hue55		{ color: #000000;  }
-#hue58		{ color: #000000;  }
-#hue60		{ color: #000000;  }
-#hue62		{ color: #000000;  }
-#hue64		{ color: #000000;  }
-#hue66		{ color: #000000;  }
-#hue68		{ color: #000000;  }
-#hue74		{ color: #000000;  }
-#hue77		{ color: #000000;  }
-#hue80		{ color: #000000;  }
-#hue82		{ color: #000000;  }
-#hue84		{ color: #000000;  }
-#hue86		{ color: #000000;  }
-#hue88		{ color: #000000;  }
-#hue90		{ color: #000000;  }
-#hue93		{ color: #000000;  }
-#hue95		{ color: #000000;  }
-#hue97		{ color: #000000;  }
+#hue44		{ color: #000000;  }
+#hue46		{ color: #000000;  }
+#hue48		{ color: #000000;  }
+#hue50		{ color: #000000;  }
+#hue52		{ color: #000000;  }
+#hue54		{ color: #000000;  }
+#hue56		{ color: #000000;  }
+#hue59		{ color: #000000;  }
+#hue61		{ color: #000000;  }
+#hue63		{ color: #000000;  }
+#hue65		{ color: #000000;  }
+#hue67		{ color: #000000;  }
+#hue69		{ color: #000000;  }
+#hue75		{ color: #000000;  }
+#hue78		{ color: #000000;  }
+#hue81		{ color: #000000;  }
+#hue83		{ color: #000000;  }
+#hue85		{ color: #000000;  }
+#hue87		{ color: #000000;  }
+#hue89		{ color: #000000;  }
+#hue91		{ color: #000000;  }
+#hue94		{ color: #000000;  }
+#hue96		{ color: #000000;  }
+#hue98		{ color: #000000;  }

+ 21 - 21
docs/web/flowreplay/flowreplay.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -53,63 +53,63 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BR><SPAN ID="hue41">October 23, 2003</SPAN></STRONG></P>
 <BR><SPAN ID="hue41">October 23, 2003</SPAN></STRONG></P>
 </DIV>
 </DIV>
 
 
-<P>
 
 
+<P>
 <BR><HR>
 <BR><HR>
 <!--Table of Child-Links-->
 <!--Table of Child-Links-->
 <A NAME="CHILD_LINKS"></A>
 <A NAME="CHILD_LINKS"></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
 <LI><A NAME="tex2html11"
 <LI><A NAME="tex2html11"
-  HREF="node1.html"><SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue43">Overview</SPAN></A>
+  HREF="node1.html"><SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue44">Overview</SPAN></A>
 <LI><A NAME="tex2html12"
 <LI><A NAME="tex2html12"
-  HREF="node2.html"><SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue53">Features</SPAN></A>
+  HREF="node2.html"><SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue54">Features</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html13"
 <LI><A NAME="tex2html13"
-  HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue55">Requirements</SPAN></A>
+  HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue56">Requirements</SPAN></A>
 <LI><A NAME="tex2html14"
 <LI><A NAME="tex2html14"
-  HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue77">Wishes</SPAN></A>
+  HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue78">Wishes</SPAN></A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html15"
 <LI><A NAME="tex2html15"
-  HREF="node3.html"><SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue93">Design Thoughts</SPAN></A>
+  HREF="node3.html"><SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue94">Design Thoughts</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html16"
 <LI><A NAME="tex2html16"
-  HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue95">Sending and Receiving traffic</SPAN></A>
+  HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue96">Sending and Receiving traffic</SPAN></A>
 <LI><A NAME="tex2html17"
 <LI><A NAME="tex2html17"
-  HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue119">Handling Multiple Connections</SPAN></A>
+  HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue120">Handling Multiple Connections</SPAN></A>
 <LI><A NAME="tex2html18"
 <LI><A NAME="tex2html18"
-  HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue128">Data Synchronization</SPAN></A>
+  HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue129">Data Synchronization</SPAN></A>
 <LI><A NAME="tex2html19"
 <LI><A NAME="tex2html19"
-  HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue133">TCP/IP</SPAN></A>
+  HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue134">TCP/IP</SPAN></A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html20"
 <LI><A NAME="tex2html20"
-  HREF="node4.html"><SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue141">Multiple Independent Flows</SPAN></A>
+  HREF="node4.html"><SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue142">Multiple Independent Flows</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html21"
 <LI><A NAME="tex2html21"
-  HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue157">IP Fragments and TCP Streams</SPAN></A>
+  HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue158">IP Fragments and TCP Streams</SPAN></A>
 <LI><A NAME="tex2html22"
 <LI><A NAME="tex2html22"
-  HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue193">Blocking</SPAN></A>
+  HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue194">Blocking</SPAN></A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html23"
 <LI><A NAME="tex2html23"
-  HREF="node5.html"><SPAN CLASS="arabic">5</SPAN> <SPAN ID="hue250">pcap vs flow File Format</SPAN></A>
+  HREF="node5.html"><SPAN CLASS="arabic">5</SPAN> <SPAN ID="hue251">pcap vs flow File Format</SPAN></A>
 <LI><A NAME="tex2html24"
 <LI><A NAME="tex2html24"
-  HREF="node6.html"><SPAN CLASS="arabic">6</SPAN> <SPAN ID="hue276">Plug-ins</SPAN></A>
+  HREF="node6.html"><SPAN CLASS="arabic">6</SPAN> <SPAN ID="hue277">Plug-ins</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html25"
 <LI><A NAME="tex2html25"
-  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue282">Plug-in Basics</SPAN></A>
+  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue283">Plug-in Basics</SPAN></A>
 <LI><A NAME="tex2html26"
 <LI><A NAME="tex2html26"
-  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue292">The Default Plug-in</SPAN></A>
+  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue293">The Default Plug-in</SPAN></A>
 <LI><A NAME="tex2html27"
 <LI><A NAME="tex2html27"
-  HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue309">Plug-in Details</SPAN></A>
+  HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue310">Plug-in Details</SPAN></A>
 </UL></UL>
 </UL></UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 32 - 32
docs/web/flowreplay/images.log

@@ -1,4 +1,4 @@
-This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2005.5.19)  7 AUG 2005 09:49
+This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2006.6.8)  17 JUL 2006 20:36
 entering extended mode
 entering extended mode
 **./images.tex
 **./images.tex
 (./images.tex
 (./images.tex
@@ -9,9 +9,9 @@ stonian, finnish, greek, icelandic, irish, italian, latin, magyar, norsk, polis
 h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur
 h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur
 kish, ukrainian, nohyphenation, loaded.
 kish, ukrainian, nohyphenation, loaded.
 
 
-(/sw/share/texmf-dist/tex/latex/base/article.cls
+(/opt/local/share/texmf-dist/tex/latex/base/article.cls
 Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
 Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
-(/sw/share/texmf-dist/tex/latex/base/size10.clo
+(/opt/local/share/texmf-dist/tex/latex/base/size10.clo
 File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
 File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
 )
 )
 \c@part=\count79
 \c@part=\count79
@@ -25,9 +25,9 @@ File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
 \abovecaptionskip=\skip41
 \abovecaptionskip=\skip41
 \belowcaptionskip=\skip42
 \belowcaptionskip=\skip42
 \bibindent=\dimen102
 \bibindent=\dimen102
-) (/sw/share/texmf-dist/tex/latex/base/ifthen.sty
+) (/opt/local/share/texmf-dist/tex/latex/base/ifthen.sty
 Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
 Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
-) (/sw/share/texmf-dist/tex/latex/pslatex/pslatex.sty
+) (/opt/local/share/texmf-dist/tex/latex/pslatex/pslatex.sty
 Package: pslatex 1996/07/24 v1.2 pslatex emulation (DPC)
 Package: pslatex 1996/07/24 v1.2 pslatex emulation (DPC)
 LaTeX Font Info:    Redeclaring symbol font `operators' on input line 65.
 LaTeX Font Info:    Redeclaring symbol font `operators' on input line 65.
 LaTeX Font Info:    Overwriting symbol font `operators' in version `normal'
 LaTeX Font Info:    Overwriting symbol font `operators' in version `normal'
@@ -61,18 +61,18 @@ LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `normal'
 (Font)                  OT1/cmr/m/it --> OT1/ptm/m/it on input line 75.
 (Font)                  OT1/cmr/m/it --> OT1/ptm/m/it on input line 75.
 LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `bold'
 LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `bold'
 (Font)                  OT1/cmr/bx/it --> OT1/ptm/m/it on input line 75.
 (Font)                  OT1/cmr/bx/it --> OT1/ptm/m/it on input line 75.
-) (/sw/share/texmf-dist/tex/latex/base/fontenc.sty
+) (/opt/local/share/texmf-dist/tex/latex/base/fontenc.sty
 Package: fontenc 2004/02/22 v1.99f Standard LaTeX package
 Package: fontenc 2004/02/22 v1.99f Standard LaTeX package
-(/sw/share/texmf-dist/tex/latex/base/t1enc.def
+(/opt/local/share/texmf-dist/tex/latex/base/t1enc.def
 File: t1enc.def 2004/02/22 v1.99f Standard LaTeX file
 File: t1enc.def 2004/02/22 v1.99f Standard LaTeX file
 LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
 LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
-)) (/sw/share/texmf-dist/tex/latex/base/inputenc.sty
+)) (/opt/local/share/texmf-dist/tex/latex/base/inputenc.sty
 Package: inputenc 2004/02/05 v1.0d Input encoding file
 Package: inputenc 2004/02/05 v1.0d Input encoding file
-(/sw/share/texmf-dist/tex/latex/base/latin1.def
+(/opt/local/share/texmf-dist/tex/latex/base/latin1.def
 File: latin1.def 2004/02/05 v1.0d Input encoding file
 File: latin1.def 2004/02/05 v1.0d Input encoding file
-)) (/sw/share/texmf-dist/tex/latex/geometry/geometry.sty
+)) (/opt/local/share/texmf-dist/tex/latex/geometry/geometry.sty
 Package: geometry 2002/07/08 v3.2 Page Geometry
 Package: geometry 2002/07/08 v3.2 Page Geometry
-(/sw/share/texmf-dist/tex/latex/graphics/keyval.sty
+(/opt/local/share/texmf-dist/tex/latex/graphics/keyval.sty
 Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \KV@toks@=\toks14
 \KV@toks@=\toks14
 )
 )
@@ -84,40 +84,40 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \Gm@odd@mp=\dimen105
 \Gm@odd@mp=\dimen105
 \Gm@even@mp=\dimen106
 \Gm@even@mp=\dimen106
 \Gm@dimlist=\toks15
 \Gm@dimlist=\toks15
-(/sw/share/texmf-dist/tex/latex/geometry/geometry.cfg)) (/sw/share/texmf-dist/t
-ex/latex/graphics/color.sty
+(/opt/local/share/texmf-dist/tex/latex/geometry/geometry.cfg)) (/opt/local/shar
+e/texmf-dist/tex/latex/tools/verbatim.sty
+Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
+\every@verbatim=\toks16
+\verbatim@line=\toks17
+\verbatim@in@stream=\read1
+) (/opt/local/share/texmf-dist/tex/latex/graphics/color.sty
 Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC)
 Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC)
-(/sw/share/texmf-dist/tex/latex/graphics/color.cfg
+(/opt/local/share/texmf-dist/tex/latex/graphics/color.cfg
 File: color.cfg 2005/02/03 v1.3 color configuration of teTeX/TeXLive
 File: color.cfg 2005/02/03 v1.3 color configuration of teTeX/TeXLive
 )
 )
 Package color Info: Driver file: dvips.def on input line 125.
 Package color Info: Driver file: dvips.def on input line 125.
-(/sw/share/texmf-dist/tex/latex/graphics/dvips.def
+(/opt/local/share/texmf-dist/tex/latex/graphics/dvips.def
 File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
 File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
-) (/sw/share/texmf-dist/tex/latex/graphics/dvipsnam.def
+) (/opt/local/share/texmf-dist/tex/latex/graphics/dvipsnam.def
 File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
 File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
-)) (/sw/share/texmf-dist/tex/latex/graphics/graphicx.sty
+)) (/opt/local/share/texmf-dist/tex/latex/graphics/graphicx.sty
 Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
 Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
-(/sw/share/texmf-dist/tex/latex/graphics/graphics.sty
+(/opt/local/share/texmf-dist/tex/latex/graphics/graphics.sty
 Package: graphics 2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)
 Package: graphics 2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)
-(/sw/share/texmf-dist/tex/latex/graphics/trig.sty
+(/opt/local/share/texmf-dist/tex/latex/graphics/trig.sty
 Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
 Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
-) (/sw/share/texmf-dist/tex/latex/graphics/graphics.cfg
+) (/opt/local/share/texmf-dist/tex/latex/graphics/graphics.cfg
 File: graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive
 File: graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive
 )
 )
 Package graphics Info: Driver file: dvips.def on input line 80.
 Package graphics Info: Driver file: dvips.def on input line 80.
 )
 )
 \Gin@req@height=\dimen107
 \Gin@req@height=\dimen107
 \Gin@req@width=\dimen108
 \Gin@req@width=\dimen108
-) (/sw/share/texmf-dist/tex/latex/tools/verbatim.sty
-Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
-\every@verbatim=\toks16
-\verbatim@line=\toks17
-\verbatim@in@stream=\read1
-) (/sw/share/texmf-dist/tex/generic/babel/babel.sty
+) (/opt/local/share/texmf-dist/tex/generic/babel/babel.sty
 Package: babel 2004/11/20 v3.8d The Babel package
 Package: babel 2004/11/20 v3.8d The Babel package
-(/sw/share/texmf-dist/tex/generic/babel/english.ldf
+(/opt/local/share/texmf-dist/tex/generic/babel/english.ldf
 Language: english 2004/06/14 v3.3o English support from the babel system
 Language: english 2004/06/14 v3.3o English support from the babel system
-(/sw/share/texmf-dist/tex/generic/babel/babel.def
+(/opt/local/share/texmf-dist/tex/generic/babel/babel.def
 File: babel.def 2004/11/20 v3.8d Babel common definitions
 File: babel.def 2004/11/20 v3.8d Babel common definitions
 \babel@savecnt=\count90
 \babel@savecnt=\count90
 \U@D=\dimen109
 \U@D=\dimen109
@@ -142,7 +142,7 @@ LaTeX Font Info:    ... okay on input line 146.
 LaTeX Font Info:    Checking defaults for OMS/pzccm/m/n on input line 146.
 LaTeX Font Info:    Checking defaults for OMS/pzccm/m/n on input line 146.
 LaTeX Font Info:    Try loading font information for OMS+pzccm on input line 14
 LaTeX Font Info:    Try loading font information for OMS+pzccm on input line 14
 6.
 6.
-(/sw/share/texmf-dist/tex/latex/psnfss/omspzccm.fd
+(/opt/local/share/texmf-dist/tex/latex/psnfss/omspzccm.fd
 File: omspzccm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/pzccm.
 File: omspzccm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/pzccm.
 )
 )
 LaTeX Font Info:    ... okay on input line 146.
 LaTeX Font Info:    ... okay on input line 146.
@@ -222,7 +222,7 @@ Overfull \hbox (81.60875pt too wide) detected at line 186
  [] 
  [] 
  []
  []
 
 
-l2hSize :tex2html_wrap1114:471.7625pt::0.0pt::349.0pt.
+l2hSize :tex2html_wrap1117:471.7625pt::0.0pt::349.0pt.
 [1
 [1
 
 
 
 
@@ -230,11 +230,11 @@ l2hSize :tex2html_wrap1114:471.7625pt::0.0pt::349.0pt.
 ] (./images.aux) ) 
 ] (./images.aux) ) 
 Here is how much of TeX's memory you used:
 Here is how much of TeX's memory you used:
  1887 strings out of 94501
  1887 strings out of 94501
- 23624 string characters out of 1176137
+ 23995 string characters out of 1174997
  72744 words of memory out of 1000000
  72744 words of memory out of 1000000
  5071 multiletter control sequences out of 10000+50000
  5071 multiletter control sequences out of 10000+50000
  5791 words of font info for 16 fonts, out of 500000 for 2000
  5791 words of font info for 16 fonts, out of 500000 for 2000
  580 hyphenation exceptions out of 1000
  580 hyphenation exceptions out of 1000
- 25i,5n,21p,201b,194s stack positions out of 1500i,500n,5000p,200000b,5000s
+ 25i,5n,21p,201b,197s stack positions out of 1500i,500n,5000p,200000b,5000s
 
 
 Output written on images.dvi (1 page, 324 bytes).
 Output written on images.dvi (1 page, 324 bytes).

+ 3 - 3
docs/web/flowreplay/images.pl

@@ -1,12 +1,12 @@
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # Associate images original text with physical files.
 # Associate images original text with physical files.
 
 
 
 
-$key = q/includegraphics{flowheader.eps};AAT/;
+$key = q/includegraphics{flowheader};AAT/;
 $cached_env_img{$key} = q|<IMG
 $cached_env_img{$key} = q|<IMG
  WIDTH="668" HEIGHT="748" ALIGN="BOTTOM" BORDER="0"
  WIDTH="668" HEIGHT="748" ALIGN="BOTTOM" BORDER="0"
  SRC="|."$dir".q|img1.png"
  SRC="|."$dir".q|img1.png"
- ALT="\includegraphics{flowheader.eps}">|; 
+ ALT="\includegraphics{flowheader}">|; 
 
 
 1;
 1;
 
 

+ 12 - 12
docs/web/flowreplay/images.tex

@@ -14,23 +14,23 @@
 \setlength \parskip{\medskipamount}
 \setlength \parskip{\medskipamount}
 
 
 \setlength \parindent{0pt}
 \setlength \parindent{0pt}
+\usepackage{verbatim}
 \usepackage{color}
 \usepackage{color}
 \usepackage{graphicx}
 \usepackage{graphicx}
 
 
 
 
 \makeatletter
 \makeatletter
-\usepackage{verbatim}
- 
+
 %
 %
 \newenvironment{lyxcode}{\begin{list}{}{
 \newenvironment{lyxcode}{\begin{list}{}{
-     \setlength{\rightmargin}{\leftmargin}
-     \setlength{\listparindent}{0pt}% needed for AMS classes
-     \raggedright
-     \setlength{\itemsep}{0pt}
-     \setlength{\parsep}{0pt}
-     \normalfont\ttfamily}%
-    \item[]}
-   {\end{list}} 
+\setlength{\rightmargin}{\leftmargin}
+\setlength{\listparindent}{0pt}% needed for AMS classes
+\raggedright
+\setlength{\itemsep}{0pt}
+\setlength{\parsep}{0pt}
+\normalfont\ttfamily}%
+ \item[]}
+{\end{list}} 
 
 
 
 
 \AtBeginDocument{
 \AtBeginDocument{
@@ -180,8 +180,8 @@
 \stepcounter{subsection}
 \stepcounter{subsection}
 \stepcounter{section}
 \stepcounter{section}
 {\newpage\clearpage
 {\newpage\clearpage
-\lthtmlpictureA{tex2html_wrap1114}%
-\includegraphics{flowheader.eps}%
+\lthtmlpictureA{tex2html_wrap1117}%
+\includegraphics{flowheader}%
 \lthtmlpictureZ
 \lthtmlpictureZ
 \lthtmlcheckvsize\clearpage}
 \lthtmlcheckvsize\clearpage}
 
 

BIN
docs/web/flowreplay/img1.old


BIN
docs/web/flowreplay/img1.png


+ 21 - 21
docs/web/flowreplay/index.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -53,63 +53,63 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BR><SPAN ID="hue41">October 23, 2003</SPAN></STRONG></P>
 <BR><SPAN ID="hue41">October 23, 2003</SPAN></STRONG></P>
 </DIV>
 </DIV>
 
 
-<P>
 
 
+<P>
 <BR><HR>
 <BR><HR>
 <!--Table of Child-Links-->
 <!--Table of Child-Links-->
 <A NAME="CHILD_LINKS"></A>
 <A NAME="CHILD_LINKS"></A>
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
 <LI><A NAME="tex2html11"
 <LI><A NAME="tex2html11"
-  HREF="node1.html"><SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue43">Overview</SPAN></A>
+  HREF="node1.html"><SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue44">Overview</SPAN></A>
 <LI><A NAME="tex2html12"
 <LI><A NAME="tex2html12"
-  HREF="node2.html"><SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue53">Features</SPAN></A>
+  HREF="node2.html"><SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue54">Features</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html13"
 <LI><A NAME="tex2html13"
-  HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue55">Requirements</SPAN></A>
+  HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue56">Requirements</SPAN></A>
 <LI><A NAME="tex2html14"
 <LI><A NAME="tex2html14"
-  HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue77">Wishes</SPAN></A>
+  HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue78">Wishes</SPAN></A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html15"
 <LI><A NAME="tex2html15"
-  HREF="node3.html"><SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue93">Design Thoughts</SPAN></A>
+  HREF="node3.html"><SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue94">Design Thoughts</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html16"
 <LI><A NAME="tex2html16"
-  HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue95">Sending and Receiving traffic</SPAN></A>
+  HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue96">Sending and Receiving traffic</SPAN></A>
 <LI><A NAME="tex2html17"
 <LI><A NAME="tex2html17"
-  HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue119">Handling Multiple Connections</SPAN></A>
+  HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue120">Handling Multiple Connections</SPAN></A>
 <LI><A NAME="tex2html18"
 <LI><A NAME="tex2html18"
-  HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue128">Data Synchronization</SPAN></A>
+  HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue129">Data Synchronization</SPAN></A>
 <LI><A NAME="tex2html19"
 <LI><A NAME="tex2html19"
-  HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue133">TCP/IP</SPAN></A>
+  HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue134">TCP/IP</SPAN></A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html20"
 <LI><A NAME="tex2html20"
-  HREF="node4.html"><SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue141">Multiple Independent Flows</SPAN></A>
+  HREF="node4.html"><SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue142">Multiple Independent Flows</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html21"
 <LI><A NAME="tex2html21"
-  HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue157">IP Fragments and TCP Streams</SPAN></A>
+  HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue158">IP Fragments and TCP Streams</SPAN></A>
 <LI><A NAME="tex2html22"
 <LI><A NAME="tex2html22"
-  HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue193">Blocking</SPAN></A>
+  HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue194">Blocking</SPAN></A>
 </UL>
 </UL>
 <BR>
 <BR>
 <LI><A NAME="tex2html23"
 <LI><A NAME="tex2html23"
-  HREF="node5.html"><SPAN CLASS="arabic">5</SPAN> <SPAN ID="hue250">pcap vs flow File Format</SPAN></A>
+  HREF="node5.html"><SPAN CLASS="arabic">5</SPAN> <SPAN ID="hue251">pcap vs flow File Format</SPAN></A>
 <LI><A NAME="tex2html24"
 <LI><A NAME="tex2html24"
-  HREF="node6.html"><SPAN CLASS="arabic">6</SPAN> <SPAN ID="hue276">Plug-ins</SPAN></A>
+  HREF="node6.html"><SPAN CLASS="arabic">6</SPAN> <SPAN ID="hue277">Plug-ins</SPAN></A>
 <UL>
 <UL>
 <LI><A NAME="tex2html25"
 <LI><A NAME="tex2html25"
-  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue282">Plug-in Basics</SPAN></A>
+  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue283">Plug-in Basics</SPAN></A>
 <LI><A NAME="tex2html26"
 <LI><A NAME="tex2html26"
-  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue292">The Default Plug-in</SPAN></A>
+  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue293">The Default Plug-in</SPAN></A>
 <LI><A NAME="tex2html27"
 <LI><A NAME="tex2html27"
-  HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue309">Plug-in Details</SPAN></A>
+  HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue310">Plug-in Details</SPAN></A>
 </UL></UL>
 </UL></UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 2 - 2
docs/web/flowreplay/labels.pl

@@ -1,11 +1,11 @@
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # Associate labels original text with physical files.
 # Associate labels original text with physical files.
 
 
 
 
 1;
 1;
 
 
 
 
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # labels from external_latex_labels array.
 # labels from external_latex_labels array.
 
 
 
 

+ 9 - 9
docs/web/flowreplay/node1.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -49,12 +49,12 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 
 
 <H1><A NAME="SECTION00010000000000000000">
 <H1><A NAME="SECTION00010000000000000000">
-<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue43">Overview</SPAN></A>
+<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue44">Overview</SPAN></A>
 </H1>
 </H1>
 
 
 <P>
 <P>
-<SPAN ID="hue45">Tcpreplay</SPAN><A NAME="tex2html1"
-  HREF="#foot362"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A> <SPAN ID="hue49">was designed to replay traffic previously captured
+<SPAN ID="hue46">Tcpreplay</SPAN><A NAME="tex2html1"
+  HREF="#foot363"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A> <SPAN ID="hue50">was designed to replay traffic previously captured
 in the pcap format back onto the wire for testing NIDS and other passive
 in the pcap format back onto the wire for testing NIDS and other passive
 devices. Over time, it was enhanced to be able to test in-line network
 devices. Over time, it was enhanced to be able to test in-line network
 devices. However, a re-occurring feature request for tcpreplay is
 devices. However, a re-occurring feature request for tcpreplay is
@@ -63,7 +63,7 @@ stacks. It was determined early on, that adding this feature to tcpreplay
 was far too complex, so I decided to create a new tool specifically
 was far too complex, so I decided to create a new tool specifically
 designed for this.</SPAN>
 designed for this.</SPAN>
 <P>
 <P>
-<SPAN ID="hue51">Flowreplay is designed to replay traffic at Layer
+<SPAN ID="hue52">Flowreplay is designed to replay traffic at Layer
 4 or 7 depending on the protocol rather then at Layer 2 like tcpreplay
 4 or 7 depending on the protocol rather then at Layer 2 like tcpreplay
 does. This allows flowreplay to connect to one or more servers using
 does. This allows flowreplay to connect to one or more servers using
 a pcap savefile as the basis of the connections. Hence, flowreplay
 a pcap savefile as the basis of the connections. Hence, flowreplay
@@ -72,16 +72,16 @@ then passive devices. </SPAN>
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
 <DL>
 <DL>
-<DT><A NAME="foot362">...Tcpreplay</A><A
+<DT><A NAME="foot363">...Tcpreplay</A><A
  HREF="node1.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
  HREF="node1.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue47">http://tcpreplay.sourceforge.net/</SPAN>
+<DD><SPAN ID="hue48">http://tcpreplay.sourceforge.net/</SPAN>
 
 
 </DD>
 </DD>
 </DL>
 </DL>
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 23 - 23
docs/web/flowreplay/node2.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -52,49 +52,49 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
 <LI><A NAME="tex2html48"
 <LI><A NAME="tex2html48"
-  HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue55">Requirements</SPAN></A>
+  HREF="node2.html#SECTION00021000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue56">Requirements</SPAN></A>
 <LI><A NAME="tex2html49"
 <LI><A NAME="tex2html49"
-  HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue77">Wishes</SPAN></A>
+  HREF="node2.html#SECTION00022000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue78">Wishes</SPAN></A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
 
 
 <H1><A NAME="SECTION00020000000000000000">
 <H1><A NAME="SECTION00020000000000000000">
-<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue53">Features</SPAN></A>
+<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue54">Features</SPAN></A>
 </H1>
 </H1>
 
 
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00021000000000000000">
 <H2><A NAME="SECTION00021000000000000000">
-<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue55">Requirements</SPAN></A>
+<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue56">Requirements</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue58">Full TCP/IP support, including IP fragments and
+<LI><SPAN ID="hue59">Full TCP/IP support, including IP fragments and
 TCP stream reassembly.</SPAN>
 TCP stream reassembly.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue60">Support replaying TCP and UDP flows.</SPAN>
+<LI><SPAN ID="hue61">Support replaying TCP and UDP flows.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue62">Code should handle each flow/service independently.</SPAN>
+<LI><SPAN ID="hue63">Code should handle each flow/service independently.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue64">Should be able to connect to the server(s) in the
+<LI><SPAN ID="hue65">Should be able to connect to the server(s) in the
 pcap file or to a user specified IP address.</SPAN>
 pcap file or to a user specified IP address.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue66">Support a plug-in architecture to allow adding application
+<LI><SPAN ID="hue67">Support a plug-in architecture to allow adding application
 layer intelligence.</SPAN>
 layer intelligence.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue68">Plug-ins must be able to support multi-flow protocols
+<LI><SPAN ID="hue69">Plug-ins must be able to support multi-flow protocols
 like FTP.</SPAN>
 like FTP.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue365">Ship with a default plug-in which will work ``well
+<LI><SPAN ID="hue366">Ship with a default plug-in which will work ``well
 enough'' for simple single-flow protocols like HTTP and telnet.</SPAN>
 enough'' for simple single-flow protocols like HTTP and telnet.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue366">Flows being replayed ``correctly'' is more important
+<LI><SPAN ID="hue367">Flows being replayed ``correctly'' is more important
 then performance (Mbps).</SPAN>
 then performance (Mbps).</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue74">Portable to run on common flavors of Unix and Unix-like
+<LI><SPAN ID="hue75">Portable to run on common flavors of Unix and Unix-like
 systems.</SPAN>
 systems.</SPAN>
 </LI>
 </LI>
 </OL>
 </OL>
@@ -102,28 +102,28 @@ systems.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00022000000000000000">
 <H2><A NAME="SECTION00022000000000000000">
-<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue77">Wishes</SPAN></A>
+<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue78">Wishes</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue80">Support clients connecting to flowreplay on a limited
+<LI><SPAN ID="hue81">Support clients connecting to flowreplay on a limited
 basis. Flowreplay would replay the server side of the connection.</SPAN>
 basis. Flowreplay would replay the server side of the connection.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue82">Support other IP based traffic (ICMP, VRRP, OSPF,
+<LI><SPAN ID="hue83">Support other IP based traffic (ICMP, VRRP, OSPF,
 etc) via plug-ins.</SPAN>
 etc) via plug-ins.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue84">Support non-IP traffic (ARP, STP, CDP, etc) via
+<LI><SPAN ID="hue85">Support non-IP traffic (ARP, STP, CDP, etc) via
 plug-ins.</SPAN>
 plug-ins.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue86">Limit which flows are replayed using user defined
+<LI><SPAN ID="hue87">Limit which flows are replayed using user defined
 filters. (bpf filter syntax?)</SPAN>
 filters. (bpf filter syntax?)</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue88">Process pcap files directly with no intermediary
+<LI><SPAN ID="hue89">Process pcap files directly with no intermediary
 file conversions.</SPAN>
 file conversions.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue90">Should be able to scale to pcap files in the 100's
+<LI><SPAN ID="hue91">Should be able to scale to pcap files in the 100's
 of MB in size and 100+ simultaneous flows on a P3 500MHz w/ 256MB
 of MB in size and 100+ simultaneous flows on a P3 500MHz w/ 256MB
 of RAM.</SPAN>
 of RAM.</SPAN>
 </LI>
 </LI>
@@ -152,7 +152,7 @@ of RAM.</SPAN>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 34 - 34
docs/web/flowreplay/node3.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -52,74 +52,74 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
 <LI><A NAME="tex2html60"
 <LI><A NAME="tex2html60"
-  HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue95">Sending and Receiving traffic</SPAN></A>
+  HREF="node3.html#SECTION00031000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue96">Sending and Receiving traffic</SPAN></A>
 <LI><A NAME="tex2html61"
 <LI><A NAME="tex2html61"
-  HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue119">Handling Multiple Connections</SPAN></A>
+  HREF="node3.html#SECTION00032000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue120">Handling Multiple Connections</SPAN></A>
 <LI><A NAME="tex2html62"
 <LI><A NAME="tex2html62"
-  HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue128">Data Synchronization</SPAN></A>
+  HREF="node3.html#SECTION00033000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue129">Data Synchronization</SPAN></A>
 <LI><A NAME="tex2html63"
 <LI><A NAME="tex2html63"
-  HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue133">TCP/IP</SPAN></A>
+  HREF="node3.html#SECTION00034000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue134">TCP/IP</SPAN></A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
 
 
 <H1><A NAME="SECTION00030000000000000000">
 <H1><A NAME="SECTION00030000000000000000">
-<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue93">Design Thoughts</SPAN></A>
+<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue94">Design Thoughts</SPAN></A>
 </H1>
 </H1>
 
 
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00031000000000000000">
 <H2><A NAME="SECTION00031000000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue95">Sending and Receiving traffic</SPAN></A>
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue96">Sending and Receiving traffic</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue97">Flowreplay must be able to process multiple connections
+<SPAN ID="hue98">Flowreplay must be able to process multiple connections
 to one or more devices. There are two options:</SPAN>
 to one or more devices. There are two options:</SPAN>
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue100">Use sockets</SPAN><A NAME="tex2html2"
-  HREF="#foot370"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A> <SPAN ID="hue104">to send and receive data</SPAN>
+<LI><SPAN ID="hue101">Use sockets</SPAN><A NAME="tex2html2"
+  HREF="#foot371"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A> <SPAN ID="hue105">to send and receive data</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue106">Use libpcap</SPAN><A NAME="tex2html3"
-  HREF="#foot371"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A> <SPAN ID="hue110">to receive packets and libnet</SPAN><A NAME="tex2html4"
-  HREF="#foot372"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A> <SPAN ID="hue114">to send packets</SPAN>
+<LI><SPAN ID="hue107">Use libpcap</SPAN><A NAME="tex2html3"
+  HREF="#foot372"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A> <SPAN ID="hue111">to receive packets and libnet</SPAN><A NAME="tex2html4"
+  HREF="#foot373"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A> <SPAN ID="hue115">to send packets</SPAN>
 </LI>
 </LI>
 </OL>
 </OL>
-<SPAN ID="hue117">Although using libpcap/libnet would allow more simultaneous
+<SPAN ID="hue118">Although using libpcap/libnet would allow more simultaneous
 connections and greater flexibility, there would be a very high complexity
 connections and greater flexibility, there would be a very high complexity
 cost associated with it. With that in mind, I've decided to use sockets
 cost associated with it. With that in mind, I've decided to use sockets
 to send and receive data.</SPAN>
 to send and receive data.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00032000000000000000">
 <H2><A NAME="SECTION00032000000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue119">Handling Multiple Connections</SPAN></A>
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue120">Handling Multiple Connections</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue121">Because a pcap file can contain multiple simultaneous
+<SPAN ID="hue122">Because a pcap file can contain multiple simultaneous
 flows, we need to be able to support that too. The biggest problem
 flows, we need to be able to support that too. The biggest problem
 with this is reading packet data in a different order then stored
 with this is reading packet data in a different order then stored
 in the pcap file. </SPAN>
 in the pcap file. </SPAN>
 <P>
 <P>
-<SPAN ID="hue123">Reading and writing to multiple sockets is easy
+<SPAN ID="hue124">Reading and writing to multiple sockets is easy
 with select() or poll(), however a pcap file has it's data stored
 with select() or poll(), however a pcap file has it's data stored
 serially, but we need to access it randomly. There are a number of
 serially, but we need to access it randomly. There are a number of
 possible solutions for this such as caching packets in RAM where they
 possible solutions for this such as caching packets in RAM where they
 can be accessed more randomly, creating an index of the packets in
 can be accessed more randomly, creating an index of the packets in
 the pcap file, or converting the pcap file to another format altogether.
 the pcap file, or converting the pcap file to another format altogether.
 Alternatively, I've started looking at libpcapnav</SPAN><A NAME="tex2html5"
 Alternatively, I've started looking at libpcapnav</SPAN><A NAME="tex2html5"
-  HREF="#foot124"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A> <SPAN ID="hue126">as an alternate means to navigate a pcap file and
+  HREF="#foot125"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A> <SPAN ID="hue127">as an alternate means to navigate a pcap file and
 process packets out of order.</SPAN>
 process packets out of order.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00033000000000000000">
 <H2><A NAME="SECTION00033000000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue128">Data Synchronization</SPAN></A>
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue129">Data Synchronization</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue375">Knowing when to start sending client traffic in
+<SPAN ID="hue376">Knowing when to start sending client traffic in
 response to the server will be &#34;tricky&#34;. Without
 response to the server will be &#34;tricky&#34;. Without
 understanding the actual protocol involved, probably the best general
 understanding the actual protocol involved, probably the best general
 solution is waiting for a given period of time after no more data
 solution is waiting for a given period of time after no more data
@@ -129,43 +129,43 @@ kind of timeout?). This will be the basis for the default plug-in.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00034000000000000000">
 <H2><A NAME="SECTION00034000000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue133">TCP/IP</SPAN></A>
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue134">TCP/IP</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue135">Dealing with IP fragmentation and TCP stream reassembly
+<SPAN ID="hue136">Dealing with IP fragmentation and TCP stream reassembly
 will be another really complex problem. We're basically talking about
 will be another really complex problem. We're basically talking about
 implementing a significant portion of a TCP/IP stack. One thought
 implementing a significant portion of a TCP/IP stack. One thought
 is to use libnids</SPAN><A NAME="tex2html6"
 is to use libnids</SPAN><A NAME="tex2html6"
-  HREF="#foot403"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A> <SPAN ID="hue139">which basically implements a Linux 2.0.37 TCP/IP
+  HREF="#foot404"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A> <SPAN ID="hue140">which basically implements a Linux 2.0.37 TCP/IP
 stack in user-space. Other solutions include porting a TCP/IP stack
 stack in user-space. Other solutions include porting a TCP/IP stack
 from Open/Net/FreeBSD or writing our own custom stack from scratch.</SPAN>
 from Open/Net/FreeBSD or writing our own custom stack from scratch.</SPAN>
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
 <DL>
 <DL>
-<DT><A NAME="foot370">...&nbsp;</A><A
+<DT><A NAME="foot371">...&nbsp;</A><A
  HREF="node3.html#tex2html2"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
  HREF="node3.html#tex2html2"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue102">socket(2)</SPAN>
+<DD><SPAN ID="hue103">socket(2)</SPAN>
 
 
 </DD>
 </DD>
-<DT><A NAME="foot371">...&nbsp;</A><A
+<DT><A NAME="foot372">...&nbsp;</A><A
  HREF="node3.html#tex2html3"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
  HREF="node3.html#tex2html3"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue108">http://www.tcpdump.org/</SPAN>
+<DD><SPAN ID="hue109">http://www.tcpdump.org/</SPAN>
 
 
 </DD>
 </DD>
-<DT><A NAME="foot372">...&nbsp;</A><A
+<DT><A NAME="foot373">...&nbsp;</A><A
  HREF="node3.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
  HREF="node3.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue112">http://www.packetfactory.net/projects/libnet/</SPAN>
+<DD><SPAN ID="hue113">http://www.packetfactory.net/projects/libnet/</SPAN>
 
 
 </DD>
 </DD>
-<DT><A NAME="foot124">...&nbsp;</A><A
+<DT><A NAME="foot125">...&nbsp;</A><A
  HREF="node3.html#tex2html5"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
  HREF="node3.html#tex2html5"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
 <DD>http://netdude.sourceforge.net/
 <DD>http://netdude.sourceforge.net/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot403">...&nbsp;</A><A
+<DT><A NAME="foot404">...&nbsp;</A><A
  HREF="node3.html#tex2html6"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
  HREF="node3.html#tex2html6"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue377">http://www.avet.com.pl/~nergal/libnids/</SPAN>
+<DD><SPAN ID="hue378">http://www.avet.com.pl/~nergal/libnids/</SPAN>
 
 
 </DD>
 </DD>
 </DL>
 </DL>
@@ -190,7 +190,7 @@ from Open/Net/FreeBSD or writing our own custom stack from scratch.</SPAN>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 51 - 51
docs/web/flowreplay/node4.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -52,19 +52,19 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
 <LI><A NAME="tex2html74"
 <LI><A NAME="tex2html74"
-  HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue157">IP Fragments and TCP Streams</SPAN></A>
+  HREF="node4.html#SECTION00041000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue158">IP Fragments and TCP Streams</SPAN></A>
 <LI><A NAME="tex2html75"
 <LI><A NAME="tex2html75"
-  HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue193">Blocking</SPAN></A>
+  HREF="node4.html#SECTION00042000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue194">Blocking</SPAN></A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
 
 
 <H1><A NAME="SECTION00040000000000000000">
 <H1><A NAME="SECTION00040000000000000000">
-<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue141">Multiple Independent Flows</SPAN></A>
+<SPAN CLASS="arabic">4</SPAN> <SPAN ID="hue142">Multiple Independent Flows</SPAN></A>
 </H1>
 </H1>
 
 
 <P>
 <P>
-<SPAN ID="hue143">The biggest asynchronous problem, that pcap files
+<SPAN ID="hue144">The biggest asynchronous problem, that pcap files
 are serial, has to be solved in a scaleable manner. Not much can be
 are serial, has to be solved in a scaleable manner. Not much can be
 assumed about the network traffic contained in a pcap savefile other
 assumed about the network traffic contained in a pcap savefile other
 then Murphy's Law will be in effect. This means we'll have to deal
 then Murphy's Law will be in effect. This means we'll have to deal
@@ -72,17 +72,17 @@ with:</SPAN>
 <P>
 <P>
 
 
 <UL>
 <UL>
-<LI><SPAN ID="hue146">Thousands of small simultaneous flows (captured
+<LI><SPAN ID="hue147">Thousands of small simultaneous flows (captured
 on a busy network)</SPAN>
 on a busy network)</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue379">Flows which ``hang'' mid-stream (an exploit
+<LI><SPAN ID="hue380">Flows which ``hang'' mid-stream (an exploit
 against a server causes it to crash)</SPAN>
 against a server causes it to crash)</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue150">Flows which contain large quantities of data (FTP
+<LI><SPAN ID="hue151">Flows which contain large quantities of data (FTP
 transfers of ISO's for example)</SPAN>
 transfers of ISO's for example)</SPAN>
 </LI>
 </LI>
 </UL>
 </UL>
-<SPAN ID="hue153">How we implement parallel processing of the pcap
+<SPAN ID="hue154">How we implement parallel processing of the pcap
 savefile will dramatically effect how well we can scale. A few considerations:</SPAN>
 savefile will dramatically effect how well we can scale. A few considerations:</SPAN>
 <P>
 <P>
 
 
@@ -101,50 +101,50 @@ flow management.
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00041000000000000000">
 <H2><A NAME="SECTION00041000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue157">IP Fragments and TCP Streams</SPAN></A>
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue158">IP Fragments and TCP Streams</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue159">There are five major complications with flowreplay:</SPAN>
+<SPAN ID="hue160">There are five major complications with flowreplay:</SPAN>
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue162">The IP datagrams may be fragmented- we won't be
+<LI><SPAN ID="hue163">The IP datagrams may be fragmented- we won't be
 able to use the standard 5-tuple (src/dst IP, src/dst port, protocol)
 able to use the standard 5-tuple (src/dst IP, src/dst port, protocol)
 to lookup which flow a packet belongs to.</SPAN>
 to lookup which flow a packet belongs to.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue164">IP fragments may arrive out of order which will
+<LI><SPAN ID="hue165">IP fragments may arrive out of order which will
 complicate ordering of data to be sent.</SPAN>
 complicate ordering of data to be sent.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue166">The TCP segments may arrive out of order which will
+<LI><SPAN ID="hue167">The TCP segments may arrive out of order which will
 complicate ordering of data to be sent.</SPAN>
 complicate ordering of data to be sent.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue168">Packets may be missing in the pcap file because
+<LI><SPAN ID="hue169">Packets may be missing in the pcap file because
 they were dropped during capture.</SPAN>
 they were dropped during capture.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue170">There are tools like fragrouter which intentionally
+<LI><SPAN ID="hue171">There are tools like fragrouter which intentionally
 create non-deterministic situations.</SPAN>
 create non-deterministic situations.</SPAN>
 </LI>
 </LI>
 </OL>
 </OL>
-<SPAN ID="hue173">First off, I've decided, that I'm not going to worry
+<SPAN ID="hue174">First off, I've decided, that I'm not going to worry
 about fragrouter or it's cousins. I'll handle non-deterministic situations
 about fragrouter or it's cousins. I'll handle non-deterministic situations
 one and only one way, so that the way flowreplay handles the traffic
 one and only one way, so that the way flowreplay handles the traffic
 will be deterministic. Perhaps, I'll make it easy for others to write
 will be deterministic. Perhaps, I'll make it easy for others to write
 a plug-in which will change it, but that's not something I'm going
 a plug-in which will change it, but that's not something I'm going
 to concern myself with now.</SPAN>
 to concern myself with now.</SPAN>
 <P>
 <P>
-<SPAN ID="hue175">Missing packets in the pcap file will probably make
+<SPAN ID="hue176">Missing packets in the pcap file will probably make
 that flow unplayable. There are proabably certain situation where
 that flow unplayable. There are proabably certain situation where
 we can make an educated guess, but this is far too complex to worry
 we can make an educated guess, but this is far too complex to worry
 about for the first stable release.</SPAN>
 about for the first stable release.</SPAN>
 <P>
 <P>
-<SPAN ID="hue177">That still leaves creating a basic TCP/IP stack
+<SPAN ID="hue178">That still leaves creating a basic TCP/IP stack
 in user space. The good news it that there is already a library which
 in user space. The good news it that there is already a library which
 does this called libnids. As of version 1.17, libnids can process
 does this called libnids. As of version 1.17, libnids can process
 packets from a pcap savefile (it's not documented in the man page,
 packets from a pcap savefile (it's not documented in the man page,
 but the code is there).</SPAN>
 but the code is there).</SPAN>
 <P>
 <P>
-<SPAN ID="hue179">A potential problem with libnids though is that
+<SPAN ID="hue180">A potential problem with libnids though is that
 it has to maintain it's own state/cache system. This not only means
 it has to maintain it's own state/cache system. This not only means
 additional overhead, but jumping around in the pcap file as I'm planning
 additional overhead, but jumping around in the pcap file as I'm planning
 on doing to handle multiple simultaneous flows is likely to really
 on doing to handle multiple simultaneous flows is likely to really
@@ -152,22 +152,22 @@ confuse libnids' state engine. Also, libnids is licensed under the
 GPL, but I want flowreplay released under a BSD-like license; I need
 GPL, but I want flowreplay released under a BSD-like license; I need
 to research if the two are compatible in this way.</SPAN>
 to research if the two are compatible in this way.</SPAN>
 <P>
 <P>
-<SPAN ID="hue181">Possible solutions:</SPAN>
+<SPAN ID="hue182">Possible solutions:</SPAN>
 <P>
 <P>
 
 
 <UL>
 <UL>
-<LI><SPAN ID="hue184">Developing a custom wedge between the capture file
+<LI><SPAN ID="hue185">Developing a custom wedge between the capture file
 and libnids which will cause each packet to only be processed a single
 and libnids which will cause each packet to only be processed a single
 time.</SPAN>
 time.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue186">Use libnids to process the pcap file into a new
+<LI><SPAN ID="hue187">Use libnids to process the pcap file into a new
 flow-based format, effectively putting the TCP/IP stack into a dedicated
 flow-based format, effectively putting the TCP/IP stack into a dedicated
 utility.</SPAN>
 utility.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue188">Develop a custom user-space TCP/IP stack, perhaps
+<LI><SPAN ID="hue189">Develop a custom user-space TCP/IP stack, perhaps
 based on a BSD TCP/IP stack, much like libnids is based on Linux 2.0.37.</SPAN>
 based on a BSD TCP/IP stack, much like libnids is based on Linux 2.0.37.</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue190">Screw it and say that IP fragmentation and out of
+<LI><SPAN ID="hue191">Screw it and say that IP fragmentation and out of
 order IP packets/TCP segments are not supported. Not sure if this
 order IP packets/TCP segments are not supported. Not sure if this
 will meet the needs of potential users.</SPAN>
 will meet the needs of potential users.</SPAN>
 </LI>
 </LI>
@@ -176,71 +176,71 @@ will meet the needs of potential users.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00042000000000000000">
 <H2><A NAME="SECTION00042000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue193">Blocking</SPAN></A>
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue194">Blocking</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue195">As earlier stated, one of the main goals of this
+<SPAN ID="hue196">As earlier stated, one of the main goals of this
 project is to keep things single threaded to make coding plugins easier.
 project is to keep things single threaded to make coding plugins easier.
 One caveat of that is that any function which blocks will cause serious
 One caveat of that is that any function which blocks will cause serious
 problems.</SPAN>
 problems.</SPAN>
 <P>
 <P>
-<SPAN ID="hue197">There are three major cases where blocking is likely
+<SPAN ID="hue198">There are three major cases where blocking is likely
 to occur:</SPAN>
 to occur:</SPAN>
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue200">Opening a socket</SPAN>
+<LI><SPAN ID="hue201">Opening a socket</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue202">Reading from a socket</SPAN>
+<LI><SPAN ID="hue203">Reading from a socket</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue204">Writing to a socket</SPAN>
+<LI><SPAN ID="hue205">Writing to a socket</SPAN>
 </LI>
 </LI>
 </OL>
 </OL>
-<SPAN ID="hue207">Reading from sockets in a non-blocking manner is
+<SPAN ID="hue208">Reading from sockets in a non-blocking manner is
 easy to solve for using poll() or select(). Writing to a socket, or
 easy to solve for using poll() or select(). Writing to a socket, or
 merely opening a TCP socket via connect() however requires a different
 merely opening a TCP socket via connect() however requires a different
 method:</SPAN>
 method:</SPAN>
 <P>
 <P>
 <BLOCKQUOTE>
 <BLOCKQUOTE>
-<SPAN ID="hue210">It is possible to do non-blocking IO on sockets
+<SPAN ID="hue211">It is possible to do non-blocking IO on sockets
 by setting the O_NONBLOCK flag on a socket file descriptor using
 by setting the O_NONBLOCK flag on a socket file descriptor using
 fcntl(2). Then all operations that would block will (usually) return
 fcntl(2). Then all operations that would block will (usually) return
 with EAGAIN (operation should be retried later); connect(2) will return
 with EAGAIN (operation should be retried later); connect(2) will return
 EINPROGRESS error. The user can then wait for various events via poll(2)
 EINPROGRESS error. The user can then wait for various events via poll(2)
 or select(2).</SPAN><A NAME="tex2html7"
 or select(2).</SPAN><A NAME="tex2html7"
-  HREF="#foot382"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A>
+  HREF="#foot383"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A>
 </BLOCKQUOTE>
 </BLOCKQUOTE>
-<SPAN ID="hue215">If connect() returns EINPROGRESS, then we'll just
+<SPAN ID="hue216">If connect() returns EINPROGRESS, then we'll just
 have to do something like this:</SPAN>
 have to do something like this:</SPAN>
 <P>
 <P>
 
 
 <DL COMPACT>
 <DL COMPACT>
 <DT>
 <DT>
-<DD><SPAN ID="hue218">int&nbsp;e,&nbsp;len=sizeof(e);</SPAN>
+<DD><SPAN ID="hue219">int&nbsp;e,&nbsp;len=sizeof(e);</SPAN>
 <P>
 <P>
-<SPAN ID="hue220">if&nbsp;(getsockopt(conn-&gt;s,&nbsp;SOL_SOCKET,&nbsp;SO_ERROR,&nbsp;&amp;e,&nbsp;&amp;len)&nbsp;&lt;&nbsp;0)&nbsp;{&nbsp;</SPAN>
+<SPAN ID="hue221">if&nbsp;(getsockopt(conn-&gt;s,&nbsp;SOL_SOCKET,&nbsp;SO_ERROR,&nbsp;&amp;e,&nbsp;&amp;len)&nbsp;&lt;&nbsp;0)&nbsp;{&nbsp;</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue383">&nbsp;&nbsp;&nbsp;/*&nbsp;not&nbsp;yet&nbsp;*/</SPAN>
+&nbsp;<SPAN ID="hue384">&nbsp;&nbsp;&nbsp;/*&nbsp;not&nbsp;yet&nbsp;*/</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue384">&nbsp;&nbsp;&nbsp;if(errno&nbsp;!=&nbsp;EINPROGRESS){&nbsp;&nbsp;/*&nbsp;yuck.&nbsp;kill&nbsp;it.&nbsp;*/&nbsp;</SPAN>
+&nbsp;<SPAN ID="hue385">&nbsp;&nbsp;&nbsp;if(errno&nbsp;!=&nbsp;EINPROGRESS){&nbsp;&nbsp;/*&nbsp;yuck.&nbsp;kill&nbsp;it.&nbsp;*/&nbsp;</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue385">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log_fn(LOG_DEBUG,&#34;in-progress&nbsp;connect&nbsp;failed.&nbsp;Removing.&#34;);&nbsp;</SPAN>
+&nbsp;<SPAN ID="hue386">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log_fn(LOG_DEBUG,&#34;in-progress&nbsp;connect&nbsp;failed.&nbsp;Removing.&#34;);&nbsp;</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue231">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1;&nbsp;</SPAN>
+&nbsp;<SPAN ID="hue232">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1;&nbsp;</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue233">&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;</SPAN>
+&nbsp;<SPAN ID="hue234">&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue386">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;/*&nbsp;no&nbsp;change,&nbsp;see&nbsp;if&nbsp;next&nbsp;time&nbsp;is&nbsp;better&nbsp;*/&nbsp;</SPAN>
+&nbsp;<SPAN ID="hue387">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;/*&nbsp;no&nbsp;change,&nbsp;see&nbsp;if&nbsp;next&nbsp;time&nbsp;is&nbsp;better&nbsp;*/&nbsp;</SPAN>
 <P>
 <P>
-&nbsp;<SPAN ID="hue238">&nbsp;&nbsp;&nbsp;}&nbsp;</SPAN>
+&nbsp;<SPAN ID="hue239">&nbsp;&nbsp;&nbsp;}&nbsp;</SPAN>
 <P>
 <P>
-<SPAN ID="hue240">}&nbsp;</SPAN>
+<SPAN ID="hue241">}&nbsp;</SPAN>
 <P>
 <P>
-<SPAN ID="hue387">/*&nbsp;the&nbsp;connect&nbsp;has&nbsp;finished.&nbsp;*/&nbsp;</SPAN>
+<SPAN ID="hue388">/*&nbsp;the&nbsp;connect&nbsp;has&nbsp;finished.&nbsp;*/&nbsp;</SPAN>
 </DD>
 </DD>
 </DL><BLOCKQUOTE>
 </DL><BLOCKQUOTE>
-<SPAN ID="hue247">Note: It may not be totally right, but it works
+<SPAN ID="hue248">Note: It may not be totally right, but it works
 ok. (that chunk of code gets called after poll returns the socket
 ok. (that chunk of code gets called after poll returns the socket
 as writable. if poll returns it as readable, then it's probably because
 as writable. if poll returns it as readable, then it's probably because
 of eof, connect fails. You must poll for both.</SPAN>
 of eof, connect fails. You must poll for both.</SPAN>
@@ -249,9 +249,9 @@ of eof, connect fails. You must poll for both.</SPAN>
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
 <DL>
 <DL>
-<DT><A NAME="foot382">...&nbsp;</A><A
+<DT><A NAME="foot383">...&nbsp;</A><A
  HREF="node4.html#tex2html7"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A></DT>
  HREF="node4.html#tex2html7"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue212">socket(7)</SPAN>
+<DD><SPAN ID="hue213">socket(7)</SPAN>
 
 
 </DD>
 </DD>
 </DL>
 </DL>
@@ -276,7 +276,7 @@ of eof, connect fails. You must poll for both.</SPAN>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 18 - 16
docs/web/flowreplay/node5.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -49,55 +49,57 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 
 
 <H1><A NAME="SECTION00050000000000000000">
 <H1><A NAME="SECTION00050000000000000000">
-<SPAN CLASS="arabic">5</SPAN> <SPAN ID="hue250">pcap vs flow File Format</SPAN></A>
+<SPAN CLASS="arabic">5</SPAN> <SPAN ID="hue251">pcap vs flow File Format</SPAN></A>
 </H1>
 </H1>
 
 
 <P>
 <P>
-<SPAN ID="hue252">As stated before, the pcap file format really isn't
+<SPAN ID="hue253">As stated before, the pcap file format really isn't
 well suited for flowreplay because it uses the raw packet as a container
 well suited for flowreplay because it uses the raw packet as a container
 for data. Flowreplay however isn't interested in packets, it's interested
 for data. Flowreplay however isn't interested in packets, it's interested
 in data streams</SPAN><A NAME="tex2html8"
 in data streams</SPAN><A NAME="tex2html8"
-  HREF="#foot404"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A> <SPAN ID="hue256">which may span one or more TCP/UDP segments, each
+  HREF="#foot405"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A> <SPAN ID="hue257">which may span one or more TCP/UDP segments, each
 comprised of an IP datagram which may be comprised of multiple IP
 comprised of an IP datagram which may be comprised of multiple IP
 fragments. Handling all this additional complexity requires a full
 fragments. Handling all this additional complexity requires a full
 TCP/IP stack in user space which would have additional feature requirements
 TCP/IP stack in user space which would have additional feature requirements
 specific to flowreplay.</SPAN>
 specific to flowreplay.</SPAN>
 <P>
 <P>
-<SPAN ID="hue258">Rather then trying to do that, I've decided to create
+<SPAN ID="hue259">Rather then trying to do that, I've decided to create
 a pcap preprocessor for flowreplay called: flowprep. Flowprep will
 a pcap preprocessor for flowreplay called: flowprep. Flowprep will
 handle all the TCP/IP defragmentation/reassembly and write out a file
 handle all the TCP/IP defragmentation/reassembly and write out a file
 containing the data streams for each flow.</SPAN>
 containing the data streams for each flow.</SPAN>
 <P>
 <P>
-<SPAN ID="hue260">A flow file will contain three sections:</SPAN>
+<SPAN ID="hue261">A flow file will contain three sections:</SPAN>
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue263">A header which identifies this as a flowprep file
+<LI><SPAN ID="hue264">A header which identifies this as a flowprep file
 and the file version</SPAN>
 and the file version</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue265">An index of all the flows contained in the file</SPAN>
+<LI><SPAN ID="hue266">An index of all the flows contained in the file</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue267">The data streams themselves</SPAN>
+<LI><SPAN ID="hue268">The data streams themselves</SPAN>
 </LI>
 </LI>
 </OL>
 </OL>
 <DIV ALIGN="CENTER">
 <DIV ALIGN="CENTER">
-<SPAN ID="hue390"><IMG
+<SPAN ID="hue391"><IMG
  WIDTH="668" HEIGHT="748" ALIGN="BOTTOM" BORDER="0"
  WIDTH="668" HEIGHT="748" ALIGN="BOTTOM" BORDER="0"
  SRC="img1.png"
  SRC="img1.png"
- ALT="\includegraphics{flowheader.eps}"></SPAN>
+ ALT="\includegraphics{flowheader}"></SPAN></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
-<SPAN ID="hue274">At startup, the file header is validated and the
+<SPAN ID="hue275">At startup, the file header is validated and the
 data stream indexes are loaded into memory. Then the first data stream
 data stream indexes are loaded into memory. Then the first data stream
 header from each flow is read. Then each flow and subsequent data
 header from each flow is read. Then each flow and subsequent data
 stream is processed based upon the timestamps and plug-ins.</SPAN>
 stream is processed based upon the timestamps and plug-ins.</SPAN>
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
 <DL>
 <DL>
-<DT><A NAME="foot404">...&nbsp;</A><A
+<DT><A NAME="foot405">...&nbsp;</A><A
  HREF="node5.html#tex2html8"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A></DT>
  HREF="node5.html#tex2html8"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A></DT>
-<DD><SPAN ID="hue389">A ``data stream'' as I call it is a simplex
+<DD><SPAN ID="hue390">A ``data stream'' as I call it is a simplex
 communication from the client or server which is a complete query,
 communication from the client or server which is a complete query,
 response or message.</SPAN>
 response or message.</SPAN>
 
 
@@ -124,7 +126,7 @@ response or message.</SPAN>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 36 - 36
docs/web/flowreplay/node6.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
 <LINK REL="STYLESHEET" HREF="flowreplay.css">
@@ -46,26 +46,26 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 <UL CLASS="ChildLinks">
 <UL CLASS="ChildLinks">
 <LI><A NAME="tex2html92"
 <LI><A NAME="tex2html92"
-  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue282">Plug-in Basics</SPAN></A>
+  HREF="node6.html#SECTION00061000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue283">Plug-in Basics</SPAN></A>
 <LI><A NAME="tex2html93"
 <LI><A NAME="tex2html93"
-  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue292">The Default Plug-in</SPAN></A>
+  HREF="node6.html#SECTION00062000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue293">The Default Plug-in</SPAN></A>
 <LI><A NAME="tex2html94"
 <LI><A NAME="tex2html94"
-  HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue309">Plug-in Details</SPAN></A>
+  HREF="node6.html#SECTION00063000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue310">Plug-in Details</SPAN></A>
 </UL>
 </UL>
 <!--End of Table of Child-Links-->
 <!--End of Table of Child-Links-->
 <HR>
 <HR>
 
 
 <H1><A NAME="SECTION00060000000000000000">
 <H1><A NAME="SECTION00060000000000000000">
-<SPAN CLASS="arabic">6</SPAN> <SPAN ID="hue276">Plug-ins</SPAN></A>
+<SPAN CLASS="arabic">6</SPAN> <SPAN ID="hue277">Plug-ins</SPAN></A>
 </H1>
 </H1>
 
 
 <P>
 <P>
-<SPAN ID="hue392">Plug-ins will provide the ``intelligence'' in
+<SPAN ID="hue393">Plug-ins will provide the ``intelligence'' in
 flowreplay. Flowreplay is designed to be a mere framework for connecting
 flowreplay. Flowreplay is designed to be a mere framework for connecting
 captured flows in a flow file with socket file handles. How data is
 captured flows in a flow file with socket file handles. How data is
 processed and what should be done with it will be done via plug-ins.</SPAN>
 processed and what should be done with it will be done via plug-ins.</SPAN>
 <P>
 <P>
-<SPAN ID="hue280">Plug-ins will allow proper handling of a variety
+<SPAN ID="hue281">Plug-ins will allow proper handling of a variety
 of protocols while hopefully keeping things simple. Another part of
 of protocols while hopefully keeping things simple. Another part of
 the consideration will be making it easy for others to contribute
 the consideration will be making it easy for others to contribute
 to flowreplay. I don't want to have to write all the protocol logic
 to flowreplay. I don't want to have to write all the protocol logic
@@ -73,18 +73,18 @@ myself.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00061000000000000000">
 <H2><A NAME="SECTION00061000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue282">Plug-in Basics</SPAN></A>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> <SPAN ID="hue283">Plug-in Basics</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue284">Each plug-in provides the logic for handling one
+<SPAN ID="hue285">Each plug-in provides the logic for handling one
 or more services. The main purpose of a plug-in is to decide when
 or more services. The main purpose of a plug-in is to decide when
 flowreplay should send data via one or more sockets. The plug-in can
 flowreplay should send data via one or more sockets. The plug-in can
-use any</SPAN> <SPAN ID="hue394"><SPAN  CLASS="textit">non-blocking</SPAN></SPAN> <SPAN ID="hue288">method
+use any</SPAN> <SPAN ID="hue395"><SPAN  CLASS="textit">non-blocking</SPAN></SPAN> <SPAN ID="hue289">method
 of determining if it appropriate to send data or wait for data to
 of determining if it appropriate to send data or wait for data to
 received. If necessary, a plug-in can also modify the data sent.</SPAN>
 received. If necessary, a plug-in can also modify the data sent.</SPAN>
 <P>
 <P>
-<SPAN ID="hue290">Each time poll() returns, flowreplay calls the plug-ins
+<SPAN ID="hue291">Each time poll() returns, flowreplay calls the plug-ins
 for the flows which either have data waiting or in the case of a timeout,
 for the flows which either have data waiting or in the case of a timeout,
 those flows which timed out. Afterwords, all the flows are processed
 those flows which timed out. Afterwords, all the flows are processed
 and poll() is called on those flows which have their state set to
 and poll() is called on those flows which have their state set to
@@ -93,20 +93,20 @@ tree.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00062000000000000000">
 <H2><A NAME="SECTION00062000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue292">The Default Plug-in</SPAN></A>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> <SPAN ID="hue293">The Default Plug-in</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue396">Initially, flowreplay will ship with one basic plug-in
+<SPAN ID="hue397">Initially, flowreplay will ship with one basic plug-in
 called ``default''. Any flow which doesn't have a specific plug-in
 called ``default''. Any flow which doesn't have a specific plug-in
 defined, will use default. The goal of the default plug-in is to work
 defined, will use default. The goal of the default plug-in is to work
 ``good enough'' for a majority of single-flow protocols such as
 ``good enough'' for a majority of single-flow protocols such as
 SMTP, HTTP, and Telnet. Protocols which use encryption (SSL, SSH,
 SMTP, HTTP, and Telnet. Protocols which use encryption (SSL, SSH,
 etc) or multiple flows (FTP, RPC, etc) will never work with the default
 etc) or multiple flows (FTP, RPC, etc) will never work with the default
-plug-in. Furthermore, the default plug-in will only support connections</SPAN><SPAN ID="hue397"><SPAN  CLASS="textit">to</SPAN></SPAN> <SPAN ID="hue299">a server, it will not
+plug-in. Furthermore, the default plug-in will only support connections</SPAN><SPAN ID="hue398"><SPAN  CLASS="textit">to</SPAN></SPAN> <SPAN ID="hue300">a server, it will not
 support accepting connections from clients.</SPAN>
 support accepting connections from clients.</SPAN>
 <P>
 <P>
-<SPAN ID="hue398">The default plug-in will provide no data level manipulation
+<SPAN ID="hue399">The default plug-in will provide no data level manipulation
 and only a simple method for detecting when it is time to send data
 and only a simple method for detecting when it is time to send data
 to the server. Detecting when to send data will be done by a ``no
 to the server. Detecting when to send data will be done by a ``no
 more data'' timeout value. Basically, by using the pcap file as a
 more data'' timeout value. Basically, by using the pcap file as a
@@ -120,68 +120,68 @@ hung'' timeout is reached. The server hung timeout is used to detect
 a server which crashed and never starts sending any data which would
 a server which crashed and never starts sending any data which would
 start the ``no more data'' timer.</SPAN>
 start the ``no more data'' timer.</SPAN>
 <P>
 <P>
-<SPAN ID="hue399">Both the ``no more data'' and ``server hung''
+<SPAN ID="hue400">Both the ``no more data'' and ``server hung''
 timers will be user defined values and global to all flows using the
 timers will be user defined values and global to all flows using the
 default plug-in.</SPAN>
 default plug-in.</SPAN>
 <P>
 <P>
 
 
 <H2><A NAME="SECTION00063000000000000000">
 <H2><A NAME="SECTION00063000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue309">Plug-in Details</SPAN></A>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> <SPAN ID="hue310">Plug-in Details</SPAN></A>
 </H2>
 </H2>
 
 
 <P>
 <P>
-<SPAN ID="hue311">Each plug-in will be comprised of the following:</SPAN>
+<SPAN ID="hue312">Each plug-in will be comprised of the following:</SPAN>
 <P>
 <P>
 
 
 <OL>
 <OL>
-<LI><SPAN ID="hue314">An optional global data structure, for intra-flow
+<LI><SPAN ID="hue315">An optional global data structure, for intra-flow
 communication</SPAN>
 communication</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue316">Per-flow data structure, for tracking flow state
+<LI><SPAN ID="hue317">Per-flow data structure, for tracking flow state
 information</SPAN>
 information</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue318">A list of functions which flow replay will call
+<LI><SPAN ID="hue319">A list of functions which flow replay will call
 when certain well-defined conditions are met.</SPAN>
 when certain well-defined conditions are met.</SPAN>
 <P>
 <P>
 
 
 <UL>
 <UL>
-<LI><SPAN ID="hue321">Required functions:</SPAN>
+<LI><SPAN ID="hue322">Required functions:</SPAN>
 <P>
 <P>
 
 
 <UL>
 <UL>
-<LI><SPAN ID="hue324">initialize_node() - called when a node in the tree
+<LI><SPAN ID="hue325">initialize_node() - called when a node in the tree
 created using this plug-in</SPAN>
 created using this plug-in</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue326">post_poll_timeout() - called when the poll() returned
+<LI><SPAN ID="hue327">post_poll_timeout() - called when the poll() returned
 due to a timeout for this node</SPAN>
 due to a timeout for this node</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue328">post_poll_read() - called when the poll() returned
+<LI><SPAN ID="hue329">post_poll_read() - called when the poll() returned
 due to the socket being ready</SPAN>
 due to the socket being ready</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue330">buffer_full() - called when a the packet buffer
+<LI><SPAN ID="hue331">buffer_full() - called when a the packet buffer
 for this flow is full</SPAN>
 for this flow is full</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue332">delete_node() - called just prior to the node being
+<LI><SPAN ID="hue333">delete_node() - called just prior to the node being
 free()'d</SPAN>
 free()'d</SPAN>
 </LI>
 </LI>
 </UL>
 </UL>
 </LI>
 </LI>
-<LI><SPAN ID="hue335">Optional functions:</SPAN>
+<LI><SPAN ID="hue336">Optional functions:</SPAN>
 <P>
 <P>
 
 
 <UL>
 <UL>
-<LI><SPAN ID="hue338">pre_send_data() - called before data is sent</SPAN>
+<LI><SPAN ID="hue339">pre_send_data() - called before data is sent</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue340">post_send_data() - called after data is sent</SPAN>
+<LI><SPAN ID="hue341">post_send_data() - called after data is sent</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue342">pre_poll() - called prior to poll()</SPAN>
+<LI><SPAN ID="hue343">pre_poll() - called prior to poll()</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue344">post_poll_default() - called when poll() returns
+<LI><SPAN ID="hue345">post_poll_default() - called when poll() returns
 and neither the socket was ready or the node timed out </SPAN>
 and neither the socket was ready or the node timed out </SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue346">open_socket() - called after the socket is opened</SPAN>
+<LI><SPAN ID="hue347">open_socket() - called after the socket is opened</SPAN>
 </LI>
 </LI>
-<LI><SPAN ID="hue348">close_socket() - called after the socket is closed</SPAN>
+<LI><SPAN ID="hue349">close_socket() - called after the socket is closed</SPAN>
 </LI>
 </LI>
 </UL>
 </UL>
 </LI>
 </LI>
@@ -213,7 +213,7 @@ and neither the socket was ready or the node timed out </SPAN>
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 20 - 6
docs/web/index.html

@@ -95,6 +95,12 @@ onto the network to do the test.
         <tr><td class=sechdr>News</td></tr>
         <tr><td class=sechdr>News</td></tr>
         <tr>
         <tr>
             <td class=section>
             <td class=section>
+                2005-08-07<br>
+                Tcpreplay 3.0.beta7 is relased which merges the tcpprep
+                fixes from 2.3.5 and incorprates an important flowreplay fix
+                for UDP flows.  Still looking for a tech writer who can
+                spend a few hours a week on the documentation.
+                <P>
                 2005-07-03<br>
                 2005-07-03<br>
                 Tcpreplay 2.3.5 is released which fixes a long standing bug
                 Tcpreplay 2.3.5 is released which fixes a long standing bug
                 in tcpprep with auto/router mode.  Note that *all* tcpprep
                 in tcpprep with auto/router mode.  Note that *all* tcpprep
@@ -166,7 +172,7 @@ onto the network to do the test.
                 <ul>
                 <ul>
                     <li>Latest development release:
                     <li>Latest development release:
                     <a
                     <a
-                        href="http://prdownloads.sourceforge.net/tcpreplay/tcpreplay-3.0.beta6.tar.gz">tcpreplay-3.0.beta6.tar.gz</a>
+                        href="http://prdownloads.sourceforge.net/tcpreplay/tcpreplay-3.0.beta7.tar.gz">tcpreplay-3.0.beta7.tar.gz</a>
                     (<a
                     (<a
                         href="CHANGELOG">Changelog</a>)
                         href="CHANGELOG">Changelog</a>)
                     </li>
                     </li>
@@ -234,6 +240,10 @@ onto the network to do the test.
                 <li><a href="man/flowreplay.html">flowreplay</a></li>
                 <li><a href="man/flowreplay.html">flowreplay</a></li>
                 <li><a href="man/tcpbridge.html">tcpbridge</a></li>
                 <li><a href="man/tcpbridge.html">tcpbridge</a></li>
             </ul>
             </ul>
+            Other:
+            <ul>
+                <li> <a href="TODO">3.x TODO list</a></li>
+            </ul>
             </td>
             </td>
             <td class=section>
             <td class=section>
                 2.x Docs:
                 2.x Docs:
@@ -250,11 +260,13 @@ onto the network to do the test.
         <tr><td>&nbsp;</td></tr>
         <tr><td>&nbsp;</td></tr>
         <tr><td class=sechdr>Support</td></tr>
         <tr><td class=sechdr>Support</td></tr>
         <tr><td class=section>
         <tr><td class=section>
-            Sourceforge has a support, bug and patch ticket tracking system which we <b>do not use</b>. 
-            &nbsp;So if you submit a ticket into any of those systems, it will likely be ignored for a few 
-            months, if not longer. &nbsp;Hence, you should be using the 
+            Sourceforge has a support, bug and patch ticket tracking system
+            which I <b>do not use</b>. 
+            &nbsp;So if you submit a ticket into any of those systems, it
+            will likely be ignored for a few months, if not longer.
+            &nbsp;Hence, you should be using the 
             <a href="http://sourceforge.net/mail/?group_id=48862">tcpreplay-users mailing 
             <a href="http://sourceforge.net/mail/?group_id=48862">tcpreplay-users mailing 
-                list</a> for support. (Note, due to spam, the
+                list</a> for support. (Due to spam, the
             tcpreplay-users list is a closed list, so you will need to
             tcpreplay-users list is a closed list, so you will need to
             subscribe in order to post.)
             subscribe in order to post.)
             <P>
             <P>
@@ -263,12 +275,14 @@ onto the network to do the test.
             <P>
             <P>
               You may also be interested in checking out 
               You may also be interested in checking out 
               <a href="http://www.sourceforge.net/projects/tcpreplay/">
               <a href="http://www.sourceforge.net/projects/tcpreplay/">
-                tcpreplay's SourceForge project page</a>.
+                  tcpreplay's SourceForge project page</a>.
             </ul>
             </ul>
           </td>
           </td>
       </tr>
       </tr>
       <tr>
       <tr>
           <td align=center>
           <td align=center>
+              &nbsp;
+              <P>
               <a  href="http://sourceforge.net"><img
               <a  href="http://sourceforge.net"><img
                   src="http://sourceforge.net/sflogo.php?group_id=48862&type=1"
                   src="http://sourceforge.net/sflogo.php?group_id=48862&type=1"
                   width="88" height="31" border="0" alt="SourceForge.net
                   width="88" height="31" border="0" alt="SourceForge.net

+ 5 - 0
docs/web/man/flowreplay.html

@@ -28,6 +28,11 @@ contact Aaron Turner.
 <p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
 <p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
 <dd>Enable debugging output.
 <dd>Enable debugging output.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 5
+<br></pre>
 The default <i>number</i> for this option is:
 The default <i>number</i> for this option is:
 </dl><br>
 </dl><br>
  0
  0

+ 0 - 0
docs/web/man/tcpbridge.html


+ 35 - 4
docs/web/man/tcpprep.html

@@ -31,6 +31,11 @@ packet should be sent out of.
 <p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
 <p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
 <dd>Enable debugging output.
 <dd>Enable debugging output.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 5
+<br></pre>
 The default <i>number</i> for this option is:
 The default <i>number</i> for this option is:
 </dl><br>
 </dl><br>
  0
  0
@@ -42,7 +47,7 @@ level for debugging output.  Higher numbers increase verbosity.
 <dd>Auto-split mode.
 <dd>Auto-split mode.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must not appear in combination with any of the following options:
 This option must not appear in combination with any of the following options:
-cidr, port, regex.
+cidr, port, regex, mac.
 </dl>
 </dl>
 <p>
 <p>
 Tcpprep will try to automatically determine the primary function of hosts
 Tcpprep will try to automatically determine the primary function of hosts
@@ -80,7 +85,7 @@ treated as servers.  Server mode should always complete successfully.
 <dd>CIDR-split mode.
 <dd>CIDR-split mode.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must not appear in combination with any of the following options:
 This option must not appear in combination with any of the following options:
-auto, port, regex.
+auto, port, regex, mac.
 </dl>
 </dl>
 <p>
 <p>
 Specify a comma delimited list of CIDR netblocks to match against
 Specify a comma delimited list of CIDR netblocks to match against
@@ -90,19 +95,30 @@ are classified as servers.
 <dd>Regex-split mode.
 <dd>Regex-split mode.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must not appear in combination with any of the following options:
 This option must not appear in combination with any of the following options:
-auto, port, cidr.
+auto, port, cidr, mac.
 </dl>
 </dl>
 <p>
 <p>
 Specify a regular expression to match against the source IP of each
 Specify a regular expression to match against the source IP of each
 packet.  Packets matching the regex are classified as servers.
 packet.  Packets matching the regex are classified as servers.
 <p><dl compact><dt><b>-p</b>, <b>--port</b>
 <p><dl compact><dt><b>-p</b>, <b>--port</b>
 <dd>Port-split mode.
 <dd>Port-split mode.
+This option may appear up to 1 times.
 This option must not appear in combination with any of the following options:
 This option must not appear in combination with any of the following options:
-auto, regex, cidr.
+auto, regex, cidr, mac.
 </dl>
 </dl>
 <p>
 <p>
 Specifies that TCP and UDP traffic should be classified as client
 Specifies that TCP and UDP traffic should be classified as client
 or server based upon the destination port of the header.
 or server based upon the destination port of the header.
+<p><dl compact><dt><b>-e</b> <i>string</i>, <b>--mac</b>=<b><i>string</i></b>
+<dd>Source MAC split mode.
+This option may appear up to 1 times.
+This option must not appear in combination with any of the following options:
+auto, regex, cidr, port.
+</dl>
+<p>
+Specify a list of MAC addresses to match against the source MAC
+of each packet.  Packets matching one of the values are classified
+as servers.	
 <p><dl compact><dt><b>-C</b> <i>string</i>, <b>--comment</b>=<b><i>string</i></b>
 <p><dl compact><dt><b>-C</b> <i>string</i>, <b>--comment</b>=<b><i>string</i></b>
 <dd>Embeded cache file comment.
 <dd>Embeded cache file comment.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
@@ -218,6 +234,11 @@ This option may appear up to 1 times.
 </dl>
 </dl>
 <p>
 <p>
 
 
+<p><p><dl compact><dt><b>-S</b> <i>string</i>, <b>--print-stats</b>=<b><i>string</i></b>
+<dd>Print statistical information about the specified cache file.
+</dl>
+<p>
+
 <p><p><dl compact><dt><b>-s</b> <i>string</i>, <b>--services</b>=<b><i>string</i></b>
 <p><p><dl compact><dt><b>-s</b> <i>string</i>, <b>--services</b>=<b><i>string</i></b>
 <dd>Load services file for server ports.
 <dd>Load services file for server ports.
 </dl>
 </dl>
@@ -246,6 +267,11 @@ a host to be classified as a server, specify it as a floating point value.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must appear in combination with the following options:
 This option must appear in combination with the following options:
 auto.
 auto.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 32
+<br></pre>
 </dl>
 </dl>
 <p>
 <p>
 By default, auto modes use a minimum network mask length of 30 bits
 By default, auto modes use a minimum network mask length of 30 bits
@@ -257,6 +283,11 @@ may provide inaccurate results.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must appear in combination with the following options:
 This option must appear in combination with the following options:
 auto.
 auto.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 32
+<br></pre>
 </dl>
 </dl>
 <p>
 <p>
 By default, auto modes use a maximum network mask length of 8 bits
 By default, auto modes use a maximum network mask length of 8 bits

+ 11 - 0
docs/web/man/tcpreplay.html

@@ -31,6 +31,11 @@ firewalls, NIDS and other network devices.
 <p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
 <p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
 <dd>Enable debugging output.
 <dd>Enable debugging output.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 5
+<br></pre>
 The default <i>number</i> for this option is:
 The default <i>number</i> for this option is:
 </dl><br>
 </dl><br>
  0
  0
@@ -82,6 +87,11 @@ cachefile.
 <p><p><dl compact><dt><b>-l</b> <i>number</i>, <b>--loop</b>=<b><i>number</i></b>
 <p><p><dl compact><dt><b>-l</b> <i>number</i>, <b>--loop</b>=<b><i>number</i></b>
 <dd>Loop through the capture file X times.
 <dd>Loop through the capture file X times.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+greater than or equal to 0
+<br></pre>
 The default <i>number</i> for this option is:
 The default <i>number</i> for this option is:
 </dl><br>
 </dl><br>
  1
  1
@@ -117,6 +127,7 @@ Examples:
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must not appear in combination with any of the following options:
 This option must not appear in combination with any of the following options:
 multiplier, mbps, oneatatime, topspeed.
 multiplier, mbps, oneatatime, topspeed.
+This option takes an integer number as its argument.
 </dl>
 </dl>
 <p>
 <p>
 
 

+ 73 - 38
docs/web/man/tcprewrite.html

@@ -15,10 +15,10 @@ All arguments must be options.
 </ul><H2>DESCRIPTION </H2><ul>
 </ul><H2>DESCRIPTION </H2><ul>
 
 
 This manual page documents, briefly, the <b>tcprewrite</b> command.
 This manual page documents, briefly, the <b>tcprewrite</b> command.
-Tcprewrite is a tool to rewrite packets stored in <i>pcap(3)</i> file format, such
-as crated by tools such as <i>tcpdump(1)</i> and <i>ethereal(1)</i>.  Once a pcap 
-file has had it's packets rewritten, they can be replayed back out on the network
-using <i>tcpreplay(1)</i>.
+Tcprewrite is a tool to rewrite packets stored in <i>pcap(3)</i> file format, 
+such as crated by tools such as <i>tcpdump(1)</i> and <i>ethereal(1)</i>.  
+Once a pcap file has had it's packets rewritten, they can be replayed back 
+out on the network using <i>tcpreplay(1)</i>.
 
 
 <p>tcprewrite currently supports the following DLT types:
 <p>tcprewrite currently supports the following DLT types:
     * DLT_C_HDLC
     * DLT_C_HDLC
@@ -31,16 +31,6 @@ and "server" traffic requires a tcpprep(1) cache file.
 
 
 </ul><H2>OPTIONS </H2><ul>
 </ul><H2>OPTIONS </H2><ul>
 
 
-<p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
-<dd>Enable debugging output.
-This option may appear up to 1 times.
-The default <i>number</i> for this option is:
-</dl><br>
- 0
-
-<p>
-If configured with --enable-debug, then you can specify a verbosity 
-level for debugging output.  Higher numbers increase verbosity.
 <p><dl compact><dt><b>-D</b> <i>string</i>, <b>--dmac</b>=<b><i>string</i></b>
 <p><dl compact><dt><b>-D</b> <i>string</i>, <b>--dmac</b>=<b><i>string</i></b>
 <dd>Rewrite destination MAC addresses.
 <dd>Rewrite destination MAC addresses.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
@@ -73,6 +63,11 @@ and the optional second MAC address will be used for the client traffic.
 <p><dl compact><dt><b>-P</b> <i>number</i>, <b>--proto</b>=<b><i>number</i></b>
 <p><dl compact><dt><b>-P</b> <i>number</i>, <b>--proto</b>=<b><i>number</i></b>
 <dd>Override L2 protocol type for DLT_RAW.
 <dd>Override L2 protocol type for DLT_RAW.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 65535
+<br></pre>
 </dl>
 </dl>
 <p>
 <p>
 By default, pcap files encapsulated using DLT_RAW will have their protocol
 By default, pcap files encapsulated using DLT_RAW will have their protocol
@@ -90,7 +85,7 @@ time, it will be used for the client traffic.
 
 
 <p>Example:
 <p>Example:
 <pre>
 <pre>
-    --dlink 01,02,03,04,05,06,00,11,22,33,44,55,66,08,00
+    --dlink=01,02,03,04,05,06,00,1A,2B,3C,4D,5E,6F,08,00
 <br></pre>
 <br></pre>
 <p><dl compact><dt><b>-r</b> <i>string</i>, <b>--portmap</b>=<b><i>string</i></b>
 <p><dl compact><dt><b>-r</b> <i>string</i>, <b>--portmap</b>=<b><i>string</i></b>
 <dd>Rewrite TCP/UDP ports.
 <dd>Rewrite TCP/UDP ports.
@@ -103,11 +98,12 @@ consists of the port to match followed by the port number to rewrite.
 
 
 <p>Example:
 <p>Example:
 <pre>
 <pre>
-    --portmap 80:8000,8080:80
+    --portmap=80:8000,8080:80
 <br></pre>
 <br></pre>
 <p><dl compact><dt><b>-s</b> <i>number</i>, <b>--seed</b>=<b><i>number</i></b>
 <p><dl compact><dt><b>-s</b> <i>number</i>, <b>--seed</b>=<b><i>number</i></b>
 <dd>Randomize src/dst IP addresses w/ given seed.
 <dd>Randomize src/dst IP addresses w/ given seed.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
 </dl>
 </dl>
 <p>
 <p>
 Causes the source and destination IP addresses to be pseudo 
 Causes the source and destination IP addresses to be pseudo 
@@ -127,7 +123,7 @@ mask against the high order bits.
 
 
 <p>Example:
 <p>Example:
 <pre>
 <pre>
-    --pnat 192.168.0.0/16:10.77.0.0/16,172.16.0.0/12:10.1.0.0/24
+    --pnat=192.168.0.0/16:10.77.0.0/16,172.16.0.0/12:10.1.0.0/24
 <br></pre>
 <br></pre>
 <p><dl compact><dt><b>-e</b> <i>string</i>, <b>--endpoints</b>=<b><i>string</i></b>
 <p><dl compact><dt><b>-e</b> <i>string</i>, <b>--endpoints</b>=<b><i>string</i></b>
 <dd>Rewrite IP addresses to be between two endpoints.
 <dd>Rewrite IP addresses to be between two endpoints.
@@ -139,7 +135,7 @@ all traffic to appear to be between the two IP's.
 
 
 <p>Example:
 <p>Example:
 <pre>
 <pre>
-    --endpoints 172.16.0.1:172.16.0.2
+    --endpoints=172.16.0.1:172.16.0.2
 <br></pre>
 <br></pre>
 <p><dl compact><dt><b>-C</b>, <b>--fixcsum</b>
 <p><dl compact><dt><b>-C</b>, <b>--fixcsum</b>
 <dd>Force recalculation of IP/TCP/UDP checksums.
 <dd>Force recalculation of IP/TCP/UDP checksums.
@@ -148,27 +144,14 @@ all traffic to appear to be between the two IP's.
 Causes each IP packet to have it's checksums recalcualted and
 Causes each IP packet to have it's checksums recalcualted and
 fixed.  Automatically enabled for packets modified with <b>--seed</b>, 
 fixed.  Automatically enabled for packets modified with <b>--seed</b>, 
 <b>--pnat</b>, <b>--endpoints</b> or <b>--fixlen</b>.
 <b>--pnat</b>, <b>--endpoints</b> or <b>--fixlen</b>.
-<p><dl compact><dt><b>-i</b> <i>string</i>, <b>--infile</b>=<b><i>string</i></b>
-<dd>Input pcap file to be processed.
-This option may appear up to 1 times.
-</dl>
-<p>
-
-<p><p><dl compact><dt><b>-o</b> <i>string</i>, <b>--outfile</b>=<b><i>string</i></b>
-<dd>Output pcap file.
-This option may appear up to 1 times.
-</dl>
-<p>
-
-<p><p><dl compact><dt><b>-c</b> <i>string</i>, <b>--cachefile</b>=<b><i>string</i></b>
-<dd>Split traffic via tcpprep cache file.
-This option may appear up to 1 times.
-</dl>
-<p>
-Use tcpprep cache file to split traffic based upon client/server relationships.
 <p><dl compact><dt><b>-m</b> <i>number</i>, <b>--mtu</b>=<b><i>number</i></b>
 <p><dl compact><dt><b>-m</b> <i>number</i>, <b>--mtu</b>=<b><i>number</i></b>
 <dd>Override default MTU length (1500 bytes).
 <dd>Override default MTU length (1500 bytes).
 This option may appear up to 1 times.
 This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  1 through MAXPACKET
+<br></pre>
 </dl>
 </dl>
 <p>
 <p>
 Override the default 1500 byte MTU size for determining the maximum padding length.
 Override the default 1500 byte MTU size for determining the maximum padding length.
@@ -196,6 +179,10 @@ IPv4 total length
 <b>trunc</b>
 <b>trunc</b>
 Truncated packets will have their IPv4 total length field rewritten to match
 Truncated packets will have their IPv4 total length field rewritten to match
 the actual packet length
 the actual packet length
+
+<p>
+<b>del</b>
+Delete the packet
 <p><dl compact><dt><b>-T</b> <i>string</i>, <b>--vlan</b>=<b><i>string</i></b>
 <p><dl compact><dt><b>-T</b> <i>string</i>, <b>--vlan</b>=<b><i>string</i></b>
 <dd>Specify 802.1q VLAN tag mode.
 <dd>Specify 802.1q VLAN tag mode.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
@@ -216,14 +203,24 @@ Rewrites the existing 802.1q VLAN header as an 802.3 ethernet header
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must appear in combination with the following options:
 This option must appear in combination with the following options:
 vlan.
 vlan.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 4095
+<br></pre>
 </dl>
 </dl>
 <p>
 <p>
 
 
-<p><p><dl compact><dt><b>-c</b> <i>number</i>, <b>--vlan-cfi</b>=<b><i>number</i></b>
+<p><p><dl compact><dt><b>-f</b> <i>number</i>, <b>--vlan-cfi</b>=<b><i>number</i></b>
 <dd>Specify the 802.1q VLAN CFI value.
 <dd>Specify the 802.1q VLAN CFI value.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must appear in combination with the following options:
 This option must appear in combination with the following options:
 vlan.
 vlan.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 1
+<br></pre>
 </dl>
 </dl>
 <p>
 <p>
 
 
@@ -232,10 +229,48 @@ vlan.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 This option must appear in combination with the following options:
 This option must appear in combination with the following options:
 vlan.
 vlan.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 7
+<br></pre>
+</dl>
+<p>
+
+<p><p><dl compact><dt><b>-d</b> <i>number</i>, <b>--dbug</b>=<b><i>number</i></b>
+<dd>Enable debugging output.
+This option may appear up to 1 times.
+This option takes an integer number as its argument.
+The value of <i>number</i> is constrained to being:
+<pre>
+in the range  0 through 5
+<br></pre>
+The default <i>number</i> for this option is:
+</dl><br>
+ 0
+
+<p>
+If configured with --enable-debug, then you can specify a verbosity 
+level for debugging output.  Higher numbers increase verbosity.
+<p><dl compact><dt><b>-i</b> <i>string</i>, <b>--infile</b>=<b><i>string</i></b>
+<dd>Input pcap file to be processed.
+This option may appear up to 1 times.
 </dl>
 </dl>
 <p>
 <p>
 
 
-<p><p><dl compact><dt><b>-v</b>, <b>--verbose</b>
+<p><p><dl compact><dt><b>-o</b> <i>string</i>, <b>--outfile</b>=<b><i>string</i></b>
+<dd>Output pcap file.
+This option may appear up to 1 times.
+</dl>
+<p>
+
+<p><p><dl compact><dt><b>-c</b> <i>string</i>, <b>--cachefile</b>=<b><i>string</i></b>
+<dd>Split traffic via tcpprep cache file.
+This option may appear up to 1 times.
+</dl>
+<p>
+Use tcpprep cache file to split traffic based upon client/server relationships.
+<p><dl compact><dt><b>-v</b>, <b>--verbose</b>
 <dd>Print decoded packets via tcpdump to STDOUT.
 <dd>Print decoded packets via tcpdump to STDOUT.
 This option may appear up to 1 times.
 This option may appear up to 1 times.
 </dl>
 </dl>

+ 0 - 1
docs/web/manual/WARNINGS

@@ -8,4 +8,3 @@ redefining command \url
 previous meaning of \url will be lost
 previous meaning of \url will be lost
 
 
 ? brace missing for \setlength
 ? brace missing for \setlength
-Unrecognized option  to \includegraphics

+ 36 - 34
docs/web/manual/images.log

@@ -1,4 +1,4 @@
-This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2005.5.19)  7 AUG 2005 09:49
+This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2006.6.8)  17 JUL 2006 20:34
 entering extended mode
 entering extended mode
 **./images.tex
 **./images.tex
 (./images.tex
 (./images.tex
@@ -9,9 +9,9 @@ stonian, finnish, greek, icelandic, irish, italian, latin, magyar, norsk, polis
 h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur
 h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur
 kish, ukrainian, nohyphenation, loaded.
 kish, ukrainian, nohyphenation, loaded.
 
 
-(/sw/share/texmf-dist/tex/latex/base/article.cls
+(/opt/local/share/texmf-dist/tex/latex/base/article.cls
 Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
 Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
-(/sw/share/texmf-dist/tex/latex/base/size10.clo
+(/opt/local/share/texmf-dist/tex/latex/base/size10.clo
 File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
 File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
 )
 )
 \c@part=\count79
 \c@part=\count79
@@ -25,22 +25,22 @@ File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
 \abovecaptionskip=\skip41
 \abovecaptionskip=\skip41
 \belowcaptionskip=\skip42
 \belowcaptionskip=\skip42
 \bibindent=\dimen102
 \bibindent=\dimen102
-) (/sw/share/texmf-dist/tex/latex/base/ifthen.sty
+) (/opt/local/share/texmf-dist/tex/latex/base/ifthen.sty
 Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
 Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
-) (/sw/share/texmf-dist/tex/latex/psnfss/times.sty
+) (/opt/local/share/texmf-dist/tex/latex/psnfss/times.sty
 Package: times 2004/09/15 PSNFSS-v9.2 (SPQR) 
 Package: times 2004/09/15 PSNFSS-v9.2 (SPQR) 
-) (/sw/share/texmf-dist/tex/latex/base/fontenc.sty
+) (/opt/local/share/texmf-dist/tex/latex/base/fontenc.sty
 Package: fontenc 2004/02/22 v1.99f Standard LaTeX package
 Package: fontenc 2004/02/22 v1.99f Standard LaTeX package
-(/sw/share/texmf-dist/tex/latex/base/t1enc.def
+(/opt/local/share/texmf-dist/tex/latex/base/t1enc.def
 File: t1enc.def 2004/02/22 v1.99f Standard LaTeX file
 File: t1enc.def 2004/02/22 v1.99f Standard LaTeX file
 LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
 LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
-)) (/sw/share/texmf-dist/tex/latex/base/inputenc.sty
+)) (/opt/local/share/texmf-dist/tex/latex/base/inputenc.sty
 Package: inputenc 2004/02/05 v1.0d Input encoding file
 Package: inputenc 2004/02/05 v1.0d Input encoding file
-(/sw/share/texmf-dist/tex/latex/base/latin1.def
+(/opt/local/share/texmf-dist/tex/latex/base/latin1.def
 File: latin1.def 2004/02/05 v1.0d Input encoding file
 File: latin1.def 2004/02/05 v1.0d Input encoding file
-)) (/sw/share/texmf-dist/tex/latex/geometry/geometry.sty
+)) (/opt/local/share/texmf-dist/tex/latex/geometry/geometry.sty
 Package: geometry 2002/07/08 v3.2 Page Geometry
 Package: geometry 2002/07/08 v3.2 Page Geometry
-(/sw/share/texmf-dist/tex/latex/graphics/keyval.sty
+(/opt/local/share/texmf-dist/tex/latex/graphics/keyval.sty
 Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \KV@toks@=\toks14
 \KV@toks@=\toks14
 )
 )
@@ -52,30 +52,30 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \Gm@odd@mp=\dimen105
 \Gm@odd@mp=\dimen105
 \Gm@even@mp=\dimen106
 \Gm@even@mp=\dimen106
 \Gm@dimlist=\toks15
 \Gm@dimlist=\toks15
-(/sw/share/texmf-dist/tex/latex/geometry/geometry.cfg)) (/sw/share/texmf-dist/t
-ex/latex/graphics/graphicx.sty
+(/opt/local/share/texmf-dist/tex/latex/geometry/geometry.cfg)) (/opt/local/shar
+e/texmf-dist/tex/latex/graphics/graphicx.sty
 Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
 Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
-(/sw/share/texmf-dist/tex/latex/graphics/graphics.sty
+(/opt/local/share/texmf-dist/tex/latex/graphics/graphics.sty
 Package: graphics 2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)
 Package: graphics 2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)
-(/sw/share/texmf-dist/tex/latex/graphics/trig.sty
+(/opt/local/share/texmf-dist/tex/latex/graphics/trig.sty
 Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
 Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
-) (/sw/share/texmf-dist/tex/latex/graphics/graphics.cfg
+) (/opt/local/share/texmf-dist/tex/latex/graphics/graphics.cfg
 File: graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive
 File: graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive
 )
 )
 Package graphics Info: Driver file: dvips.def on input line 80.
 Package graphics Info: Driver file: dvips.def on input line 80.
-(/sw/share/texmf-dist/tex/latex/graphics/dvips.def
+(/opt/local/share/texmf-dist/tex/latex/graphics/dvips.def
 File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
 File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
 ))
 ))
 \Gin@req@height=\dimen107
 \Gin@req@height=\dimen107
 \Gin@req@width=\dimen108
 \Gin@req@width=\dimen108
-) (/sw/share/texmf-local/tex/latex/html/url.sty
+) (/opt/local/share/texmf-local/tex/latex/html/url.sty
 Package: url 1999/03/02  ver 1.4  Verb mode for urls, email addresses, and file
 Package: url 1999/03/02  ver 1.4  Verb mode for urls, email addresses, and file
  names
  names
-) (/sw/share/texmf-dist/tex/generic/babel/babel.sty
+) (/opt/local/share/texmf-dist/tex/generic/babel/babel.sty
 Package: babel 2004/11/20 v3.8d The Babel package
 Package: babel 2004/11/20 v3.8d The Babel package
-(/sw/share/texmf-dist/tex/generic/babel/english.ldf
+(/opt/local/share/texmf-dist/tex/generic/babel/english.ldf
 Language: english 2004/06/14 v3.3o English support from the babel system
 Language: english 2004/06/14 v3.3o English support from the babel system
-(/sw/share/texmf-dist/tex/generic/babel/babel.def
+(/opt/local/share/texmf-dist/tex/generic/babel/babel.def
 File: babel.def 2004/11/20 v3.8d Babel common definitions
 File: babel.def 2004/11/20 v3.8d Babel common definitions
 \babel@savecnt=\count90
 \babel@savecnt=\count90
 \U@D=\dimen109
 \U@D=\dimen109
@@ -85,13 +85,13 @@ File: babel.def 2004/11/20 v3.8d Babel common definitions
 \l@canadian = a dialect from \language\l@american 
 \l@canadian = a dialect from \language\l@american 
 \l@australian = a dialect from \language\l@british 
 \l@australian = a dialect from \language\l@british 
 \l@newzealand = a dialect from \language\l@british 
 \l@newzealand = a dialect from \language\l@british 
-)) (/sw/share/texmf-dist/tex/latex/graphics/color.sty
+)) (/opt/local/share/texmf-dist/tex/latex/graphics/color.sty
 Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC)
 Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC)
-(/sw/share/texmf-dist/tex/latex/graphics/color.cfg
+(/opt/local/share/texmf-dist/tex/latex/graphics/color.cfg
 File: color.cfg 2005/02/03 v1.3 color configuration of teTeX/TeXLive
 File: color.cfg 2005/02/03 v1.3 color configuration of teTeX/TeXLive
 )
 )
 Package color Info: Driver file: dvips.def on input line 125.
 Package color Info: Driver file: dvips.def on input line 125.
-(/sw/share/texmf-dist/tex/latex/graphics/dvipsnam.def
+(/opt/local/share/texmf-dist/tex/latex/graphics/dvipsnam.def
 File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
 File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
 ))
 ))
 \sizebox=\box26
 \sizebox=\box26
@@ -112,7 +112,7 @@ LaTeX Font Info:    ... okay on input line 147.
 LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 147.
 LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 147.
 LaTeX Font Info:    ... okay on input line 147.
 LaTeX Font Info:    ... okay on input line 147.
 LaTeX Font Info:    Try loading font information for T1+ptm on input line 147.
 LaTeX Font Info:    Try loading font information for T1+ptm on input line 147.
-(/sw/share/texmf-dist/tex/latex/psnfss/t1ptm.fd
+(/opt/local/share/texmf-dist/tex/latex/psnfss/t1ptm.fd
 File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
 File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
 )
 )
 
 
@@ -181,21 +181,23 @@ latex2htmlLength oddsidemargin=-43.81725pt
 
 
 latex2htmlLength evensidemargin=-43.81725pt
 latex2htmlLength evensidemargin=-43.81725pt
 
 
-File: router-mode3.eps Graphic file (type eps)
-<router-mode3.eps>
-l2hSize :tex2html_wrap2274:261.37915pt::0.0pt::349.0pt.
+LaTeX Font Info:    Try loading font information for T1+pcr on input line 172.
+(/opt/local/share/texmf-dist/tex/latex/psnfss/t1pcr.fd
+File: t1pcr.fd 2001/06/04 font definitions for T1/pcr.
+)
+l2hSize :tex2html_wrap2280:60.2256pt::0.0pt::349.0pt.
 [1
 [1
 
 
 
 
 
 
 ] (./images.aux) ) 
 ] (./images.aux) ) 
 Here is how much of TeX's memory you used:
 Here is how much of TeX's memory you used:
- 1744 strings out of 94501
- 21626 string characters out of 1176137
+ 1771 strings out of 94501
+ 22372 string characters out of 1174997
  71589 words of memory out of 1000000
  71589 words of memory out of 1000000
- 4930 multiletter control sequences out of 10000+50000
- 6047 words of font info for 16 fonts, out of 500000 for 2000
+ 4955 multiletter control sequences out of 10000+50000
+ 6369 words of font info for 17 fonts, out of 500000 for 2000
  580 hyphenation exceptions out of 1000
  580 hyphenation exceptions out of 1000
- 25i,5n,19p,225b,205s stack positions out of 1500i,500n,5000p,200000b,5000s
+ 25i,5n,19p,225b,210s stack positions out of 1500i,500n,5000p,200000b,5000s
 
 
-Output written on images.dvi (1 page, 332 bytes).
+Output written on images.dvi (1 page, 392 bytes).

+ 4 - 5
docs/web/manual/images.pl

@@ -1,13 +1,12 @@
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # Associate images original text with physical files.
 # Associate images original text with physical files.
 
 
 
 
-$key = q/includegraphics[<comment_mark>20scale=0.6]{router-mode3.eps};AAT/;
+$key = q/includegraphics[scale=0.6,bb=00200100,draft,type=eps]{router-mode3.eps};AAT/;
 $cached_env_img{$key} = q|<IMG
 $cached_env_img{$key} = q|<IMG
- WIDTH="363" HEIGHT="415" ALIGN="BOTTOM" BORDER="0"
+ WIDTH="192" HEIGHT="96" ALIGN="BOTTOM" BORDER="0"
  SRC="|."$dir".q|img1.png"
  SRC="|."$dir".q|img1.png"
- ALT="\includegraphics[%
-scale=0.6]{router-mode3.eps}">|; 
+ ALT="\includegraphics[scale=0.6,bb = 0 0 200 100, draft, type=eps]{router-mode3.eps}">|; 
 
 
 1;
 1;
 
 

+ 10 - 11
docs/web/manual/images.tex

@@ -30,14 +30,14 @@
 
 
 %
 %
 \newenvironment{lyxcode}{\begin{list}{}{
 \newenvironment{lyxcode}{\begin{list}{}{
-     \setlength{\rightmargin}{\leftmargin}
-     \setlength{\listparindent}{0pt}% needed for AMS classes
-     \raggedright
-     \setlength{\itemsep}{0pt}
-     \setlength{\parsep}{0pt}
-     \normalfont\ttfamily}%
-    \item[]}
-   {\end{list}} 
+\setlength{\rightmargin}{\leftmargin}
+\setlength{\listparindent}{0pt}% needed for AMS classes
+\raggedright
+\setlength{\itemsep}{0pt}
+\setlength{\parsep}{0pt}
+\normalfont\ttfamily}%
+ \item[]}
+{\end{list}} 
 
 
 
 
 \usepackage{babel}
 \usepackage{babel}
@@ -168,9 +168,8 @@
 
 
 \setcounter{secnumdepth}{4}
 \setcounter{secnumdepth}{4}
 {\newpage\clearpage
 {\newpage\clearpage
-\lthtmlpictureA{tex2html_wrap2274}%
-\includegraphics[%
-  scale=0.6]{router-mode3.eps}%
+\lthtmlpictureA{tex2html_wrap2280}%
+\includegraphics[scale=0.6,bb = 0 0 200 100, draft, type=eps]{router-mode3.eps}%
 \lthtmlpictureZ
 \lthtmlpictureZ
 \lthtmlcheckvsize\clearpage}
 \lthtmlcheckvsize\clearpage}
 
 

BIN
docs/web/manual/img1.old


BIN
docs/web/manual/img1.png


+ 39 - 31
docs/web/manual/index.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="manual.css">
 <LINK REL="STYLESHEET" HREF="manual.css">
@@ -200,7 +200,7 @@ additional features and bugfixes not yet found in the offical releases.
 
 
 <DL COMPACT>
 <DL COMPACT>
 <DT>
 <DT>
-<DD>$&nbsp;svn&nbsp;checkout&nbsp;https://www.synfin.net:444/svn/tcpreplay/trunk&nbsp;tcpreplay
+<DD>$&nbsp;svn&nbsp;checkout&nbsp;https://www.synfin.net/svn/tcpreplay/trunk&nbsp;tcpreplay
 </DD>
 </DD>
 </DL>
 </DL>
 <P>
 <P>
@@ -315,7 +315,7 @@ Replaying at different speeds</A>
 <P>
 <P>
 You can also replay the traffic at different speeds then it was originally
 You can also replay the traffic at different speeds then it was originally
 captured<A NAME="tex2html4"
 captured<A NAME="tex2html4"
-  HREF="#foot507"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A>. 
+  HREF="#foot505"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 Some examples:
 Some examples:
@@ -425,7 +425,7 @@ checksums
 UDP ports for the given service
 UDP ports for the given service
 </LI>
 </LI>
 <LI>Changing ethernet MAC addresses so that packets will be accepted by
 <LI>Changing ethernet MAC addresses so that packets will be accepted by
-a router or firewall
+a switch, router or firewall
 </LI>
 </LI>
 </OL>
 </OL>
 
 
@@ -519,7 +519,9 @@ clients and servers are on diffierent networks.
 <BR>
 <BR>
 S<SMALL>TEP 1:</SMALL> Categorize Clients, Servers and Unknowns</TD>
 S<SMALL>TEP 1:</SMALL> Categorize Clients, Servers and Unknowns</TD>
 </TR>
 </TR>
-</TABLE>
+</TABLE></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
@@ -529,10 +531,15 @@ S<SMALL>TEP 1:</SMALL> Categorize Clients, Servers and Unknowns</TD>
 <DIV ALIGN="CENTER">
 <DIV ALIGN="CENTER">
 <TABLE CELLPADDING=3>
 <TABLE CELLPADDING=3>
 <TR><TD ALIGN="CENTER">S<SMALL>TEP 3:</SMALL> Unknowns Now Marked as Clients and Servers
 <TR><TD ALIGN="CENTER">S<SMALL>TEP 3:</SMALL> Unknowns Now Marked as Clients and Servers
-<BR></SMALL>
+<BR><IMG
+  WIDTH="254" HEIGHT="290" ALIGN="BOTTOM" BORDER="0"
+ SRC="./router-mode3.png"
+ ALT="Image router-mode3">
 <BR></TD>
 <BR></TD>
 </TR>
 </TR>
-</TABLE>
+</TABLE></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
@@ -882,12 +889,12 @@ You can also enabling bi-directional traffic using the bridge mode
 flag: -b.
 flag: -b.
 
 
 <P>
 <P>
-N<SMALL>OTE:</SMALL> It is critical for your sanity (and to prevent your
-murder by your network administrators) that the input interface and
-the output interface be on separate networks and additionally that
-no other network devices (such as bridges, switches, routers, etc)
-be connecting the two networks, else you will surely get a networkstorm
-the likes that have not been seen for years.
+N<SMALL>OTE:</SMALL> It is critical for your sanity (and to prevent your murder
+by your network administrators) that the input interface and the output
+interface be on separate networks and additionally that no other network
+devices (such as bridges, switches, routers, etc) be connecting the
+two networks, else you will surely get a networkstorm the likes that
+have not been seen for years.
 
 
 <P>
 <P>
 
 
@@ -1244,7 +1251,9 @@ interface using the following matrix:
 <BR>
 <BR>
 Src IP</TD>
 Src IP</TD>
 </TR>
 </TR>
-</TABLE>
+</TABLE></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
@@ -1667,7 +1676,7 @@ Some of these limitations are:
 
 
 <UL>
 <UL>
 <LI>Flowreplay only plays the client side<A NAME="tex2html10"
 <LI>Flowreplay only plays the client side<A NAME="tex2html10"
-  HREF="#foot455"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A> of the connection.
+  HREF="#foot452"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A> of the connection.
 </LI>
 </LI>
 <LI>Flowreplay doesn't understand the application protocols. Hence it
 <LI>Flowreplay doesn't understand the application protocols. Hence it
 can't always deal with the case when the server sends a different
 can't always deal with the case when the server sends a different
@@ -1712,15 +1721,14 @@ It may even make your system horribly unstable, corrupt your harddrive,
 or worse.
 or worse.
 
 
 <P>
 <P>
-N<SMALL>OTE</SMALL>: Different operating systems, network card drivers,
-and even hardware can have an effect on the accuracy of packet timestamps
+N<SMALL>OTE</SMALL>: Different operating systems, network card drivers, and
+even hardware can have an effect on the accuracy of packet timestamps
 that tcpdump or other capture utilities generate. And as you know:
 that tcpdump or other capture utilities generate. And as you know:
 garbage in, garbage out.
 garbage in, garbage out.
 
 
 <P>
 <P>
-N<SMALL>OTE:</SMALL> If you have information on tuning the kernel of an
-operating system not listed here, please send it to me so I can include
-it.
+N<SMALL>OTE:</SMALL> If you have information on tuning the kernel of an operating
+system not listed here, please send it to me so I can include it.
 
 
 <P>
 <P>
 
 
@@ -1778,7 +1786,7 @@ As of tcpreplay v1.4, you'll need to have libpcap installed on your
 system. As of v2.0, you'll need at least version 0.6.0 or better,
 system. As of v2.0, you'll need at least version 0.6.0 or better,
 but I only test our code with the latest version. Libpcap can be obtained
 but I only test our code with the latest version. Libpcap can be obtained
 on the tcpdump homepage<A NAME="tex2html11"
 on the tcpdump homepage<A NAME="tex2html11"
-  HREF="#foot518"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A>. 
+  HREF="#foot516"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 
 
@@ -1790,7 +1798,7 @@ Libnet</A>
 Tcpreplay v1.3 is the last version to support the old libnet API (everything
 Tcpreplay v1.3 is the last version to support the old libnet API (everything
 before 1.1.x). As of v1.4 you will need to use Libnet 1.1.0 or better
 before 1.1.x). As of v1.4 you will need to use Libnet 1.1.0 or better
 which can be obtained from the Libnet homepage<A NAME="tex2html12"
 which can be obtained from the Libnet homepage<A NAME="tex2html12"
-  HREF="#foot519"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A>. 
+  HREF="#foot517"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 
 
@@ -1805,9 +1813,9 @@ sends them. If you would like this feature, tcpdump must be installed
 on your system.
 on your system.
 
 
 <P>
 <P>
-N<SMALL>OTE:</SMALL> The location of the tcpdump binary is hardcoded in
-tcpreplay at compile time. If tcpdump gets renamed or moved, the feature
-will become disabled.
+N<SMALL>OTE:</SMALL> The location of the tcpdump binary is hardcoded in tcpreplay
+at compile time. If tcpdump gets renamed or moved, the feature will
+become disabled.
 
 
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
@@ -1827,7 +1835,7 @@ will become disabled.
 <DD>http://www.tcpdump.org/
 <DD>http://www.tcpdump.org/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot507">...
+<DT><A NAME="foot505">...
 captured</A><A
 captured</A><A
  HREF="manual.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
 <DD>Tcpreplay makes a &#34;best&#34; effort to replay traffic
 <DD>Tcpreplay makes a &#34;best&#34; effort to replay traffic
@@ -1870,18 +1878,18 @@ man page for more info.
 Solaris snoop format.
 Solaris snoop format.
 
 
 </DD>
 </DD>
-<DT><A NAME="foot455">... side</A><A
+<DT><A NAME="foot452">... side</A><A
  HREF="manual.html#tex2html10"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html10"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A></DT>
 <DD>Flowreplay assumes the first UDP packet on a given 4-tuple is the
 <DD>Flowreplay assumes the first UDP packet on a given 4-tuple is the
 client
 client
 
 
 </DD>
 </DD>
-<DT><A NAME="foot518">... homepage</A><A
+<DT><A NAME="foot516">... homepage</A><A
  HREF="manual.html#tex2html11"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html11"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A></DT>
 <DD>http://www.tcpdump.org/
 <DD>http://www.tcpdump.org/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot519">... homepage</A><A
+<DT><A NAME="foot517">... homepage</A><A
  HREF="manual.html#tex2html12"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html12"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A></DT>
 <DD>http://www.packetfactory.net/Projects/Libnet/
 <DD>http://www.packetfactory.net/Projects/Libnet/
 
 
@@ -2055,7 +2063,7 @@ client
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 2 - 2
docs/web/manual/labels.pl

@@ -1,11 +1,11 @@
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # Associate labels original text with physical files.
 # Associate labels original text with physical files.
 
 
 
 
 1;
 1;
 
 
 
 
-# LaTeX2HTML 2002-2-1 (1.70)
+# LaTeX2HTML 2002-2 (1.70)
 # labels from external_latex_labels array.
 # labels from external_latex_labels array.
 
 
 
 

+ 39 - 31
docs/web/manual/manual.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="manual.css">
 <LINK REL="STYLESHEET" HREF="manual.css">
@@ -200,7 +200,7 @@ additional features and bugfixes not yet found in the offical releases.
 
 
 <DL COMPACT>
 <DL COMPACT>
 <DT>
 <DT>
-<DD>$&nbsp;svn&nbsp;checkout&nbsp;https://www.synfin.net:444/svn/tcpreplay/trunk&nbsp;tcpreplay
+<DD>$&nbsp;svn&nbsp;checkout&nbsp;https://www.synfin.net/svn/tcpreplay/trunk&nbsp;tcpreplay
 </DD>
 </DD>
 </DL>
 </DL>
 <P>
 <P>
@@ -315,7 +315,7 @@ Replaying at different speeds</A>
 <P>
 <P>
 You can also replay the traffic at different speeds then it was originally
 You can also replay the traffic at different speeds then it was originally
 captured<A NAME="tex2html4"
 captured<A NAME="tex2html4"
-  HREF="#foot507"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A>. 
+  HREF="#foot505"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 Some examples:
 Some examples:
@@ -425,7 +425,7 @@ checksums
 UDP ports for the given service
 UDP ports for the given service
 </LI>
 </LI>
 <LI>Changing ethernet MAC addresses so that packets will be accepted by
 <LI>Changing ethernet MAC addresses so that packets will be accepted by
-a router or firewall
+a switch, router or firewall
 </LI>
 </LI>
 </OL>
 </OL>
 
 
@@ -519,7 +519,9 @@ clients and servers are on diffierent networks.
 <BR>
 <BR>
 S<SMALL>TEP 1:</SMALL> Categorize Clients, Servers and Unknowns</TD>
 S<SMALL>TEP 1:</SMALL> Categorize Clients, Servers and Unknowns</TD>
 </TR>
 </TR>
-</TABLE>
+</TABLE></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
@@ -529,10 +531,15 @@ S<SMALL>TEP 1:</SMALL> Categorize Clients, Servers and Unknowns</TD>
 <DIV ALIGN="CENTER">
 <DIV ALIGN="CENTER">
 <TABLE CELLPADDING=3>
 <TABLE CELLPADDING=3>
 <TR><TD ALIGN="CENTER">S<SMALL>TEP 3:</SMALL> Unknowns Now Marked as Clients and Servers
 <TR><TD ALIGN="CENTER">S<SMALL>TEP 3:</SMALL> Unknowns Now Marked as Clients and Servers
-<BR></SMALL>
+<BR><IMG
+  WIDTH="254" HEIGHT="290" ALIGN="BOTTOM" BORDER="0"
+ SRC="./router-mode3.png"
+ ALT="Image router-mode3">
 <BR></TD>
 <BR></TD>
 </TR>
 </TR>
-</TABLE>
+</TABLE></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
@@ -882,12 +889,12 @@ You can also enabling bi-directional traffic using the bridge mode
 flag: -b.
 flag: -b.
 
 
 <P>
 <P>
-N<SMALL>OTE:</SMALL> It is critical for your sanity (and to prevent your
-murder by your network administrators) that the input interface and
-the output interface be on separate networks and additionally that
-no other network devices (such as bridges, switches, routers, etc)
-be connecting the two networks, else you will surely get a networkstorm
-the likes that have not been seen for years.
+N<SMALL>OTE:</SMALL> It is critical for your sanity (and to prevent your murder
+by your network administrators) that the input interface and the output
+interface be on separate networks and additionally that no other network
+devices (such as bridges, switches, routers, etc) be connecting the
+two networks, else you will surely get a networkstorm the likes that
+have not been seen for years.
 
 
 <P>
 <P>
 
 
@@ -1244,7 +1251,9 @@ interface using the following matrix:
 <BR>
 <BR>
 Src IP</TD>
 Src IP</TD>
 </TR>
 </TR>
-</TABLE>
+</TABLE></DIV>
+<P>
+<DIV ALIGN="CENTER">
 </DIV>
 </DIV>
 
 
 <P>
 <P>
@@ -1667,7 +1676,7 @@ Some of these limitations are:
 
 
 <UL>
 <UL>
 <LI>Flowreplay only plays the client side<A NAME="tex2html10"
 <LI>Flowreplay only plays the client side<A NAME="tex2html10"
-  HREF="#foot455"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A> of the connection.
+  HREF="#foot452"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A> of the connection.
 </LI>
 </LI>
 <LI>Flowreplay doesn't understand the application protocols. Hence it
 <LI>Flowreplay doesn't understand the application protocols. Hence it
 can't always deal with the case when the server sends a different
 can't always deal with the case when the server sends a different
@@ -1712,15 +1721,14 @@ It may even make your system horribly unstable, corrupt your harddrive,
 or worse.
 or worse.
 
 
 <P>
 <P>
-N<SMALL>OTE</SMALL>: Different operating systems, network card drivers,
-and even hardware can have an effect on the accuracy of packet timestamps
+N<SMALL>OTE</SMALL>: Different operating systems, network card drivers, and
+even hardware can have an effect on the accuracy of packet timestamps
 that tcpdump or other capture utilities generate. And as you know:
 that tcpdump or other capture utilities generate. And as you know:
 garbage in, garbage out.
 garbage in, garbage out.
 
 
 <P>
 <P>
-N<SMALL>OTE:</SMALL> If you have information on tuning the kernel of an
-operating system not listed here, please send it to me so I can include
-it.
+N<SMALL>OTE:</SMALL> If you have information on tuning the kernel of an operating
+system not listed here, please send it to me so I can include it.
 
 
 <P>
 <P>
 
 
@@ -1778,7 +1786,7 @@ As of tcpreplay v1.4, you'll need to have libpcap installed on your
 system. As of v2.0, you'll need at least version 0.6.0 or better,
 system. As of v2.0, you'll need at least version 0.6.0 or better,
 but I only test our code with the latest version. Libpcap can be obtained
 but I only test our code with the latest version. Libpcap can be obtained
 on the tcpdump homepage<A NAME="tex2html11"
 on the tcpdump homepage<A NAME="tex2html11"
-  HREF="#foot518"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A>. 
+  HREF="#foot516"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 
 
@@ -1790,7 +1798,7 @@ Libnet</A>
 Tcpreplay v1.3 is the last version to support the old libnet API (everything
 Tcpreplay v1.3 is the last version to support the old libnet API (everything
 before 1.1.x). As of v1.4 you will need to use Libnet 1.1.0 or better
 before 1.1.x). As of v1.4 you will need to use Libnet 1.1.0 or better
 which can be obtained from the Libnet homepage<A NAME="tex2html12"
 which can be obtained from the Libnet homepage<A NAME="tex2html12"
-  HREF="#foot519"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A>. 
+  HREF="#foot517"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A>. 
 
 
 <P>
 <P>
 
 
@@ -1805,9 +1813,9 @@ sends them. If you would like this feature, tcpdump must be installed
 on your system.
 on your system.
 
 
 <P>
 <P>
-N<SMALL>OTE:</SMALL> The location of the tcpdump binary is hardcoded in
-tcpreplay at compile time. If tcpdump gets renamed or moved, the feature
-will become disabled.
+N<SMALL>OTE:</SMALL> The location of the tcpdump binary is hardcoded in tcpreplay
+at compile time. If tcpdump gets renamed or moved, the feature will
+become disabled.
 
 
 <P>
 <P>
 <BR><HR><H4>Footnotes</H4>
 <BR><HR><H4>Footnotes</H4>
@@ -1827,7 +1835,7 @@ will become disabled.
 <DD>http://www.tcpdump.org/
 <DD>http://www.tcpdump.org/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot507">...
+<DT><A NAME="foot505">...
 captured</A><A
 captured</A><A
  HREF="manual.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html4"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
 <DD>Tcpreplay makes a &#34;best&#34; effort to replay traffic
 <DD>Tcpreplay makes a &#34;best&#34; effort to replay traffic
@@ -1870,18 +1878,18 @@ man page for more info.
 Solaris snoop format.
 Solaris snoop format.
 
 
 </DD>
 </DD>
-<DT><A NAME="foot455">... side</A><A
+<DT><A NAME="foot452">... side</A><A
  HREF="manual.html#tex2html10"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html10"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A></DT>
 <DD>Flowreplay assumes the first UDP packet on a given 4-tuple is the
 <DD>Flowreplay assumes the first UDP packet on a given 4-tuple is the
 client
 client
 
 
 </DD>
 </DD>
-<DT><A NAME="foot518">... homepage</A><A
+<DT><A NAME="foot516">... homepage</A><A
  HREF="manual.html#tex2html11"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html11"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A></DT>
 <DD>http://www.tcpdump.org/
 <DD>http://www.tcpdump.org/
 
 
 </DD>
 </DD>
-<DT><A NAME="foot519">... homepage</A><A
+<DT><A NAME="foot517">... homepage</A><A
  HREF="manual.html#tex2html12"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A></DT>
  HREF="manual.html#tex2html12"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A></DT>
 <DD>http://www.packetfactory.net/Projects/Libnet/
 <DD>http://www.packetfactory.net/Projects/Libnet/
 
 
@@ -2055,7 +2063,7 @@ client
 <!--End of Navigation Panel-->
 <!--End of Navigation Panel-->
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

+ 9 - 3
docs/web/manual/node1.html

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 
-<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+<!--Converted with LaTeX2HTML 2002-2 (1.70)
 original version by:  Nikos Drakos, CBLU, University of Leeds
 original version by:  Nikos Drakos, CBLU, University of Leeds
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 * with significant contributions from:
 * with significant contributions from:
@@ -14,7 +14,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <META NAME="distribution" CONTENT="global">
 <META NAME="distribution" CONTENT="global">
 
 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
 
 <LINK REL="STYLESHEET" HREF="manual.css">
 <LINK REL="STYLESHEET" HREF="manual.css">
@@ -156,13 +156,19 @@ traffic or pcap capture files
 <BR>
 <BR>
 http://www.circlemud.org/&nbsp;jelson/software/tcpflow/
 http://www.circlemud.org/&nbsp;jelson/software/tcpflow/
 </LI>
 </LI>
+<LI>airodump/aireplay:
+<BR>
+Capture and replay 802.11 frames
+<BR>
+http://www.cr0.net:8040/code/network/aircrack/
+</LI>
 </UL>
 </UL>
 
 
 <P>
 <P>
 <BR><HR>
 <BR><HR>
 <ADDRESS>
 <ADDRESS>
 Aaron Turner
 Aaron Turner
-2005-08-07
+2006-07-17
 </ADDRESS>
 </ADDRESS>
 </BODY>
 </BODY>
 </HTML>
 </HTML>

BIN
docs/web/manual/router-mode3.png


+ 1 - 1
doxygen.cfg.in

@@ -1,4 +1,4 @@
-#
+# $Id$
 # Copyright 2005
 # Copyright 2005
 # Dorr H. Clark - Santa Clara University
 # Dorr H. Clark - Santa Clara University
 #
 #

+ 2 - 3
lib/Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 # @configure_input@
 
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -15,8 +15,6 @@
 @SET_MAKE@
 @SET_MAKE@
 
 
 
 
-SOURCES = $(libstrl_a_SOURCES)
-
 srcdir = @srcdir@
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 VPATH = @srcdir@
@@ -118,6 +116,7 @@ LATEX2HTML = @LATEX2HTML@
 LDFLAGS = @LDFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
+LIBOPTS_DIR = @LIBOPTS_DIR@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBS = @LIBS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBTOOL = @LIBTOOL@

BIN
libopts/._README


+ 11 - 13
libopts/COPYING.lgpl

@@ -2,7 +2,7 @@
 		       Version 2.1, February 1999
 		       Version 2.1, February 1999
 
 
  Copyright (C) 1991, 1999 Free Software Foundation, Inc.
  Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
  Everyone is permitted to copy and distribute verbatim copies
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
  of this license document, but changing it is not allowed.
 
 
@@ -55,7 +55,7 @@ modified by someone else and passed on, the recipients should know
 that what they have is not the original version, so that the original
 that what they have is not the original version, so that the original
 author's reputation will not be affected by problems that might be
 author's reputation will not be affected by problems that might be
 introduced by others.
 introduced by others.
-
+
   Finally, software patents pose a constant threat to the existence of
   Finally, software patents pose a constant threat to the existence of
 any free program.  We wish to make sure that a company cannot
 any free program.  We wish to make sure that a company cannot
 effectively restrict the users of a free program by obtaining a
 effectively restrict the users of a free program by obtaining a
@@ -111,7 +111,7 @@ modification follow.  Pay close attention to the difference between a
 "work based on the library" and a "work that uses the library".  The
 "work based on the library" and a "work that uses the library".  The
 former contains code derived from the library, whereas the latter must
 former contains code derived from the library, whereas the latter must
 be combined with the library in order to run.
 be combined with the library in order to run.
-
+
 		  GNU LESSER GENERAL PUBLIC LICENSE
 		  GNU LESSER GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
 
@@ -158,7 +158,7 @@ Library.
   You may charge a fee for the physical act of transferring a copy,
   You may charge a fee for the physical act of transferring a copy,
 and you may at your option offer warranty protection in exchange for a
 and you may at your option offer warranty protection in exchange for a
 fee.
 fee.
-
+
   2. You may modify your copy or copies of the Library or any portion
   2. You may modify your copy or copies of the Library or any portion
 of it, thus forming a work based on the Library, and copy and
 of it, thus forming a work based on the Library, and copy and
 distribute such modifications or work under the terms of Section 1
 distribute such modifications or work under the terms of Section 1
@@ -216,7 +216,7 @@ instead of to this License.  (If a newer version than version 2 of the
 ordinary GNU General Public License has appeared, then you can specify
 ordinary GNU General Public License has appeared, then you can specify
 that version instead if you wish.)  Do not make any other change in
 that version instead if you wish.)  Do not make any other change in
 these notices.
 these notices.
-
+
   Once this change is made in a given copy, it is irreversible for
   Once this change is made in a given copy, it is irreversible for
 that copy, so the ordinary GNU General Public License applies to all
 that copy, so the ordinary GNU General Public License applies to all
 subsequent copies and derivative works made from that copy.
 subsequent copies and derivative works made from that copy.
@@ -267,7 +267,7 @@ Library will still fall under Section 6.)
 distribute the object code for the work under the terms of Section 6.
 distribute the object code for the work under the terms of Section 6.
 Any executables containing that work also fall under Section 6,
 Any executables containing that work also fall under Section 6,
 whether or not they are linked directly with the Library itself.
 whether or not they are linked directly with the Library itself.
-
+
   6. As an exception to the Sections above, you may also combine or
   6. As an exception to the Sections above, you may also combine or
 link a "work that uses the Library" with the Library to produce a
 link a "work that uses the Library" with the Library to produce a
 work containing portions of the Library, and distribute that work
 work containing portions of the Library, and distribute that work
@@ -329,7 +329,7 @@ restrictions of other proprietary libraries that do not normally
 accompany the operating system.  Such a contradiction means you cannot
 accompany the operating system.  Such a contradiction means you cannot
 use both them and the Library together in an executable that you
 use both them and the Library together in an executable that you
 distribute.
 distribute.
-
+
   7. You may place library facilities that are a work based on the
   7. You may place library facilities that are a work based on the
 Library side-by-side in a single library together with other library
 Library side-by-side in a single library together with other library
 facilities not covered by this License, and distribute such a combined
 facilities not covered by this License, and distribute such a combined
@@ -370,7 +370,7 @@ subject to these terms and conditions.  You may not impose any further
 restrictions on the recipients' exercise of the rights granted herein.
 restrictions on the recipients' exercise of the rights granted herein.
 You are not responsible for enforcing compliance by third parties with
 You are not responsible for enforcing compliance by third parties with
 this License.
 this License.
-
+
   11. If, as a consequence of a court judgment or allegation of patent
   11. If, as a consequence of a court judgment or allegation of patent
 infringement or for any other reason (not limited to patent issues),
 infringement or for any other reason (not limited to patent issues),
 conditions are imposed on you (whether by court order, agreement or
 conditions are imposed on you (whether by court order, agreement or
@@ -422,7 +422,7 @@ conditions either of that version or of any later version published by
 the Free Software Foundation.  If the Library does not specify a
 the Free Software Foundation.  If the Library does not specify a
 license version number, you may choose any version ever published by
 license version number, you may choose any version ever published by
 the Free Software Foundation.
 the Free Software Foundation.
-
+
   14. If you wish to incorporate parts of the Library into other free
   14. If you wish to incorporate parts of the Library into other free
 programs whose distribution conditions are incompatible with these,
 programs whose distribution conditions are incompatible with these,
 write to the author to ask for permission.  For software which is
 write to the author to ask for permission.  For software which is
@@ -456,7 +456,7 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
 DAMAGES.
 
 
 		     END OF TERMS AND CONDITIONS
 		     END OF TERMS AND CONDITIONS
-
+
            How to Apply These Terms to Your New Libraries
            How to Apply These Terms to Your New Libraries
 
 
   If you develop a new library, and you want it to be of the greatest
   If you develop a new library, and you want it to be of the greatest
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
 
 
     You should have received a copy of the GNU Lesser General Public
     You should have received a copy of the GNU Lesser General Public
     License along with this library; if not, write to the Free Software
     License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 
 Also add information on how to contact you by electronic and paper mail.
 Also add information on how to contact you by electronic and paper mail.
 
 
@@ -500,5 +500,3 @@ necessary.  Here is a sample; alter the names:
   Ty Coon, President of Vice
   Ty Coon, President of Vice
 
 
 That's all there is to it!
 That's all there is to it!
-
-

+ 0 - 5
libopts/MakeDefs.inc

@@ -1,5 +0,0 @@
-if NEED_LIBOPTS
-LIBOPTS_DIR = libopts
-else
-LIBOPTS_DIR =
-endif

+ 15 - 13
libopts/Makefile.am

@@ -2,17 +2,19 @@
 MAINTAINERCLEANFILES  = Makefile.in
 MAINTAINERCLEANFILES  = Makefile.in
 lib_LTLIBRARIES       = libopts.la
 lib_LTLIBRARIES       = libopts.la
 libopts_la_SOURCES    = libopts.c
 libopts_la_SOURCES    = libopts.c
-libopts_la_LDFLAGS    = -version-info  25:0:0
+libopts_la_CPPFLAGS   = -I$(top_srcdir)
+libopts_la_LDFLAGS    = -version-info  27:1:2
 EXTRA_DIST            = \
 EXTRA_DIST            = \
-    ./autoopts/options.h   ./autoopts/usage-txt.h ./autoopts.c  \
-    ./autoopts.h           ./boolean.c            ./compat/compat.h  \
-    ./compat/pathfind.c    ./configfile.c         ./cook.c  \
-    ./COPYING.lgpl         ./COPYING.mbsd         ./enumeration.c  \
-    ./environment.c        ./genshell.c           ./genshell.h  \
-    ./libopts.m4           ./load.c               ./MakeDefs.inc  \
-    ./makeshell.c          ./nested.c             ./numeric.c  \
-    ./pgusage.c            ./proto.h              ./putshell.c  \
-    ./README               ./restore.c            ./save.c  \
-    ./sort.c               ./stack.c              ./streqvcmp.c  \
-    ./text_mmap.c          ./tokenize.c           ./usage.c  \
-    ./version.c
+    COPYING.lgpl         COPYING.mbsd         \
+    README               autoopts/options.h   autoopts/usage-txt.h  \
+    autoopts.c           autoopts.h           boolean.c  \
+    compat/compat.h      compat/pathfind.c    compat/snprintf.c  \
+    compat/strdup.c      configfile.c         cook.c  \
+    enumeration.c        environment.c        genshell.c  \
+    genshell.h           load.c               m4/libopts.m4  \
+    m4/liboptschk.m4     makeshell.c          nested.c  \
+    numeric.c            pgusage.c            proto.h  \
+    putshell.c           restore.c            save.c  \
+    sort.c               stack.c              streqvcmp.c  \
+    text_mmap.c          tokenize.c           usage.c  \
+    version.c

+ 27 - 19
libopts/Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 # @configure_input@
 
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -14,8 +14,6 @@
 
 
 @SET_MAKE@
 @SET_MAKE@
 
 
-SOURCES = $(libopts_la_SOURCES)
-
 srcdir = @srcdir@
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 VPATH = @srcdir@
@@ -58,7 +56,7 @@ am__installdirs = "$(DESTDIR)$(libdir)"
 libLTLIBRARIES_INSTALL = $(INSTALL)
 libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 libopts_la_LIBADD =
 libopts_la_LIBADD =
-am_libopts_la_OBJECTS = libopts.lo
+am_libopts_la_OBJECTS = libopts_la-libopts.lo
 libopts_la_OBJECTS = $(am_libopts_la_OBJECTS)
 libopts_la_OBJECTS = $(am_libopts_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/src
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/src
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
@@ -121,6 +119,7 @@ LATEX2HTML = @LATEX2HTML@
 LDFLAGS = @LDFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
+LIBOPTS_DIR = @LIBOPTS_DIR@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBOPTS_LDADD = @LIBOPTS_LDADD@
 LIBS = @LIBS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBTOOL = @LIBTOOL@
@@ -216,20 +215,22 @@ td = @td@
 MAINTAINERCLEANFILES = Makefile.in
 MAINTAINERCLEANFILES = Makefile.in
 lib_LTLIBRARIES = libopts.la
 lib_LTLIBRARIES = libopts.la
 libopts_la_SOURCES = libopts.c
 libopts_la_SOURCES = libopts.c
-libopts_la_LDFLAGS = -version-info  25:0:0
+libopts_la_CPPFLAGS = -I$(top_srcdir)
+libopts_la_LDFLAGS = -version-info  27:1:2
 EXTRA_DIST = \
 EXTRA_DIST = \
-    ./autoopts/options.h   ./autoopts/usage-txt.h ./autoopts.c  \
-    ./autoopts.h           ./boolean.c            ./compat/compat.h  \
-    ./compat/pathfind.c    ./configfile.c         ./cook.c  \
-    ./COPYING.lgpl         ./COPYING.mbsd         ./enumeration.c  \
-    ./environment.c        ./genshell.c           ./genshell.h  \
-    ./libopts.m4           ./load.c               ./MakeDefs.inc  \
-    ./makeshell.c          ./nested.c             ./numeric.c  \
-    ./pgusage.c            ./proto.h              ./putshell.c  \
-    ./README               ./restore.c            ./save.c  \
-    ./sort.c               ./stack.c              ./streqvcmp.c  \
-    ./text_mmap.c          ./tokenize.c           ./usage.c  \
-    ./version.c
+    COPYING.lgpl         COPYING.mbsd         \
+    README               autoopts/options.h   autoopts/usage-txt.h  \
+    autoopts.c           autoopts.h           boolean.c  \
+    compat/compat.h      compat/pathfind.c    compat/snprintf.c  \
+    compat/strdup.c      configfile.c         cook.c  \
+    enumeration.c        environment.c        genshell.c  \
+    genshell.h           load.c               m4/libopts.m4  \
+    m4/liboptschk.m4     makeshell.c          nested.c  \
+    numeric.c            pgusage.c            proto.h  \
+    putshell.c           restore.c            save.c  \
+    sort.c               stack.c              streqvcmp.c  \
+    text_mmap.c          tokenize.c           usage.c  \
+    version.c
 
 
 all: all-am
 all: all-am
 
 
@@ -300,7 +301,7 @@ mostlyclean-compile:
 distclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 	-rm -f *.tab.c
 
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libopts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libopts_la-libopts.Plo@am__quote@
 
 
 .c.o:
 .c.o:
 @am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
 @am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@@ -323,6 +324,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
 
+libopts_la-libopts.lo: libopts.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libopts_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libopts_la-libopts.lo -MD -MP -MF "$(DEPDIR)/libopts_la-libopts.Tpo" -c -o libopts_la-libopts.lo `test -f 'libopts.c' || echo '$(srcdir)/'`libopts.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libopts_la-libopts.Tpo" "$(DEPDIR)/libopts_la-libopts.Plo"; else rm -f "$(DEPDIR)/libopts_la-libopts.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libopts.c' object='libopts_la-libopts.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libopts_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libopts_la-libopts.lo `test -f 'libopts.c' || echo '$(srcdir)/'`libopts.c
+
 mostlyclean-libtool:
 mostlyclean-libtool:
 	-rm -f *.lo
 	-rm -f *.lo
 
 
@@ -382,7 +390,7 @@ distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 
 distdir: $(DISTFILES)
 distdir: $(DISTFILES)
-	$(mkdir_p) $(distdir)/./autoopts $(distdir)/./compat
+	$(mkdir_p) $(distdir)/autoopts $(distdir)/compat $(distdir)/m4
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
 	list='$(DISTFILES)'; for file in $$list; do \
 	list='$(DISTFILES)'; for file in $$list; do \

+ 16 - 12
libopts/README

@@ -3,7 +3,9 @@
 The contents of this tarball is designed to be incorporated into
 The contents of this tarball is designed to be incorporated into
 software packages that utilize the AutoOpts option automation
 software packages that utilize the AutoOpts option automation
 package and are intended to be installed on systems that may not
 package and are intended to be installed on systems that may not
-have libopts installed.
+have libopts installed.  It is redistributable under the terms
+of either the LGPL (see COPYING.lgpl) or under the terms of
+the advertising clause free BSD license (see COPYING.mbsd).
 
 
 Usage Instructions for autoconf/automake/libtoolized projects:
 Usage Instructions for autoconf/automake/libtoolized projects:
 
 
@@ -15,13 +17,13 @@ Usage Instructions for autoconf/automake/libtoolized projects:
       rm -rf libopts libopts-*
       rm -rf libopts libopts-*
       gunzip -c `autoopts-config libsrc` | tar -xvf -
       gunzip -c `autoopts-config libsrc` | tar -xvf -
       mv -f libopts-*.*.* libopts
       mv -f libopts-*.*.* libopts
-      cp -fp libopts/libopts.m4 config/.
+      cp -fp libopts/m4/*.m4 m4/.
 
 
-   I tend to put my configure auxiliary files in "config".
+   I tend to put my configure auxiliary files in "m4".
    Whatever directory you choose, if it is not ".", then
    Whatever directory you choose, if it is not ".", then
    be sure to tell autoconf about it with:
    be sure to tell autoconf about it with:
 
 
-      AC_CONFIG_AUX_DIR(config)
+      AC_CONFIG_AUX_DIR(m4)
 
 
    This is one macro where you *MUST* remember to *NOT* quote
    This is one macro where you *MUST* remember to *NOT* quote
    the argument.  If you do, automake will get lost.
    the argument.  If you do, automake will get lost.
@@ -30,19 +32,21 @@ Usage Instructions for autoconf/automake/libtoolized projects:
 
 
       LIBOPTS_CHECK
       LIBOPTS_CHECK
 
 
+   or:
+
+      LIBOPTS_CHECK([relative/path/to/libopts])
+
    This macro will automatically invoke
    This macro will automatically invoke
 
 
-      AC_CONFIG_FILES( [libopts/Makefile] )
+      AC_CONFIG_FILES( [relative/path/to/libopts/Makefile] )
+
+   The default ``relative/path/to/libopts'' is simply
+   ``libopts''.
 
 
 3. Add the following to your top level ``Makefile.am'' file:
 3. Add the following to your top level ``Makefile.am'' file:
 
 
-      include $(srcdir)/libopts/MakeDefs.inc
       if NEED_LIBOPTS
       if NEED_LIBOPTS
-         SUBDIRS = <...> libopts <...>
-         <<Makefile.am text for when building libopts>>
-      else
-         SUBDIRS = <...>
-         <<Makefile.am text for when libopts not needed>>
+         SUBDIRS += $(LIBOPTS_DIR)
       endif
       endif
 
 
    where ``<...>'' can be whatever other files or directories
    where ``<...>'' can be whatever other files or directories
@@ -81,7 +85,7 @@ will need to hand craft the rules for building the library.
 
 
 LICENSING:
 LICENSING:
 
 
-This material is copyright 1993-2005 by Bruce Korb.
+This material is copyright 1993-2006 by Bruce Korb.
 You are licensed to use this under the terms of either
 You are licensed to use this under the terms of either
 the GNU Lesser General Public License (see: COPYING.lgpl), or,
 the GNU Lesser General Public License (see: COPYING.lgpl), or,
 at your option, the modified Berkeley Software Distribution
 at your option, the modified Berkeley Software Distribution

+ 16 - 6
libopts/autoopts.c

@@ -1,7 +1,7 @@
 
 
 /*
 /*
- *  $Id: autoopts.c,v 4.8 2005/03/13 19:51:57 bkorb Exp $
- *  Time-stamp:      "2005-03-13 08:39:23 bkorb"
+ *  $Id: autoopts.c,v 4.14 2006/03/25 19:24:56 bkorb Exp $
+ *  Time-stamp:      "2005-10-29 13:19:36 bkorb"
  *
  *
  *  This file contains all of the routines that must be linked into
  *  This file contains all of the routines that must be linked into
  *  an executable to use the generated option processing.  The optional
  *  an executable to use the generated option processing.  The optional
@@ -10,7 +10,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -25,8 +25,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -56,6 +56,16 @@
 #  include "compat/pathfind.c"
 #  include "compat/pathfind.c"
 #endif
 #endif
 
 
+#ifndef HAVE_LIBSNPRINTFV
+# ifndef HAVE_SNPRINTF
+#   include "compat/snprintf.c"
+# endif
+
+# ifndef HAVE_STRDUP
+#   include "compat/strdup.c"
+# endif
+#endif
+
 static const char zNil[] = "";
 static const char zNil[] = "";
 
 
 #define SKIP_RC_FILES(po) \
 #define SKIP_RC_FILES(po) \
@@ -340,7 +350,7 @@ longOptionFind( tOptions* pOpts, char* pzOptName, tOptState* pOptState )
  *  Find the short option descriptor for the current option
  *  Find the short option descriptor for the current option
  */
  */
 LOCAL tSuccess
 LOCAL tSuccess
-shortOptionFind( tOptions* pOpts, tUC optValue, tOptState* pOptState )
+shortOptionFind( tOptions* pOpts, tAoUC optValue, tOptState* pOptState )
 {
 {
     tOptDesc*  pRes = pOpts->pOptDesc;
     tOptDesc*  pRes = pOpts->pOptDesc;
     int        ct   = pOpts->optCt;
     int        ct   = pOpts->optCt;

+ 18 - 34
libopts/autoopts.h

@@ -1,8 +1,8 @@
 
 
 /*
 /*
- *  Time-stamp:      "2005-02-23 07:51:34 bkorb"
+ *  Time-stamp:      "2005-10-29 15:06:44 bkorb"
  *
  *
- *  autoopts.h  $Id: autoopts.h,v 4.9 2005/03/13 19:51:58 bkorb Exp $
+ *  autoopts.h  $Id: autoopts.h,v 4.17 2006/03/25 19:24:56 bkorb Exp $
  *  Time-stamp:      "2005-02-14 05:59:50 bkorb"
  *  Time-stamp:      "2005-02-14 05:59:50 bkorb"
  *
  *
  *  This file defines all the global structures and special values
  *  This file defines all the global structures and special values
@@ -10,7 +10,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -25,8 +25,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -55,20 +55,24 @@
 #ifndef AUTOGEN_AUTOOPTS_H
 #ifndef AUTOGEN_AUTOOPTS_H
 #define AUTOGEN_AUTOOPTS_H
 #define AUTOGEN_AUTOOPTS_H
 
 
-#define __EXTENSIONS__
-
-#include "config.h"
 #include "compat/compat.h"
 #include "compat/compat.h"
-#include <sys/param.h>
-#include <sys/wait.h>
-#include <time.h>
-#include <utime.h>
 
 
 #define AO_NAME_LIMIT    127
 #define AO_NAME_LIMIT    127
 #define AO_NAME_SIZE     (AO_NAME_LIMIT + 1)
 #define AO_NAME_SIZE     (AO_NAME_LIMIT + 1)
+
 #ifndef MAXPATHLEN
 #ifndef MAXPATHLEN
-#  define MAXPATHLEN     4096
+#  ifdef PATH_MAX
+#    define MAXPATHLEN   PATH_MAX
+#  else
+#    define MAXPATHLEN   4096
+#  endif
+#else
+#  if defined(PATH_MAX) && (PATH_MAX > MAXPATHLEN)
+#     undef  MAXPATHLEN
+#     define MAXPATHLEN  PATH_MAX
+#  endif
 #endif
 #endif
+
 #undef  EXPORT
 #undef  EXPORT
 #define EXPORT
 #define EXPORT
 
 
@@ -141,7 +145,7 @@ typedef enum {
 typedef struct {
 typedef struct {
     tOptDesc*  pOD;
     tOptDesc*  pOD;
     tCC*       pzOptArg;
     tCC*       pzOptArg;
-    tUL        flags;
+    tAoUL      flags;
     teOptType  optType;
     teOptType  optType;
 } tOptState;
 } tOptState;
 #define OPTSTATE_INITIALIZER(st) \
 #define OPTSTATE_INITIALIZER(st) \
@@ -289,26 +293,6 @@ typedef struct {
 #endif
 #endif
 
 
 /*
 /*
- *  This is an output only structure used by text_mmap and text_munmap.
- *  Clients must not alter the contents and must provide it to both
- *  the text_mmap and text_munmap procedures.  BE ADVISED: if you are
- *  mapping the file with PROT_WRITE the NUL byte at the end MIGHT NOT
- *  BE WRITABLE.  In any event, that byte is not be written back
- *  to the source file.  ALSO: if "txt_data" is valid and "txt_errno"
- *  is not zero, then there *may* not be a terminating NUL.
- */
-typedef struct {
-    void*       txt_data;      /* text file data   */
-    size_t      txt_size;      /* actual file size */
-    int         txt_fd;        /* file descriptor  */
-    size_t      txt_full_size; /* mmaped mem size  */
-    int         txt_zero_fd;   /* fd for /dev/zero */
-    int         txt_errno;     /* warning code     */
-    int         txt_prot;      /* "prot" flags     */
-    int         txt_flags;     /* mapping type     */
-} tmap_info_t;
-
-/*
  *  Define and initialize all the user visible strings.
  *  Define and initialize all the user visible strings.
  *  We do not do translations.  If translations are to be done, then
  *  We do not do translations.  If translations are to be done, then
  *  the client will provide a callback for that purpose.
  *  the client will provide a callback for that purpose.

+ 99 - 55
libopts/autoopts/options.h

@@ -2,7 +2,7 @@
  *  
  *  
  *  DO NOT EDIT THIS FILE   (options.h)
  *  DO NOT EDIT THIS FILE   (options.h)
  *  
  *  
- *  It has been AutoGen-ed  Sunday April 17, 2005 at 11:55:00 AM PDT
+ *  It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:19 AM PDT
  *  From the definitions    funcs.def
  *  From the definitions    funcs.def
  *  and the template file   options_h
  *  and the template file   options_h
  *
  *
@@ -22,10 +22,10 @@
  *  Lesser General Public License for more details.
  *  Lesser General Public License for more details.
  *  
  *  
  *  You should have received a copy of the GNU Lesser General Public
  *  You should have received a copy of the GNU Lesser General Public
- *  License along with AutoOpts; if not, write to:
- *             The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *  License along with AutoOpts.  If not, write to:
+ *  	The Free Software Foundation, Inc.,
+ *  	51 Franklin Street, Fifth Floor
+ *  	Boston, MA  02110-1301, USA.
  */
  */
 #ifndef AUTOOPTS_OPTIONS_H_GUARD
 #ifndef AUTOOPTS_OPTIONS_H_GUARD
 #define AUTOOPTS_OPTIONS_H_GUARD
 #define AUTOOPTS_OPTIONS_H_GUARD
@@ -156,13 +156,13 @@ typedef struct optionValue {
  *  because "static const" cannot both be applied to a type,
  *  because "static const" cannot both be applied to a type,
  *  tho each individually can...so they all are
  *  tho each individually can...so they all are
  */
  */
-#define tSCC      static const char
-#define tSC       static char
-#define tCUC      const unsigned char
-#define tUC       unsigned char
-#define tCC       const char
-#define tUI       unsigned int
-#define tUL       unsigned long
+#define tSCC        static const char
+#define tCC         const char
+#define tAoSC       static char
+#define tAoUC       unsigned char
+#define tAoUI       unsigned int
+#define tAoUL       unsigned long
+#define tAoUS       unsigned short
 
 
 /*
 /*
  *  It is so disgusting that there must be so many ways
  *  It is so disgusting that there must be so many ways
@@ -212,9 +212,9 @@ typedef struct argList tArgList;
 #define MIN_ARG_ALLOC_CT   6
 #define MIN_ARG_ALLOC_CT   6
 #define INCR_ARG_ALLOC_CT  8
 #define INCR_ARG_ALLOC_CT  8
 struct argList {
 struct argList {
-    int               useCt;
-    int               allocCt;
-    tCC*              apzArgs[ MIN_ARG_ALLOC_CT ];
+    int             useCt;
+    int             allocCt;
+    tCC*            apzArgs[ MIN_ARG_ALLOC_CT ];
 };
 };
 
 
 /*
 /*
@@ -222,30 +222,30 @@ struct argList {
  *  Only the fields marked "PUBLIC" are for public use.
  *  Only the fields marked "PUBLIC" are for public use.
  */
  */
 struct optDesc {
 struct optDesc {
-    uint16_t          optIndex;         /* PUBLIC */
-    uint16_t          optValue;         /* PUBLIC */
-    uint16_t          optActualIndex;   /* PUBLIC */
-    uint16_t          optActualValue;   /* PUBLIC */
-
-    uint16_t          optEquivIndex;    /* PUBLIC */
-    uint16_t          optMinCt;
-    uint16_t          optMaxCt;
-    uint16_t          optOccCt;         /* PUBLIC */
-
-    uint32_t          fOptState;        /* PUBLIC */
-    uint32_t          reserved;
-    tCC*              pzLastArg;        /* PUBLIC */
-    void*             optCookie;        /* PUBLIC */
-
-    const int *       pOptMust;
-    const int *       pOptCant;
-    tpOptProc         pOptProc;
-    const char*       pzText;
-
-    const char*       pz_NAME;
-    const char*       pz_Name;
-    const char*       pz_DisableName;
-    const char*       pz_DisablePfx;
+    tAoUS           optIndex;         /* PUBLIC */
+    tAoUS           optValue;         /* PUBLIC */
+    tAoUS           optActualIndex;   /* PUBLIC */
+    tAoUS           optActualValue;   /* PUBLIC */
+
+    tAoUS           optEquivIndex;    /* PUBLIC */
+    tAoUS           optMinCt;
+    tAoUS           optMaxCt;
+    tAoUS           optOccCt;         /* PUBLIC */
+
+    tAoUI           fOptState;        /* PUBLIC */
+    tAoUI           reserved;
+    tCC*            pzLastArg;        /* PUBLIC */
+    void*           optCookie;        /* PUBLIC */
+
+    const int *     pOptMust;
+    const int *     pOptCant;
+    tpOptProc       pOptProc;
+    const char*     pzText;
+
+    const char*     pz_NAME;
+    const char*     pz_Name;
+    const char*     pz_DisableName;
+    const char*     pz_DisablePfx;
 };
 };
 
 
 /*
 /*
@@ -254,14 +254,14 @@ struct optDesc {
  */
  */
 typedef struct optSpecIndex tOptSpecIndex;
 typedef struct optSpecIndex tOptSpecIndex;
 struct optSpecIndex {
 struct optSpecIndex {
-    uint16_t          more_help;
-    uint16_t          save_opts;
-    uint16_t          number_option;
-    uint16_t          default_opt;
+    tAoUS           more_help;
+    tAoUS           save_opts;
+    tAoUS           number_option;
+    tAoUS           default_opt;
 };
 };
 
 
-#define  OPTIONS_STRUCT_VERSION  102400
-#define  OPTIONS_VERSION_STRING  "25:0:0"
+#define  OPTIONS_STRUCT_VERSION  110594
+#define  OPTIONS_VERSION_STRING  "27:1:2"
 #define  OPTIONS_MINIMUM_VERSION 102400
 #define  OPTIONS_MINIMUM_VERSION 102400
 #define  OPTIONS_MIN_VER_STRING  "25:0:0"
 #define  OPTIONS_MIN_VER_STRING  "25:0:0"
 
 
@@ -274,8 +274,8 @@ struct options {
     const int         structVersion;
     const int         structVersion;
     int               origArgCt;
     int               origArgCt;
     char**            origArgVect;
     char**            origArgVect;
-    tUI               fOptSet;
-    tUI               curOptIdx;
+    unsigned int      fOptSet;
+    unsigned int      curOptIdx;
     char*             pzCurOpt;
     char*             pzCurOpt;
 
 
     const char*       pzProgPath;
     const char*       pzProgPath;
@@ -322,6 +322,29 @@ typedef struct {
 #define strtransform    option_strtransform
 #define strtransform    option_strtransform
 
 
 /*
 /*
+ *  This is an output only structure used by text_mmap and text_munmap.
+ *  Clients must not alter the contents and must provide it to both
+ *  the text_mmap and text_munmap procedures.  BE ADVISED: if you are
+ *  mapping the file with PROT_WRITE the NUL byte at the end MIGHT NOT
+ *  BE WRITABLE.  In any event, that byte is not be written back
+ *  to the source file.  ALSO: if "txt_data" is valid and "txt_errno"
+ *  is not zero, then there *may* not be a terminating NUL.
+ */
+typedef struct {
+    void*       txt_data;      /* text file data   */
+    size_t      txt_size;      /* actual file size */
+    size_t      txt_full_size; /* mmaped mem size  */
+    int         txt_fd;        /* file descriptor  */
+    int         txt_zero_fd;   /* fd for /dev/zero */
+    int         txt_errno;     /* warning code     */
+    int         txt_prot;      /* "prot" flags     */
+    int         txt_flags;     /* mapping type     */
+    int         txt_alloc;     /* if we malloced memory */
+} tmap_info_t;
+
+#define TEXT_MMAP_FAILED_ADDR(a)  ((void*)(a) ==  (void*)MAP_FAILED)
+
+/*
  *  When loading a line (or block) of text as an option, the value can
  *  When loading a line (or block) of text as an option, the value can
  *  be processed in any of several modes:
  *  be processed in any of several modes:
  *
  *
@@ -423,7 +446,7 @@ extern token_list_t* ao_string_tokenize( const char* );
 extern const tOptionValue* configFileLoad( const char* );
 extern const tOptionValue* configFileLoad( const char* );
 
 
 
 
-/* From: configfile.c line 874
+/* From: configfile.c line 869
  *
  *
  * optionFileLoad - Load the locatable config files, in order
  * optionFileLoad - Load the locatable config files, in order
  *
  *
@@ -520,7 +543,7 @@ extern void optionFree( tOptions* );
 extern const tOptionValue* optionGetValue( const tOptionValue*, const char* );
 extern const tOptionValue* optionGetValue( const tOptionValue*, const char* );
 
 
 
 
-/* From: load.c line 427
+/* From: load.c line 477
  *
  *
  * optionLoadLine - process a string for an option name and value
  * optionLoadLine - process a string for an option name and value
  *
  *
@@ -563,7 +586,22 @@ extern void optionLoadLine( tOptions*, const char* );
 extern const tOptionValue* optionNextValue( const tOptionValue*, const tOptionValue* );
 extern const tOptionValue* optionNextValue( const tOptionValue*, const tOptionValue* );
 
 
 
 
-/* From: autoopts.c line 924
+/* From: usage.c line 128
+ *
+ * optionOnlyUsage - Print usage text for just the options
+ *
+ * Arguments:
+ *   pOpts        program options descriptor
+ *   ex_code      exit code for calling exit(3)
+ *
+ *  This routine will print only the usage for each option.
+ *  This function may be used when the emitted usage must incorporate
+ *  information not available to AutoOpts.
+ */
+extern void optionOnlyUsage( tOptions*, int );
+
+
+/* From: autoopts.c line 934
  *
  *
  * optionProcess - this is the main option processing routine
  * optionProcess - this is the main option processing routine
  *
  *
@@ -645,7 +683,7 @@ extern void optionSaveFile( tOptions* );
 extern void optionSaveState( tOptions* );
 extern void optionSaveState( tOptions* );
 
 
 
 
-/* From: nested.c line 528
+/* From: nested.c line 527
  *
  *
  * optionUnloadNested - Deallocate the memory for a nested value
  * optionUnloadNested - Deallocate the memory for a nested value
  *
  *
@@ -795,7 +833,7 @@ extern void streqvmap( char, char, int );
  *  This function name is mapped to option_strneqvcmp so as to not conflict
  *  This function name is mapped to option_strneqvcmp so as to not conflict
  *  with the POSIX name space.
  *  with the POSIX name space.
  */
  */
-extern int strneqvcmp( tCC*, tCC*, int );
+extern int strneqvcmp( const char*, const char*, int );
 
 
 
 
 /* From: streqvcmp.c line 259
 /* From: streqvcmp.c line 259
@@ -824,13 +862,15 @@ extern void genshelloptUsage( tOptions*, int );
 
 
 extern void optionBooleanVal( tOptions*, tOptDesc* );
 extern void optionBooleanVal( tOptions*, tOptDesc* );
 
 
-extern char* optionEnumerationVal( tOptions*, tOptDesc*, tCC**, unsigned int );
+extern char* optionEnumerationVal( tOptions*, tOptDesc*, const char**, unsigned int );
+
+extern const char* optionKeywordName( tOptDesc*, unsigned int );
 
 
 extern tOptionValue* optionLoadNested( const char*, const char*, size_t, tOptionLoadMode );
 extern tOptionValue* optionLoadNested( const char*, const char*, size_t, tOptionLoadMode );
 
 
 extern void optionLoadOpt( tOptions*, tOptDesc* );
 extern void optionLoadOpt( tOptions*, tOptDesc* );
 
 
-extern ag_bool optionMakePath( char*, int, tCC*, tCC* );
+extern ag_bool optionMakePath( char*, int, const char*, const char* );
 
 
 extern void optionNestedVal( tOptions*, tOptDesc* );
 extern void optionNestedVal( tOptions*, tOptDesc* );
 
 
@@ -844,7 +884,7 @@ extern void optionPrintVersion( tOptions*, tOptDesc* );
 
 
 extern void optionPutShell( tOptions* );
 extern void optionPutShell( tOptions* );
 
 
-extern void optionSetMembers( tOptions*, tOptDesc*, tCC**, unsigned int );
+extern void optionSetMembers( tOptions*, tOptDesc*, const char**, unsigned int );
 
 
 extern void optionStackArg( tOptions*, tOptDesc* );
 extern void optionStackArg( tOptions*, tOptDesc* );
 
 
@@ -854,6 +894,10 @@ extern void optionUsage( tOptions*, int );
 
 
 extern void optionVersionStderr( tOptions*, tOptDesc* );
 extern void optionVersionStderr( tOptions*, tOptDesc* );
 
 
+extern void* text_mmap( const char*, int, int, tmap_info_t* );
+
+extern int text_munmap( tmap_info_t* );
+
 CPLUSPLUS_CLOSER
 CPLUSPLUS_CLOSER
 #endif /* AUTOOPTS_OPTIONS_H_GUARD */
 #endif /* AUTOOPTS_OPTIONS_H_GUARD */
 /*
 /*

+ 5 - 5
libopts/autoopts/usage-txt.h

@@ -2,7 +2,7 @@
  *  
  *  
  *  DO NOT EDIT THIS FILE   (usage-txt.h)
  *  DO NOT EDIT THIS FILE   (usage-txt.h)
  *  
  *  
- *  It has been AutoGen-ed  Sunday April 17, 2005 at 11:55:00 AM PDT
+ *  It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:19 AM PDT
  *  From the definitions    usage-txt.def
  *  From the definitions    usage-txt.def
  *  and the template file   usage-txt.tpl
  *  and the template file   usage-txt.tpl
  *
  *
@@ -24,10 +24,10 @@
  *  Lesser General Public License for more details.
  *  Lesser General Public License for more details.
  *  
  *  
  *  You should have received a copy of the GNU Lesser General Public
  *  You should have received a copy of the GNU Lesser General Public
- *  License along with AutoOpts; if not, write to:
- *             The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *  License along with AutoOpts.  If not, write to:
+ *  	The Free Software Foundation, Inc.,
+ *  	51 Franklin Street, Fifth Floor
+ *  	Boston, MA  02110-1301, USA.
  */
  */
 #ifndef AUTOOPTS_USAGE_TXT_H_GUARD
 #ifndef AUTOOPTS_USAGE_TXT_H_GUARD
 #define AUTOOPTS_USAGE_TXT_H_GUARD
 #define AUTOOPTS_USAGE_TXT_H_GUARD

+ 5 - 4
libopts/boolean.c

@@ -1,6 +1,7 @@
 
 
 /*
 /*
- *  $Id: boolean.c,v 4.3 2005/01/24 00:00:35 bkorb Exp $
+ *  $Id: boolean.c,v 4.5 2006/03/25 19:24:56 bkorb Exp $
+ * Time-stamp:      "2005-02-14 08:24:12 bkorb"
  *
  *
  *   Automated Options Paged Usage module.
  *   Automated Options Paged Usage module.
  *
  *
@@ -9,7 +10,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -24,8 +25,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.

+ 62 - 23
libopts/compat/compat.h

@@ -2,25 +2,30 @@
 
 
 /* --- fake the preprocessor into handlng portability */
 /* --- fake the preprocessor into handlng portability */
 /*
 /*
- *  Time-stamp:      "2005-02-20 17:17:51 bkorb"
+ *  Time-stamp:      "2005-09-21 20:56:13 bkorb"
  *
  *
  * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk>
  * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk>
  * Created:          Mon Jun 30 15:54:46 1997
  * Created:          Mon Jun 30 15:54:46 1997
  *
  *
- * $Id: compat.h,v 4.3 2005/03/13 19:52:20 bkorb Exp $
+ * $Id: compat.h,v 4.6 2005/10/02 16:34:30 bkorb Exp $
  */
  */
 #ifndef COMPAT_H
 #ifndef COMPAT_H
 #define COMPAT_H 1
 #define COMPAT_H 1
 
 
+#ifndef HAVE_CONFIG_H
+#  error "compat.h" requires "config.h"
+#endif
+
 #include <config.h>
 #include <config.h>
 
 
 #ifndef HAVE_STRSIGNAL
 #ifndef HAVE_STRSIGNAL
    char * strsignal( int signo );
    char * strsignal( int signo );
-#else
-#  define  _GNU_SOURCE /* for strsignal in GNU's libc */
-#  define  __USE_GNU   /* exact same thing as above   */
 #endif
 #endif
 
 
+#define  _GNU_SOURCE    1 /* for strsignal in GNU's libc */
+#define  __USE_GNU      1 /* exact same thing as above   */
+#define  __EXTENSIONS__ 1 /* and another way to call for it */
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *
  *  SYSTEM HEADERS:
  *  SYSTEM HEADERS:
@@ -104,11 +109,6 @@
 #   if defined (HAVE_NDIR_H)
 #   if defined (HAVE_NDIR_H)
 #     include <ndir.h>
 #     include <ndir.h>
 #   endif /* HAVE_NDIR_H */
 #   endif /* HAVE_NDIR_H */
-#   if !defined (HAVE_SYS_NDIR_H) && \
-       !defined (HAVE_SYS_DIR_H)  && \
-       !defined (HAVE_NDIR_H)
-#     include "ndir.h"
-#   endif /* !HAVE_SYS_NDIR_H && !HAVE_SYS_DIR_H && !HAVE_NDIR_H */
 # endif /* !HAVE_DIRENT_H */
 # endif /* !HAVE_DIRENT_H */
 
 
 #include <errno.h>
 #include <errno.h>
@@ -122,11 +122,8 @@
 #if defined(HAVE_LIBGEN) && defined(HAVE_LIBGEN_H)
 #if defined(HAVE_LIBGEN) && defined(HAVE_LIBGEN_H)
 #  include <libgen.h>
 #  include <libgen.h>
 #endif
 #endif
-#ifdef HAVE_LIMITS_H
-#  include <limits.h>
-#else
-#  include <sys/limits.h>
-#endif
+
+#include <limits.h>
 #include <memory.h>
 #include <memory.h>
 #include <setjmp.h>
 #include <setjmp.h>
 #include <signal.h>
 #include <signal.h>
@@ -189,17 +186,59 @@
 #  define MAXPATHLEN 4096
 #  define MAXPATHLEN 4096
 #endif /* MAXPATHLEN */
 #endif /* MAXPATHLEN */
 
 
-# ifndef LONG_MAX
-#   define LONG_MAX     ~(1L << (8*sizeof(long) -1))
-#   define INT_MAX      ~(1 << (8*sizeof(int) -1))
-#   define SHORT_MAX    ~(1 << (8*sizeof(short) -1))
+#ifndef LONG_MAX
+#  define LONG_MAX      ~(1L << (8*sizeof(long) -1))
+#  define INT_MAX       ~(1 << (8*sizeof(int) -1))
+#endif
+
+#ifndef ULONG_MAX
+#  define ULONG_MAX     ~(OUL)
+#  define UINT_MAX      ~(OU)
+#endif
+
+#ifndef SHORT_MAX
+#  define SHORT_MAX     ~(1 << (8*sizeof(short) -1))
+#else
+#  define USHORT_MAX    ~(OUS)
+#endif
+
+#ifndef HAVE_INT8_T
+  typedef signed char       int8_t;
+#endif
+#ifndef HAVE_UINT8_T
+  typedef unsigned char     uint8_t;
+#endif
+#ifndef HAVE_INT16_T
+  typedef signed short      int16_t;
+#endif
+#ifndef HAVE_UINT16_T
+  typedef unsigned short    uint16_t;
+#endif
+
+#ifndef HAVE_INT32_T
+# if SIZEOF_INT == 4
+	typedef signed int      int32_t;
+# elif SIZEOF_LONG == 4
+	typedef signed long     int32_t;
 # endif
 # endif
+#endif
 
 
-# ifndef ULONG_MAX
-#   define ULONG_MAX    ~(OUL)
-#   define UINT_MAX     ~(OU)
-#   define USHORT_MAX   ~(OUS)
+#ifndef HAVE_UINT32_T
+# if SIZEOF_INT == 4
+	typedef unsigned int    uint32_t;
+# elif SIZEOF_LONG == 4
+	typedef unsigned long   uint32_t;
+# else
+#   error Cannot create a uint32_t type.
 # endif
 # endif
+#endif
+
+#ifndef HAVE_INTPTR_T
+  typedef signed long   intptr_t;
+#endif
+#ifndef HAVE_UINTPTR_T
+  typedef unsigned long uintptr_t;
+#endif
 
 
 /* redefine these for BSD style string libraries */
 /* redefine these for BSD style string libraries */
 #ifndef HAVE_STRCHR
 #ifndef HAVE_STRCHR

+ 2 - 4
libopts/compat/pathfind.c

@@ -5,10 +5,10 @@
 /*
 /*
  * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk>
  * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk>
  * Created:          Tue Jun 24 15:07:31 1997
  * Created:          Tue Jun 24 15:07:31 1997
- * Last Modified:    $Date: 2005/03/13 19:52:20 $
+ * Last Modified:    $Date: 2005/07/27 17:26:32 $
  *            by: bkorb
  *            by: bkorb
  *
  *
- * $Id: pathfind.c,v 4.3 2005/03/13 19:52:20 bkorb Exp $
+ * $Id: pathfind.c,v 4.4 2005/07/27 17:26:32 bkorb Exp $
  */
  */
 
 
 /* Code: */
 /* Code: */
@@ -284,8 +284,6 @@ extract_colon_unit( char* pzDir, const char *string, int *p_index )
     char*  pzDest = pzDir;
     char*  pzDest = pzDir;
     int    ix     = *p_index;
     int    ix     = *p_index;
 
 
-    const char*  pzSrc  = string + *p_index;
-
     if (string == NULL)
     if (string == NULL)
         return NULL;
         return NULL;
 
 

+ 36 - 0
libopts/compat/snprintf.c

@@ -0,0 +1,36 @@
+
+#ifndef HAVE_VPRINTF
+#include "choke-me: no vprintf and no snprintf"
+#endif
+
+static int
+snprintf(char *str, size_t n, const char *fmt, ...)
+{
+    va_list ap;
+    int rval;
+
+#ifdef VSPRINTF_CHARSTAR
+    char *rp;
+    va_start(ap, fmt);
+    rp = vsprintf(str, fmt, ap);
+    va_end(ap);
+    rval = strlen(rp);
+
+#else
+    va_start(ap, fmt);
+    rval = vsprintf(str, fmt, ap);
+    va_end(ap);
+#endif
+
+    return rval;
+}
+
+static int
+vsnprintf( char *str, size_t n, const char *fmt, va_list ap )
+{
+#ifdef VSPRINTF_CHARSTAR
+    return (strlen(vsprintf(str, fmt, ap)));
+#else
+    return (vsprintf(str, fmt, ap));
+#endif
+}

+ 19 - 0
libopts/compat/strdup.c

@@ -0,0 +1,19 @@
+/*
+ * Platforms without strdup ?!?!?!
+ */
+
+static char *
+strdup( const char *s )
+{
+    char *cp;
+
+    if (s == NULL)
+	return NULL;
+
+    cp = (char *) AGALOC((unsigned) (strlen(s)+1), "strdup");
+
+    if (cp != NULL)
+	(void) strcpy(cp, s);
+
+    return cp;
+}

+ 9 - 14
libopts/configfile.c

@@ -1,12 +1,12 @@
 /*
 /*
- *  $Id: configfile.c,v 4.7 2005/04/16 16:44:28 bkorb Exp $
- *  Time-stamp:      "2005-04-03 15:53:54 bkorb"
+ *  $Id: configfile.c,v 4.12 2006/03/25 19:24:56 bkorb Exp $
+ *  Time-stamp:      "2005-10-16 15:16:32 bkorb"
  *
  *
  *  configuration/rc/ini file handling.
  *  configuration/rc/ini file handling.
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -21,8 +21,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -148,11 +148,11 @@ configFileLoad( const char* pzFile )
     char* pzText =
     char* pzText =
         text_mmap( pzFile, PROT_READ, MAP_PRIVATE, &cfgfile );
         text_mmap( pzFile, PROT_READ, MAP_PRIVATE, &cfgfile );
 
 
-    if (pzText == MAP_FAILED)
+    if (TEXT_MMAP_FAILED_ADDR(pzText))
         return NULL; /* errno is set */
         return NULL; /* errno is set */
 
 
     pRes = optionLoadNested(pzText, pzFile, strlen(pzFile), OPTION_LOAD_COOKED);
     pRes = optionLoadNested(pzText, pzFile, strlen(pzFile), OPTION_LOAD_COOKED);
- all_done:
+
     if (pRes == NULL) {
     if (pRes == NULL) {
         int err = errno;
         int err = errno;
         text_munmap( &cfgfile );
         text_munmap( &cfgfile );
@@ -442,10 +442,9 @@ filePreset(
     tmap_info_t   cfgfile;
     tmap_info_t   cfgfile;
     char*         pzFileText =
     char*         pzFileText =
         text_mmap( pzFileName, PROT_READ|PROT_WRITE, MAP_PRIVATE, &cfgfile );
         text_mmap( pzFileName, PROT_READ|PROT_WRITE, MAP_PRIVATE, &cfgfile );
-    char*         pzEndText;
     tOptState     st = OPTSTATE_INITIALIZER(PRESET);
     tOptState     st = OPTSTATE_INITIALIZER(PRESET);
 
 
-    if (pzFileText == MAP_FAILED)
+    if (TEXT_MMAP_FAILED_ADDR(pzFileText))
         return;
         return;
 
 
     if (direction == DIRECTION_CALLED) {
     if (direction == DIRECTION_CALLED) {
@@ -462,8 +461,6 @@ filePreset(
     if ((pOpts->fOptSet & OPTPROC_PRESETTING) == 0)
     if ((pOpts->fOptSet & OPTPROC_PRESETTING) == 0)
         st.flags = OPTST_SET;
         st.flags = OPTST_SET;
 
 
-    pzEndText = pzFileText + cfgfile.txt_size;
-
     do  {
     do  {
         while (isspace( *pzFileText ))  pzFileText++;
         while (isspace( *pzFileText ))  pzFileText++;
 
 
@@ -706,7 +703,6 @@ handleStructure(
 
 
     char* pzName = ++pzText;
     char* pzName = ++pzText;
     char* pcNulPoint;
     char* pcNulPoint;
-    char* pzValStart;
 
 
     while (ISNAMECHAR( *pzText ))  pzText++;
     while (ISNAMECHAR( *pzText ))  pzText++;
     pcNulPoint = pzText;
     pcNulPoint = pzText;
@@ -738,7 +734,6 @@ handleStructure(
             pzText++;
             pzText++;
         return pzText;
         return pzText;
     }
     }
-    pzValStart = ++pzText;
 
 
     /*
     /*
      *  If we are here, we have a value.  Separate the name from the
      *  If we are here, we have a value.  Separate the name from the
@@ -794,7 +789,7 @@ internalFileLoad( tOptions* pOpts )
 {
 {
     int     idx;
     int     idx;
     int     inc = DIRECTION_PRESET;
     int     inc = DIRECTION_PRESET;
-    char    zFileName[ 4096 ];
+    char    zFileName[ MAXPATHLEN+1 ];
 
 
     if (pOpts->papzHomeList == NULL)
     if (pOpts->papzHomeList == NULL)
         return;
         return;

+ 5 - 5
libopts/cook.c

@@ -1,14 +1,14 @@
 
 
 /*
 /*
- *  $Id: cook.c,v 4.1 2005/02/14 17:03:54 bkorb Exp $
- *  Time-stamp:      "2005-02-14 07:58:28 bkorb"
+ *  $Id: cook.c,v 4.3 2006/03/25 19:24:56 bkorb Exp $
+ *  Time-stamp:      "2005-05-20 13:58:56 bkorb"
  *
  *
  *  This file contains the routines that deal with processing quoted strings
  *  This file contains the routines that deal with processing quoted strings
  *  into an internal format.
  *  into an internal format.
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -23,8 +23,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.

+ 47 - 11
libopts/enumeration.c

@@ -1,7 +1,7 @@
 
 
 /*
 /*
- *  $Id: enumeration.c,v 4.4 2005/02/15 02:12:18 bkorb Exp $
- * Time-stamp:      "2005-02-14 14:29:55 bkorb"
+ *  $Id: enumeration.c,v 4.9 2006/03/25 19:24:56 bkorb Exp $
+ * Time-stamp:      "2005-12-09 06:37:15 bkorb"
  *
  *
  *   Automated Options Paged Usage module.
  *   Automated Options Paged Usage module.
  *
  *
@@ -10,7 +10,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -25,8 +25,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -216,13 +216,38 @@ findName(
 }
 }
 
 
 
 
-/*=export_func  optionEnumerationVal
+/*=export_func  optionKeywordName
  * what:  Convert between enumeration values and strings
  * what:  Convert between enumeration values and strings
  * private:
  * private:
  *
  *
+ * arg:   tOptDesc*,     pOD,       enumeration option description
+ * arg:   unsigned int,  enum_val,  the enumeration value to map
+ *
+ * ret_type:  const char*
+ * ret_desc:  the enumeration name from const memory
+ *
+ * doc:   This converts an enumeration value into the matching string.
+=*/
+const char*
+optionKeywordName(
+    tOptDesc*     pOD,
+    unsigned int  enum_val )
+{
+    tOptDesc od;
+
+    od.pzLastArg = (const char*)(uintptr_t)enum_val;
+    (*(pOD->pOptProc))( (void*)(2UL), &od );
+    return od.pzLastArg;
+}
+
+
+/*=export_func  optionEnumerationVal
+ * what:  Convert from a string to an enumeration value
+ * private:
+ *
  * arg:   tOptions*,     pOpts,     the program options descriptor
  * arg:   tOptions*,     pOpts,     the program options descriptor
  * arg:   tOptDesc*,     pOD,       enumeration option description
  * arg:   tOptDesc*,     pOD,       enumeration option description
- * arg:   tCC**,         paz_names, list of enumeration names
+ * arg:   const char**,  paz_names, list of enumeration names
  * arg:   unsigned int,  name_ct,   number of names in list
  * arg:   unsigned int,  name_ct,   number of names in list
  *
  *
  * ret_type:  char*
  * ret_type:  char*
@@ -254,18 +279,29 @@ optionEnumerationVal(
         return (char*)0UL;
         return (char*)0UL;
 
 
     case 1UL:
     case 1UL:
+    {
+        unsigned int ix = (uintptr_t)(pOD->pzLastArg);
         /*
         /*
          *  print the name string.
          *  print the name string.
          */
          */
-        fputs( paz_names[ (uintptr_t)(pOD->pzLastArg) ], stdout );
+        if (ix >= name_ct)
+            printf( "INVALID-%d", ix );
+        else
+            fputs( paz_names[ ix ], stdout );
         return (char*)0UL;
         return (char*)0UL;
-
+    }
     case 2UL:
     case 2UL:
+    {
+        tSCC zInval[] = "*INVALID*";
+        unsigned int ix = (uintptr_t)(pOD->pzLastArg);
         /*
         /*
          *  Replace the enumeration value with the name string.
          *  Replace the enumeration value with the name string.
          */
          */
-        return (char*)paz_names[ (uintptr_t)(pOD->pzLastArg) ];
+        if (ix >= name_ct)
+            return (char*)zInval;
 
 
+        return (char*)paz_names[ ix ];
+    }
     default:
     default:
         break;
         break;
     }
     }
@@ -280,7 +316,7 @@ optionEnumerationVal(
  *
  *
  * arg:   tOptions*,     pOpts,     the program options descriptor
  * arg:   tOptions*,     pOpts,     the program options descriptor
  * arg:   tOptDesc*,     pOD,       enumeration option description
  * arg:   tOptDesc*,     pOD,       enumeration option description
- * arg:   tCC**,         paz_names, list of enumeration names
+ * arg:   const char**,  paz_names, list of enumeration names
  * arg:   unsigned int,  name_ct,   number of names in list
  * arg:   unsigned int,  name_ct,   number of names in list
  *
  *
  * doc:   This converts the pzLastArg string from the option description
  * doc:   This converts the pzLastArg string from the option description

+ 6 - 6
libopts/environment.c

@@ -1,7 +1,7 @@
 
 
 /*
 /*
- *  $Id: environment.c,v 4.5 2005/03/13 19:51:58 bkorb Exp $
- * Time-stamp:      "2005-02-20 17:18:54 bkorb"
+ *  $Id: environment.c,v 4.8 2006/03/25 19:24:56 bkorb Exp $
+ * Time-stamp:      "2005-10-29 13:23:59 bkorb"
  *
  *
  *  This file contains all of the routines that must be linked into
  *  This file contains all of the routines that must be linked into
  *  an executable to use the generated option processing.  The optional
  *  an executable to use the generated option processing.  The optional
@@ -10,7 +10,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -25,8 +25,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -68,7 +68,7 @@ doPrognameEnv( tOptions* pOpts, teEnvPresetType type )
     const char*   pczOptStr = getenv( pOpts->pzPROGNAME );
     const char*   pczOptStr = getenv( pOpts->pzPROGNAME );
     token_list_t* pTL;
     token_list_t* pTL;
     int           sv_argc;
     int           sv_argc;
-    tUI           sv_flag;
+    tAoUI         sv_flag;
     char**        sv_argv;
     char**        sv_argv;
 
 
     /*
     /*

+ 10 - 9
libopts/genshell.c

@@ -2,7 +2,7 @@
  *  
  *  
  *  DO NOT EDIT THIS FILE   (genshell.c)
  *  DO NOT EDIT THIS FILE   (genshell.c)
  *  
  *  
- *  It has been AutoGen-ed  Sunday April 17, 2005 at 11:55:00 AM PDT
+ *  It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:19 AM PDT
  *  From the definitions    genshell.def
  *  From the definitions    genshell.def
  *  and the template file   options
  *  and the template file   options
  */
  */
@@ -14,7 +14,7 @@
 extern "C" {
 extern "C" {
 #endif
 #endif
 tSCC zCopyright[] =
 tSCC zCopyright[] =
-       "genshellopt copyright (c) 1999-2005 Bruce Korb, all rights reserved";
+       "genshellopt copyright (c) 1999-2006 Bruce Korb, all rights reserved";
 tSCC zCopyrightNotice[] =
 tSCC zCopyrightNotice[] =
        "genshellopt is free software; you can redistribute it and/or\n\
        "genshellopt is free software; you can redistribute it and/or\n\
 modify it under the terms of the GNU Lesser General Public\n\
 modify it under the terms of the GNU Lesser General Public\n\
@@ -25,10 +25,10 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n\
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n\
 Lesser General Public License for more details.\n\n\
 Lesser General Public License for more details.\n\n\
 You should have received a copy of the GNU Lesser General Public\n\
 You should have received a copy of the GNU Lesser General Public\n\
-License along with genshellopt; if not, write to:\n\
-           The Free Software Foundation, Inc.,\n\
-           59 Temple Place - Suite 330,\n\
-           Boston,  MA  02111-1307, USA.";
+License along with genshellopt.  If not, write to:\n\
+\tThe Free Software Foundation, Inc.,\n\
+\t51 Franklin Street, Fifth Floor\n\
+\tBoston, MA  02110-1301, USA.";
 extern tUsageProc genshelloptUsage;
 extern tUsageProc genshelloptUsage;
 
 
 #ifndef NULL
 #ifndef NULL
@@ -169,7 +169,7 @@ If the script file already exists and contains Automated Option Processing\n\
 text, the second line of the file through the ending tag will be replaced\n\
 text, the second line of the file through the ending tag will be replaced\n\
 by the newly generated text.  The first `#!' line will be regenerated.\n";
 by the newly generated text.  The first `#!' line will be regenerated.\n";
 tSCC    zFullVersion[] = GENSHELLOPT_FULL_VERSION;
 tSCC    zFullVersion[] = GENSHELLOPT_FULL_VERSION;
-/* extracted from optcode.tpl near line 309 */
+/* extracted from optcode near line 321 */
 
 
 #if defined(ENABLE_NLS)
 #if defined(ENABLE_NLS)
 # define OPTPROC_BASE OPTPROC_TRANSLATE
 # define OPTPROC_BASE OPTPROC_TRANSLATE
@@ -219,11 +219,12 @@ doUsageOpt(
 {
 {
     USAGE( EXIT_SUCCESS );
     USAGE( EXIT_SUCCESS );
 }
 }
-/* extracted from optcode.tpl near line 396 */
+/* extracted from optcode near line 418 */
 
 
 #if ENABLE_NLS
 #if ENABLE_NLS
-#include <string.h>
 #include <stdio.h>
 #include <stdio.h>
+#include <string.h>
+#include <unistd.h>
 #include <autoopts/usage-txt.h>
 #include <autoopts/usage-txt.h>
 
 
 static char*
 static char*

+ 28 - 9
libopts/genshell.h

@@ -2,7 +2,7 @@
  *  
  *  
  *  DO NOT EDIT THIS FILE   (genshell.h)
  *  DO NOT EDIT THIS FILE   (genshell.h)
  *  
  *  
- *  It has been AutoGen-ed  Sunday April 17, 2005 at 11:55:00 AM PDT
+ *  It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:19 AM PDT
  *  From the definitions    genshell.def
  *  From the definitions    genshell.def
  *  and the template file   options
  *  and the template file   options
  */
  */
@@ -16,7 +16,7 @@
 #define AUTOOPTS_GENSHELL_H_GUARD
 #define AUTOOPTS_GENSHELL_H_GUARD
 
 
 /*
 /*
- * genshellopt copyright 1999-2005 Bruce Korb - all rights reserved
+ * genshellopt copyright 1999-2006 Bruce Korb - all rights reserved
  *
  *
  * genshellopt is free software; you can redistribute it and/or
  * genshellopt is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * modify it under the terms of the GNU Lesser General Public
@@ -29,14 +29,27 @@
  * Lesser General Public License for more details.
  * Lesser General Public License for more details.
  * 
  * 
  * You should have received a copy of the GNU Lesser General Public
  * You should have received a copy of the GNU Lesser General Public
- * License along with genshellopt; if not, write to:
- *            The Free Software Foundation, Inc.,
- *            59 Temple Place - Suite 330,
- *            Boston,  MA  02111-1307, USA.
+ * License along with genshellopt.  If not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
  */
  */
 #include <autoopts/options.h>
 #include <autoopts/options.h>
 
 
 /*
 /*
+ *  Ensure that the library used for compiling this generated header is at
+ *  least as new as the version current when the header template was released
+ *  (not counting patch version increments).  Also ensure that the oldest
+ *  tolerable version is at least as old as what was current when the header
+ *  template was released.
+ */
+#define AO_TEMPLATE_VERSION 110592
+#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+# error option template version mismatches autoopts/options.h header
+#endif
+
+/*
  *  Enumeration of each option:
  *  Enumeration of each option:
  */
  */
 typedef enum {
 typedef enum {
@@ -56,7 +69,7 @@ typedef enum {
  *  the UPPER_CASED option name (as in the teOptIndex
  *  the UPPER_CASED option name (as in the teOptIndex
  *  enumeration above).  e.g. HAVE_OPT( SCRIPT )
  *  enumeration above).  e.g. HAVE_OPT( SCRIPT )
  */
  */
-#define         DESC(n) genshelloptOptions.pOptDesc[INDEX_OPT_ ## n]
+#define        DESC(n) genshelloptOptions.pOptDesc[INDEX_OPT_ ## n]
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
 #define     HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
 #define      OPT_ARG(n) (DESC(n).pzLastArg)
 #define      OPT_ARG(n) (DESC(n).pzLastArg)
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
 #define    STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
@@ -81,7 +94,6 @@ typedef enum {
 #define VALUE_OPT_VERSION       'v'
 #define VALUE_OPT_VERSION       'v'
 #define VALUE_OPT_HELP          '?'
 #define VALUE_OPT_HELP          '?'
 #define VALUE_OPT_MORE_HELP     '!'
 #define VALUE_OPT_MORE_HELP     '!'
-
 /*
 /*
  *  Interface defines not associated with particular options
  *  Interface defines not associated with particular options
  */
  */
@@ -92,7 +104,7 @@ typedef enum {
                 genshelloptOptions.pzCurOpt  = NULL )
                 genshelloptOptions.pzCurOpt  = NULL )
 #define START_OPT       RESTART_OPT(1)
 #define START_OPT       RESTART_OPT(1)
 #define USAGE(c)        (*genshelloptOptions.pUsageProc)( &genshelloptOptions, c )
 #define USAGE(c)        (*genshelloptOptions.pUsageProc)( &genshelloptOptions, c )
-/* extracted from opthead.tpl near line 246 */
+/* extracted from opthead near line 289 */
 
 
 /* * * * * *
 /* * * * * *
  *
  *
@@ -121,3 +133,10 @@ extern tOptions   genshelloptOptions;
 }
 }
 #endif
 #endif
 #endif /* AUTOOPTS_GENSHELL_H_GUARD */
 #endif /* AUTOOPTS_GENSHELL_H_GUARD */
+/*
+ * Local Variables:
+ * Mode: C
+ * c-file-style: "stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * options.h ends here */

+ 2 - 1
libopts/libopts.c

@@ -1,5 +1,6 @@
 #define AUTOOPTS_INTERNAL
 #define AUTOOPTS_INTERNAL
-#include "config.h"
+#include "compat/compat.h"
+#define HAVE_LIBSNPRINTFV
 #include "autoopts/options.h"
 #include "autoopts/options.h"
 #include "autoopts/usage-txt.h"
 #include "autoopts/usage-txt.h"
 #include "genshell.h"
 #include "genshell.h"

+ 149 - 99
libopts/load.c

@@ -1,7 +1,7 @@
 
 
 /*
 /*
- *  $Id: load.c,v 4.10 2005/03/13 19:51:58 bkorb Exp $
- *  Time-stamp:      "2005-02-23 14:22:26 bkorb"
+ *  $Id: load.c,v 4.18 2006/03/25 19:24:56 bkorb Exp $
+ *  Time-stamp:      "2005-10-29 14:45:36 bkorb"
  *
  *
  *  This file contains the routines that deal with processing text strings
  *  This file contains the routines that deal with processing text strings
  *  for options, either from a NUL-terminated string passed in or from an
  *  for options, either from a NUL-terminated string passed in or from an
@@ -9,7 +9,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -24,8 +24,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -53,6 +53,20 @@
 
 
 /* = = = START-STATIC-FORWARD = = = */
 /* = = = START-STATIC-FORWARD = = = */
 /* static forward declarations maintained by :mkfwd */
 /* static forward declarations maintained by :mkfwd */
+static ag_bool
+insertProgramPath(
+    char*   pzBuf,
+    int     bufSize,
+    tCC*    pzName,
+    tCC*    pzProgPath );
+
+static ag_bool
+insertEnvVal(
+    char*   pzBuf,
+    int     bufSize,
+    tCC*    pzName,
+    tCC*    pzProgPath );
+
 static char*
 static char*
 assembleArgValue( char* pzTxt, tOptionLoadMode mode );
 assembleArgValue( char* pzTxt, tOptionLoadMode mode );
 /* = = = END-STATIC-FORWARD = = = */
 /* = = = END-STATIC-FORWARD = = = */
@@ -61,15 +75,17 @@ assembleArgValue( char* pzTxt, tOptionLoadMode mode );
  * private:
  * private:
  *
  *
  * what:  translate and construct a path
  * what:  translate and construct a path
- * arg:   + char* + pzBuf      + The result buffer +
- * arg:   + int   + bufSize    + The size of this buffer +
- * arg:   + tCC*  + pzName     + The input name +
- * arg:   + tCC*  + pzProgPath + The full path of the current program +
+ * arg:   + char*       + pzBuf      + The result buffer +
+ * arg:   + int         + bufSize    + The size of this buffer +
+ * arg:   + const char* + pzName     + The input name +
+ * arg:   + const char* + pzProgPath + The full path of the current program +
  *
  *
  * ret-type: ag_bool
  * ret-type: ag_bool
  * ret-desc: AG_TRUE if the name was handled, otherwise AG_FALSE.
  * ret-desc: AG_TRUE if the name was handled, otherwise AG_FALSE.
  *           If the name does not start with ``$'', then it is handled
  *           If the name does not start with ``$'', then it is handled
- *           simply by copying the input name to the output buffer.
+ *           simply by copying the input name to the output buffer and
+ *           resolving the name with either @code{canonicalize_file_name(3GLIBC)}
+ *           or @code{realpath(3C)}.
  *
  *
  * doc:
  * doc:
  *
  *
@@ -90,13 +106,15 @@ assembleArgValue( char* pzTxt, tOptionLoadMode mode );
  *
  *
  * err:  @code{AG_FALSE} is returned if:
  * err:  @code{AG_FALSE} is returned if:
  *       @*
  *       @*
- *       @bullet{} @code{$$} is not the full string and
- *                 the next character is not '/'.
+ *       @bullet{} The input name exceeds @code{bufSize} bytes.
  *       @*
  *       @*
- *       @bullet{} @code{$NAME} is not the full string and
+ *       @bullet{} @code{$$} or @code{$NAME} is not the full string and
  *                 the next character is not '/'.
  *                 the next character is not '/'.
  *       @*
  *       @*
  *       @bullet{} @code{NAME} is not a known environment variable
  *       @bullet{} @code{NAME} is not a known environment variable
+ *       @*
+ *       @bullet{} @code{canonicalize_file_name} or @code{realpath} return
+ *                 errors (cannot resolve the resulting path).
 =*/
 =*/
 ag_bool
 ag_bool
 optionMakePath(
 optionMakePath(
@@ -105,6 +123,8 @@ optionMakePath(
     tCC*    pzName,
     tCC*    pzName,
     tCC*    pzProgPath )
     tCC*    pzProgPath )
 {
 {
+    ag_bool res = AG_TRUE;
+
     if (bufSize <= strlen( pzName ))
     if (bufSize <= strlen( pzName ))
         return AG_FALSE;
         return AG_FALSE;
 
 
@@ -112,8 +132,16 @@ optionMakePath(
      *  IF not an environment variable, just copy the data
      *  IF not an environment variable, just copy the data
      */
      */
     if (*pzName != '$') {
     if (*pzName != '$') {
-        strncpy( pzBuf, pzName, bufSize );
-        return AG_TRUE;
+        tCC*  pzS = pzName;
+        char* pzD = pzBuf;
+        int   ct  = bufSize;
+
+        for (;;) {
+            if ( (*(pzD++) = *(pzS++)) == NUL)
+                break;
+            if (--ct <= 0)
+                return AG_FALSE;
+        }
     }
     }
 
 
     /*
     /*
@@ -121,116 +149,138 @@ optionMakePath(
      *  it must start with "$$/".  In either event, replace the "$$"
      *  it must start with "$$/".  In either event, replace the "$$"
      *  with the path to the executable and append a "/" character.
      *  with the path to the executable and append a "/" character.
      */
      */
-    if (pzName[1] == '$') {
-        tCC*    pzPath;
-        tCC*    pz;
-
-        switch (pzName[2]) {
-        case '/':
-        case NUL:
-            break;
-        default:
-            return AG_FALSE;
-        }
-
-        /*
-         *  See if the path is included in the program name.
-         *  If it is, we're done.  Otherwise, we have to hunt
-         *  for the program using "pathfind".
-         */
-        if (strchr( pzProgPath, '/' ) != NULL)
-            pzPath = pzProgPath;
-        else {
-            pzPath = pathfind( getenv( "PATH" ), (char*)pzProgPath, "rx" );
+    else if (pzName[1] == '$')
+        res = insertProgramPath( pzBuf, bufSize, pzName, pzProgPath );
+    else
+        res = insertEnvVal( pzBuf, bufSize, pzName, pzProgPath );
 
 
-            if (pzPath == NULL)
-                return AG_FALSE;
-        }
-
-        pz = strrchr( pzPath, '/' );
+    if (! res)
+        return AG_FALSE;
 
 
-        /*
-         *  IF we cannot find a directory name separator,
-         *  THEN we do not have a path name to our executable file.
-         */
+#if defined(HAVE_CANONICALIZE_FILE_NAME)
+    {
+        char* pz = canonicalize_file_name(pzBuf);
         if (pz == NULL)
         if (pz == NULL)
             return AG_FALSE;
             return AG_FALSE;
+        if (strlen(pz) < bufSize)
+            strcpy(pzBuf, pz);
+        free(pz);
+    }
 
 
-        /*
-         *  Skip past the "$$" and, maybe, the "/".  Anything else is invalid.
-         */
-        pzName += 2;
-        switch (*pzName) {
-        case '/':
-            pzName++;
-        case NUL:
-            break;
-        default:
-            return AG_FALSE;
-        }
+#elif defined(HAVE_REALPATH)
+    {
+        char z[ PATH_MAX+1 ];
 
 
-        /*
-         *  Concatenate the file name to the end of the executable path.
-         *  The result may be either a file or a directory.
-         */
-        if ((pz - pzPath)+1 + strlen(pzName) >= bufSize)
+        if (realpath( pzBuf, z ) == NULL)
             return AG_FALSE;
             return AG_FALSE;
 
 
-        memcpy( pzBuf, pzPath, (pz - pzPath)+1 );
-        strcpy( pzBuf + (pz - pzPath) + 1, pzName );
+        if (strlen(z) < bufSize)
+            strcpy( pzBuf, z );
+    }
+#endif
+
+    return AG_TRUE;
+}
+
 
 
-        /*
-         *  If the "pzPath" path was gotten from "pathfind()", then it was
-         *  allocated and we need to deallocate it.
-         */
-        if (pzPath != pzProgPath)
-             free( (void*)pzPath );
+static ag_bool
+insertProgramPath(
+    char*   pzBuf,
+    int     bufSize,
+    tCC*    pzName,
+    tCC*    pzProgPath )
+{
+    tCC*    pzPath;
+    tCC*    pz;
+    int     skip = 2;
+
+    switch (pzName[2]) {
+    case '/':
+        skip = 3;
+    case NUL:
+        break;
+    default:
+        return AG_FALSE;
     }
     }
 
 
     /*
     /*
-     *  See if the env variable is followed by specified directories
-     *  (We will not accept any more env variables.)
+     *  See if the path is included in the program name.
+     *  If it is, we're done.  Otherwise, we have to hunt
+     *  for the program using "pathfind".
      */
      */
+    if (strchr( pzProgPath, '/' ) != NULL)
+        pzPath = pzProgPath;
     else {
     else {
-        char* pzDir = pzBuf;
+        pzPath = pathfind( getenv( "PATH" ), (char*)pzProgPath, "rx" );
 
 
-        for (;;) {
-            char ch = *++pzName;
-            if (! ISNAMECHAR( ch ))
-                break;
-            *(pzDir++) = ch;
-        }
-
-        if (pzDir == pzBuf)
+        if (pzPath == NULL)
             return AG_FALSE;
             return AG_FALSE;
+    }
 
 
-        *pzDir = NUL;
+    pz = strrchr( pzPath, '/' );
 
 
-        pzDir = getenv( pzBuf );
+    /*
+     *  IF we cannot find a directory name separator,
+     *  THEN we do not have a path name to our executable file.
+     */
+    if (pz == NULL)
+        return AG_FALSE;
 
 
-        /*
-         *  Environment value not found -- skip the home list entry
-         */
-        if (pzDir == NULL)
-            return AG_FALSE;
+    pzName += skip;
 
 
-        if (strlen( pzDir ) + 1 + strlen( pzName ) >= bufSize)
-            return AG_FALSE;
+    /*
+     *  Concatenate the file name to the end of the executable path.
+     *  The result may be either a file or a directory.
+     */
+    if ((pz - pzPath)+1 + strlen(pzName) >= bufSize)
+        return AG_FALSE;
 
 
-        sprintf( pzBuf, "%s%s", pzDir, pzName );
-    }
+    memcpy( pzBuf, pzPath, (pz - pzPath)+1 );
+    strcpy( pzBuf + (pz - pzPath) + 1, pzName );
 
 
-#ifdef HAVE_REALPATH
-    {
-        char z[ PATH_MAX+1 ];
+    /*
+     *  If the "pzPath" path was gotten from "pathfind()", then it was
+     *  allocated and we need to deallocate it.
+     */
+    if (pzPath != pzProgPath)
+        free( (void*)pzPath );
+    return AG_TRUE;
+}
 
 
-        if (realpath( pzBuf, z ) == NULL)
-            return AG_FALSE;
 
 
-        strcpy( pzBuf, z );
+static ag_bool
+insertEnvVal(
+    char*   pzBuf,
+    int     bufSize,
+    tCC*    pzName,
+    tCC*    pzProgPath )
+{
+    char* pzDir = pzBuf;
+
+    for (;;) {
+        char ch = *++pzName;
+        if (! ISNAMECHAR( ch ))
+            break;
+        *(pzDir++) = ch;
     }
     }
-#endif
 
 
+    if (pzDir == pzBuf)
+        return AG_FALSE;
+
+    *pzDir = NUL;
+
+    pzDir = getenv( pzBuf );
+
+    /*
+     *  Environment value not found -- skip the home list entry
+     */
+    if (pzDir == NULL)
+        return AG_FALSE;
+
+    if (strlen( pzDir ) + 1 + strlen( pzName ) >= bufSize)
+        return AG_FALSE;
+
+    sprintf( pzBuf, "%s%s", pzDir, pzName );
     return AG_TRUE;
     return AG_TRUE;
 }
 }
 
 

+ 215 - 122
libopts/libopts.m4

@@ -2,10 +2,93 @@ dnl  -*- buffer-read-only: t -*- vi: set ro:
 dnl 
 dnl 
 dnl DO NOT EDIT THIS FILE   (libopts.m4)
 dnl DO NOT EDIT THIS FILE   (libopts.m4)
 dnl 
 dnl 
-dnl It has been AutoGen-ed  Sunday April 17, 2005 at 11:55:00 AM PDT
+dnl It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:18 AM PDT
 dnl From the definitions    libopts.def
 dnl From the definitions    libopts.def
 dnl and the template file   conftest.tpl
 dnl and the template file   conftest.tpl
 dnl
 dnl
+dnl do always before generated macros:
+dnl
+AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
+[if test X${INVOKE_LIBOPTS_MACROS_FIRST_done} != Xyes ; then]
+  # =================
+  # AC_HEADER_STDC
+  # =================
+  AC_HEADER_STDC
+  # =================
+  # AC_HEADER_DIRENT
+  # =================
+  AC_HEADER_DIRENT
+  
+  # =================
+  # AC_CHECK_HEADERS
+  # =================
+  AC_CHECK_HEADERS(dlfcn.h errno.h fcntl.h libgen.h memory.h netinet/in.h \
+    setjmp.h sys/mman.h sys/param.h sys/poll.h sys/procset.h sys/select.h \
+    sys/socket.h sys/stropts.h sys/time.h sys/un.h sys/wait.h unistd.h)
+  
+  # --------------------------------------------
+  # Verify certain entries from AC_CHECK_HEADERS
+  # --------------------------------------------
+  [for f in sys_types sys_mman sys_param sys_stat sys_wait \
+           string errno stdlib memory setjmp
+  do eval as_ac_var=\${ac_cv_header_${f}_h+set}
+     test "${as_ac_var}" = set] || \
+       AC_MSG_ERROR([You must have ${f}.h on your system])
+  done
+  
+  # ================================================
+  # AC_CHECK_HEADERS: stdarg.h is present define HAVE_STDARG_H, otherwise
+  # if varargs.h is present define HAVE_VARARGS_H.
+  # ================================================
+  AC_CHECK_HEADERS(stdarg.h varargs.h, break)
+  [if test `eval echo '${'$as_ac_Header'}'` != yes; then]
+    AC_MSG_ERROR([You must have stdarg.h or varargs.h on your system])
+  fi
+  
+  # ================================================
+  # Similarly for the string.h and strings.h headers
+  # ================================================
+  AC_CHECK_HEADERS(string.h strings.h, break)
+  [if test `eval echo '${'$as_ac_Header'}'` != yes; then]
+    AC_MSG_ERROR([You must have string.h or strings.h on your system])
+  fi
+  
+  # =====================
+  # ...and limits headers
+  # =====================
+  AC_CHECK_HEADERS(limits.h sys/limits.h values.h, break)
+  [if test `eval echo '${'$as_ac_Header'}'` != yes; then]
+    AC_MSG_ERROR([You must have one of limits.h, sys/limits.h or values.h])
+  fi
+  
+  # ========================
+  # ...and int types headers
+  # ========================
+  AC_CHECK_HEADERS(stdint.h inttypes.h, break)
+  AC_CHECK_TYPES([int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
+     intptr_t])
+  
+  # ====================
+  # uintptr type & sizes
+  # ====================
+  AC_CHECK_TYPES([uintptr_t], ,
+         [AC_DEFINE([uintptr_t], unsigned long,
+                    [Alternate uintptr_t for systems without it.])])
+  AC_CHECK_SIZEOF(char*, 4)
+  AC_CHECK_SIZEOF(int,   4)
+  AC_CHECK_SIZEOF(long,  4)
+  AC_CHECK_SIZEOF(short, 2)
+  
+  # ----------------------------------------------------------------------
+  # AC_CHECK_LIB for SVR4 libgen, and use it if it defines pathfind.
+  # ----------------------------------------------------------------------
+  AC_CHECK_LIB(gen, pathfind)
+  AC_FUNC_VPRINTF
+  AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup])
+[  INVOKE_LIBOPTS_MACROS_FIRST_done=yes
+fi]])
+
+dnl
 dnl @synopsis  INVOKE_LIBOPTS_MACROS
 dnl @synopsis  INVOKE_LIBOPTS_MACROS
 dnl
 dnl
 dnl  This macro will invoke the AutoConf macros specified in libopts.def
 dnl  This macro will invoke the AutoConf macros specified in libopts.def
@@ -159,6 +242,58 @@ int main (int argc, char** argv) {
 ]) # end of AC_DEFUN of LIBOPTS_RUN_PATHFIND
 ]) # end of AC_DEFUN of LIBOPTS_RUN_PATHFIND
 
 
 
 
+AC_DEFUN([LIBOPTS_TEST_DEV_ZERO],[
+  AC_MSG_CHECKING([whether /dev/zero is readable device])
+  AC_CACHE_VAL([libopts_cv_test_dev_zero],[
+    libopts_cv_test_dev_zero=`exec 2> /dev/null
+dzero=\`ls -l /dev/zero | egrep ^c......r\`
+test -z "${dzero}" && exit 1
+echo ${dzero}`
+    if test $? -ne 0
+    then libopts_cv_test_dev_zero=no
+    elif test -z "$libopts_cv_test_dev_zero"
+    then libopts_cv_test_dev_zero=no
+    fi
+  ]) # end of CACHE_VAL of libopts_cv_test_dev_zero
+  AC_MSG_RESULT([${libopts_cv_test_dev_zero}])
+
+  if test "X${libopts_cv_test_dev_zero}" != Xno
+  then
+    AC_DEFINE([HAVE_DEV_ZERO],[1],
+        [Define this if /dev/zero is readable device])
+  fi
+  
+]) # end of AC_DEFUN of LIBOPTS_TEST_DEV_ZERO
+
+
+AC_DEFUN([LIBOPTS_RUN_REALPATH],[
+  AC_MSG_CHECKING([whether we have a functional realpath(3C)])
+  AC_CACHE_VAL([libopts_cv_run_realpath],[
+  AC_TRY_RUN([@%:@include <limits.h>
+@%:@include <stdlib.h>
+int main (int argc, char** argv) {
+@%:@ifndef PATH_MAX
+choke me!!
+@%:@else
+   char zPath@<:@PATH_MAX+1@:>@;
+@%:@endif
+   char *pz = realpath(argv@<:@0@:>@, zPath);
+   return (pz == zPath) ? 0 : 1;
+}],
+    [libopts_cv_run_realpath=yes],[libopts_cv_run_realpath=no],[libopts_cv_run_realpath=no]
+  ) # end of TRY_RUN
+  ]) # end of AC_CACHE_VAL for libopts_cv_run_realpath
+  AC_MSG_RESULT([${libopts_cv_run_realpath}])
+
+  if test "X${libopts_cv_run_realpath}" != Xno
+  then
+    AC_DEFINE([HAVE_REALPATH],[1],
+        [Define this if we have a functional realpath(3C)])
+  fi
+  
+]) # end of AC_DEFUN of LIBOPTS_RUN_REALPATH
+
+
 AC_DEFUN([LIBOPTS_RUN_STRFTIME],[
 AC_DEFUN([LIBOPTS_RUN_STRFTIME],[
   AC_MSG_CHECKING([whether strftime() works])
   AC_MSG_CHECKING([whether strftime() works])
   AC_CACHE_VAL([libopts_cv_run_strftime],[
   AC_CACHE_VAL([libopts_cv_run_strftime],[
@@ -242,6 +377,7 @@ return (fp == NULL) ? 1 : fclose(fp); }],
 
 
 
 
 AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
 AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
+  INVOKE_LIBOPTS_MACROS_FIRST
   # Check to see if a reg expr header is specified.
   # Check to see if a reg expr header is specified.
   LIBOPTS_WITH_REGEX_HEADER
   LIBOPTS_WITH_REGEX_HEADER
 
 
@@ -251,6 +387,12 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
   # Check to see if pathfind(3) works.
   # Check to see if pathfind(3) works.
   LIBOPTS_RUN_PATHFIND
   LIBOPTS_RUN_PATHFIND
 
 
+  # Check to see if /dev/zero is readable device.
+  LIBOPTS_TEST_DEV_ZERO
+
+  # Check to see if we have a functional realpath(3C).
+  LIBOPTS_RUN_REALPATH
+
   # Check to see if strftime() works.
   # Check to see if strftime() works.
   LIBOPTS_RUN_STRFTIME
   LIBOPTS_RUN_STRFTIME
 
 
@@ -259,136 +401,87 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
 
 
   # Check to see if fopen accepts "t" mode.
   # Check to see if fopen accepts "t" mode.
   LIBOPTS_RUN_FOPEN_TEXT
   LIBOPTS_RUN_FOPEN_TEXT
-  
-  # ----------------------------------------------------------------------
-  # Check for standard headers.
-  # ----------------------------------------------------------------------
-  # =================
-  # AC_HEADER_STDC
-  # =================
-  AC_HEADER_STDC
-  # =================
-  # AC_HEADER_DIRENT
-  # =================
-  AC_HEADER_DIRENT
-  
-  # ----------------------------------------------------------------------
-  # AC_CHECK_HEADERS Check for list of headers.
-  # ----------------------------------------------------------------------
-  AC_CHECK_HEADERS(dlfcn.h errno.h fcntl.h libgen.h memory.h netinet/in.h \
-    setjmp.h sys/mman.h sys/param.h sys/poll.h sys/procset.h sys/select.h \
-    sys/socket.h sys/stropts.h sys/time.h sys/un.h sys/wait.h unistd.h)
-  
-  # --------------------------------------------
-  # Verify certain entries from AC_CHECK_HEADERS
-  # --------------------------------------------
-  for f in sys_types sys_mman sys_param sys_stat sys_wait \
-           string errno stdlib memory setjmp
-  do eval as_ac_var=\${ac_cv_header_${f}_h+set}
-     test "${as_ac_var}" = set || \
-       AC_MSG_ERROR([You must have ${f}.h on your system])
-  done
-  
-  # =================
-  # AC_CHECK_HEADERS: stdarg.h is present define HAVE_STDARG_H, otherwise
-  # if varargs.h is present define HAVE_VARARGS_H.
-  # =================
-  AC_CHECK_HEADERS(stdarg.h varargs.h, break)
-  if test `eval echo '${'$as_ac_Header'}'` != yes; then
-    AC_MSG_ERROR([You must have stdarg.h or varargs.h on your system])
-  fi
-  
-  # =================
-  # Similarly for the string.h and strings.h headers
-  # =================
-  AC_CHECK_HEADERS(string.h strings.h, break)
-  if test `eval echo '${'$as_ac_Header'}'` != yes; then
-    AC_MSG_ERROR([You must have string.h or strings.h on your system])
-  fi
-  
-  # =================
-  # ...and limits headers
-  # =================
-  AC_CHECK_HEADERS(limits.h sys/limits.h values.h, break)
-  if test `eval echo '${'$as_ac_Header'}'` != yes; then
-    AC_MSG_ERROR([You must have one of limits.h, sys/limits.h or values.h])
-  fi
-  
-  # =================
-  # ...and int types headers
-  # =================
-  AC_CHECK_HEADERS(stdint.h inttypes.h, break)
-  if test `eval echo '${'$as_ac_Header'}'` != yes; then
-    AC_MSG_ERROR([You must have stdint.h or inttypes.h on your system])
-  fi
-  
-  # =================
-  # ...and directory read headers
-  # =================
-  AC_CHECK_HEADERS(dirent.h ndir.h sys/ndir.h, break)
-  
-  # ----------------------------------------------------------------------
-  # AC_CHECK_LIB for SVR4 libgen, and use it if it defines pathfind.
-  # ----------------------------------------------------------------------
-  AC_CHECK_LIB(gen, pathfind)
-  AC_CHECK_FUNCS(mmap)
+
 ]) # end AC_DEFUN of INVOKE_LIBOPTS_MACROS
 ]) # end AC_DEFUN of INVOKE_LIBOPTS_MACROS
 
 
 dnl @synopsis  LIBOPTS_CHECK
 dnl @synopsis  LIBOPTS_CHECK
 dnl
 dnl
 dnl If autoopts-config works, add the linking information to LIBS.
 dnl If autoopts-config works, add the linking information to LIBS.
-dnl Otherwise, add \`\`libopts-${AO_CURRENT}.${AO_REVISION}.${AO_AGE}''
-dnl to SUBDIRS and run all the config tests that the library needs.
+dnl Otherwise, add ``libopts-${ao_rev}'' to SUBDIRS and run all
+dnl the config tests that the library needs.  Invoke the
+dnl "INVOKE_LIBOPTS_MACROS" macro iff we are building libopts.
+dnl
+dnl Default to system libopts
 dnl
 dnl
-
-        dnl Default to system libopts
-        NEED_LIBOPTS_DIR=''
-
 AC_DEFUN([LIBOPTS_CHECK],[
 AC_DEFUN([LIBOPTS_CHECK],[
+  [NEED_LIBOPTS_DIR='']
+  m4_pushdef([AO_Libopts_Dir],
+	    [ifelse($1, , [libopts], [$1])])
+  AC_SUBST(LIBOPTS_DIR, AO_Libopts_Dir)
   AC_ARG_ENABLE([local-libopts],
   AC_ARG_ENABLE([local-libopts],
-AC_HELP_STRING([--enable-local-libopts],
-    		  [Force using the supplied libopts tearoff code]),
-                  [ if test x$enableval = xyes ; then
-                        AC_MSG_NOTICE([Using supplied libopts tearoff])
-LIBOPTS_LDADD='$(top_builddir)/libopts/libopts.la'
-LIBOPTS_CFLAGS='-I$(top_srcdir)/libopts'
-INVOKE_LIBOPTS_MACROS
-NEED_LIBOPTS_DIR=true
-                    fi])
-
-         if test -z "${NEED_LIBOPTS_DIR}" ; then
-        AC_MSG_CHECKING([whether autoopts-config can be found])
-       		AC_ARG_WITH([autoopts-config],
-       	             AC_HELP_STRING([--with-autoopts-config],
-        	            [specify the config-info script]),
-       		     [lo_cv_with_autoopts_config=${with_autoopts_config}],
-     AC_CACHE_CHECK([whether autoopts-config is specified],
-    lo_cv_with_autoopts_config,
-            lo_cv_with_autoopts_config=autoopts-config)
-) # end of AC_ARG_WITH
-AC_CACHE_VAL([lo_cv_test_autoopts],[
- 		    aoconfig=${lo_cv_with_autoopts_config}
-    lo_cv_test_autoopts=`${aoconfig} --libs` 2> /dev/null
-    if test $? -ne 0 -o -z "${lo_cv_test_autoopts}"
-then lo_cv_test_autoopts=no ; fi
-]) # end of CACHE_VAL
-AC_MSG_RESULT([${lo_cv_test_autoopts}])
-
-if test "X${lo_cv_test_autoopts}" != Xno
-then
-            LIBOPTS_LDADD="${lo_cv_test_autoopts}"
-    LIBOPTS_CFLAGS="`${aoconfig} --cflags`"
-else
-    LIBOPTS_LDADD='$(top_builddir)/libopts/libopts.la'
-    LIBOPTS_CFLAGS='-I$(top_srcdir)/libopts'
-    INVOKE_LIBOPTS_MACROS
-    NEED_LIBOPTS_DIR=true
-fi
-
-          fi # end of if test -z "${NEED_LIBOPTS_DIR}"
+    AC_HELP_STRING([--enable-local-libopts],
+       [Force using the supplied libopts tearoff code]),[
+    if test x$enableval = xyes ; then
+       AC_MSG_NOTICE([Using supplied libopts tearoff])
+       LIBOPTS_LDADD='$(top_builddir)/AO_Libopts_Dir/libopts.la'
+       LIBOPTS_CFLAGS='-I$(top_srcdir)/AO_Libopts_Dir'
+       NEED_LIBOPTS_DIR=true
+    fi])
+
+  [if test -z "${NEED_LIBOPTS_DIR}" ; then]
+     AC_MSG_CHECKING([whether autoopts-config can be found])
+     AC_ARG_WITH([autoopts-config],
+        AC_HELP_STRING([--with-autoopts-config],
+             [specify the config-info script]),
+        [lo_cv_with_autoopts_config=${with_autoopts_config}],
+        AC_CACHE_CHECK([whether autoopts-config is specified],
+             [lo_cv_with_autoopts_config],
+             [if autoopts-config --help 2>/dev/null 1>&2
+        then lo_cv_with_autoopts_config=autoopts-config
+        elif libopts-config --help 2>/dev/null 1>&2
+        then lo_cv_with_autoopts_config=libopts-config
+        else lo_cv_with_autoopts_config=no ; fi])
+     ) # end of AC_ARG_WITH
+
+     AC_CACHE_VAL([lo_cv_test_autoopts],[
+        if test -z "${lo_cv_with_autoopts_config}" \
+                -o X"${lo_cv_with_autoopts_config}" = Xno
+        then
+           if autoopts-config --help 2>/dev/null 1>&2
+           then lo_cv_with_autoopts_config=autoopts-config
+           elif libopts-config --help 2>/dev/null 1>&2
+           then lo_cv_with_autoopts_config=libopts-config
+           else lo_cv_with_autoopts_config=false ; fi
+        fi
+        lo_cv_test_autoopts=`
+            ${lo_cv_with_autoopts_config} --libs` 2> /dev/null
+        if test $? -ne 0 -o -z "${lo_cv_test_autoopts}"
+        then lo_cv_test_autoopts=no ; fi
+     ]) # end of CACHE_VAL
+     AC_MSG_RESULT([${lo_cv_test_autoopts}])
+
+     [if test "X${lo_cv_test_autoopts}" != Xno
+     then
+        LIBOPTS_LDADD="${lo_cv_test_autoopts}"
+        LIBOPTS_CFLAGS="`${lo_cv_with_autoopts_config} --cflags`"
+     else
+        LIBOPTS_LDADD='$(top_builddir)/]AO_Libopts_Dir[/libopts.la'
+        LIBOPTS_CFLAGS='-I$(top_srcdir)/]AO_Libopts_Dir['
+        NEED_LIBOPTS_DIR=true
+     fi
+  fi # end of if test -z "${NEED_LIBOPTS_DIR}"]
 
 
   AM_CONDITIONAL([NEED_LIBOPTS], [test -n "${NEED_LIBOPTS_DIR}"])
   AM_CONDITIONAL([NEED_LIBOPTS], [test -n "${NEED_LIBOPTS_DIR}"])
   AC_SUBST(LIBOPTS_LDADD)
   AC_SUBST(LIBOPTS_LDADD)
   AC_SUBST(LIBOPTS_CFLAGS)
   AC_SUBST(LIBOPTS_CFLAGS)
-  AC_CONFIG_FILES([libopts/Makefile])
-]) # end of AC_DEFUN of LIBOPTS_CHECK
+  AC_SUBST(LIBOPTS_DIR, AO_Libopts_Dir)
+  AC_CONFIG_FILES(AO_Libopts_Dir/Makefile)
+  m4_popdef([AO_Libopts_Dir])
+
+  [if test -n "${NEED_LIBOPTS_DIR}" ; then]
+    INVOKE_LIBOPTS_MACROS
+  else
+    INVOKE_LIBOPTS_MACROS_FIRST
+  [fi
+# end of AC_DEFUN of LIBOPTS_CHECK]
+])

+ 39 - 0
libopts/m4/liboptschk.m4

@@ -0,0 +1,39 @@
+# liboptschk.m4 serial 1 (autogen - 5.7.3)
+dnl Copyright (C) 2005 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.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+AC_DEFUN([ag_FIND_LIBOPTS],
+    [if test "X${ac_cv_header_autoopts_options_h}" == Xno
+    then
+      :
+    else
+      f=`autoopts-config cflags` 2>/dev/null
+      test X"${f}" = X && f=`libopts-config cflags` 2>/dev/null
+      if test X"${f}" = X
+      then
+        :
+      else
+        AC_DEFINE([HAVE_LIBOPTS],[1],[define if we can find libopts])
+        CFLAGS="${CFLAGS} ${f}"
+        f=`autoopts-config ldflags` 2>/dev/null
+        test X"${f}" = X && f=`libopts-config ldflags` 2>/dev/null
+        LIBS="${LIBS} ${f}"
+      fi
+    fi])

+ 6 - 6
libopts/makeshell.c

@@ -1,14 +1,14 @@
 
 
 /*
 /*
- *  $Id: makeshell.c,v 4.5 2005/03/13 19:51:58 bkorb Exp $
- * Time-stamp:      "2005-02-20 14:06:03 bkorb"
+ *  $Id: makeshell.c,v 4.8 2006/03/25 19:24:56 bkorb Exp $
+ * Time-stamp:      "2005-10-29 13:23:33 bkorb"
  *
  *
  *  This module will interpret the options set in the tOptions
  *  This module will interpret the options set in the tOptions
  *  structure and create a Bourne shell script capable of parsing them.
  *  structure and create a Bourne shell script capable of parsing them.
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -23,8 +23,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -695,7 +695,7 @@ emitSetup( tOptions* pOpts )
          */
          */
         case OPARG_TYPE_NUMERIC:
         case OPARG_TYPE_NUMERIC:
         case OPARG_TYPE_MEMBERSHIP:
         case OPARG_TYPE_MEMBERSHIP:
-            snprintf( zVal, sizeof( zVal ), "%ld", (tUL)pOptDesc->pzLastArg );
+            snprintf( zVal, sizeof( zVal ), "%ld", (tAoUL)pOptDesc->pzLastArg );
             pzDefault = zVal;
             pzDefault = zVal;
             break;
             break;
 
 

+ 5 - 7
libopts/nested.c

@@ -1,13 +1,13 @@
 
 
 /*
 /*
- *  $Id: nested.c,v 4.1 2005/03/13 19:54:57 bkorb Exp $
- *  Time-stamp:      "2005-03-06 12:11:57 bkorb"
+ *  $Id: nested.c,v 4.4 2006/03/25 19:24:56 bkorb Exp $
+ *  Time-stamp:      "2005-07-27 10:10:28 bkorb"
  *
  *
  *   Automated Options Nested Values module.
  *   Automated Options Nested Values module.
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -22,8 +22,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -329,7 +329,6 @@ scanNameEntry( const char* pzName, tOptionValue* pRes, tOptionLoadMode mode )
         /* FALLTHROUGH */
         /* FALLTHROUGH */
 
 
     case NUL:
     case NUL:
-    no_value:
         addStringValue( &(pRes->v.nestVal), pzName, nameLen, NULL, 0 );
         addStringValue( &(pRes->v.nestVal), pzName, nameLen, NULL, 0 );
         break;
         break;
 
 
@@ -561,7 +560,6 @@ sortNestedList( tArgList* pAL )
 {
 {
     int ix;
     int ix;
     int lm = pAL->useCt;
     int lm = pAL->useCt;
-    void* ptr;
 
 
     /*
     /*
      *  This loop iterates "useCt" - 1 times.
      *  This loop iterates "useCt" - 1 times.

+ 4 - 4
libopts/numeric.c

@@ -1,11 +1,11 @@
 
 
 /*
 /*
- *  $Id: numeric.c,v 4.4 2005/03/13 19:51:58 bkorb Exp $
+ *  $Id: numeric.c,v 4.6 2006/03/25 19:24:56 bkorb Exp $
  *  Time-stamp:      "2005-02-14 08:22:56 bkorb"
  *  Time-stamp:      "2005-02-14 08:22:56 bkorb"
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -20,8 +20,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.

+ 9 - 9
libopts/pgusage.c

@@ -1,7 +1,7 @@
 
 
 /*
 /*
- *  $Id: pgusage.c,v 4.4 2005/03/13 19:51:59 bkorb Exp $
- * Time-stamp:      "2005-02-14 08:22:01 bkorb"
+ *  $Id: pgusage.c,v 4.7 2006/03/25 19:24:56 bkorb Exp $
+ * Time-stamp:      "2005-10-29 13:23:12 bkorb"
  *
  *
  *   Automated Options Paged Usage module.
  *   Automated Options Paged Usage module.
  *
  *
@@ -10,7 +10,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -25,8 +25,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -81,9 +81,9 @@ optionPagedUsage( tOptions* pOptions, tOptDesc* pOD )
     {
     {
         my_pid  = getpid();
         my_pid  = getpid();
 #ifdef HAVE_SNPRINTF
 #ifdef HAVE_SNPRINTF
-        snprintf( zPageUsage, sizeof(zPageUsage), "/tmp/use.%lu", (tUL)my_pid );
+        snprintf(zPageUsage, sizeof(zPageUsage), "/tmp/use.%lu", (tAoUL)my_pid);
 #else
 #else
-        sprintf( zPageUsage, "/tmp/use.%lu", (tUL)my_pid );
+        sprintf( zPageUsage, "/tmp/use.%lu", (tAoUL)my_pid );
 #endif
 #endif
         unlink( zPageUsage );
         unlink( zPageUsage );
 
 
@@ -126,9 +126,9 @@ optionPagedUsage( tOptions* pOptions, tOptDesc* pOD )
          *  Page the file and remove it when done.
          *  Page the file and remove it when done.
          */
          */
 #ifdef HAVE_SNPRINTF
 #ifdef HAVE_SNPRINTF
-        snprintf( zPageUsage, sizeof(zPageUsage), zPage, pzPager, (tUL)my_pid );
+        snprintf(zPageUsage, sizeof(zPageUsage), zPage, pzPager, (tAoUL)my_pid);
 #else
 #else
-        sprintf( zPageUsage, zPage, pzPager, (tUL)my_pid );
+        sprintf( zPageUsage, zPage, pzPager, (tAoUL)my_pid );
 #endif
 #endif
         fclose( stderr );
         fclose( stderr );
         dup2( STDOUT_FILENO, STDERR_FILENO );
         dup2( STDOUT_FILENO, STDERR_FILENO );

+ 3 - 39
libopts/proto.h

@@ -1,10 +1,10 @@
 /* -*- buffer-read-only: t -*- vi: set ro:
 /* -*- buffer-read-only: t -*- vi: set ro:
  *
  *
  * Prototypes for autoopts
  * Prototypes for autoopts
- * Generated Sun Apr 17 11:55:34 PDT 2005
+ * Generated Sun Apr  9 11:50:00 PDT 2006
  */
  */
 #ifndef AUTOOPTS_PROTO_H_GUARD
 #ifndef AUTOOPTS_PROTO_H_GUARD
-#define AUTOOPTS_PROTO_H_GUARD
+#define AUTOOPTS_PROTO_H_GUARD 1
 #ifndef LOCAL
 #ifndef LOCAL
 #  define LOCAL extern
 #  define LOCAL extern
 #  define REDEF_LOCAL 1
 #  define REDEF_LOCAL 1
@@ -21,7 +21,7 @@ LOCAL tSuccess
 longOptionFind( tOptions* pOpts, char* pzOptName, tOptState* pOptState );
 longOptionFind( tOptions* pOpts, char* pzOptName, tOptState* pOptState );
 
 
 LOCAL tSuccess
 LOCAL tSuccess
-shortOptionFind( tOptions* pOpts, tUC optValue, tOptState* pOptState );
+shortOptionFind( tOptions* pOpts, tAoUC optValue, tOptState* pOptState );
 
 
 LOCAL tSuccess
 LOCAL tSuccess
 doImmediateOpts( tOptions* pOpts );
 doImmediateOpts( tOptions* pOpts );
@@ -46,12 +46,6 @@ LOCAL tSuccess
 validateOptionsStruct( tOptions* pOpts, const char* pzProgram );
 validateOptionsStruct( tOptions* pOpts, const char* pzProgram );
 
 
 /*
 /*
- *  Extracted from cook.c
- */
-/*
- *  Extracted from enumeration.c
- */
-/*
  *  Extracted from environment.c
  *  Extracted from environment.c
  */
  */
 LOCAL void
 LOCAL void
@@ -75,18 +69,6 @@ loadOptionLine(
     tOptionLoadMode   load_mode );
     tOptionLoadMode   load_mode );
 
 
 /*
 /*
- *  Extracted from makeshell.c
- */
-/*
- *  Extracted from nested.c
- */
-/*
- *  Extracted from putshell.c
- */
-/*
- *  Extracted from save.c
- */
-/*
  *  Extracted from sort.c
  *  Extracted from sort.c
  */
  */
 LOCAL void
 LOCAL void
@@ -98,24 +80,6 @@ optionSort( tOptions* pOpts );
 LOCAL void
 LOCAL void
 addArgListEntry( void** ppAL, void* entry );
 addArgListEntry( void** ppAL, void* entry );
 
 
-/*
- *  Extracted from text_mmap.c
- */
-LOCAL void*
-text_mmap( const char* pzFile, int prot, int flags, tmap_info_t* pMI );
-
-LOCAL int
-text_munmap( tmap_info_t* pMI );
-
-/*
- *  Extracted from tokenize.c
- */
-/*
- *  Extracted from usage.c
- */
-/*
- *  Extracted from version.c
- */
 #ifdef REDEF_LOCAL
 #ifdef REDEF_LOCAL
 #  undef LOCAL
 #  undef LOCAL
 #  define LOCAL
 #  define LOCAL

+ 7 - 7
libopts/putshell.c

@@ -1,7 +1,7 @@
 
 
 /*
 /*
- *  $Id: putshell.c,v 4.5 2005/03/13 19:51:59 bkorb Exp $
- * Time-stamp:      "2005-02-14 14:55:01 bkorb"
+ *  $Id: putshell.c,v 4.9 2006/03/25 19:24:56 bkorb Exp $
+ * Time-stamp:      "2005-12-13 10:28:47 bkorb"
  *
  *
  *  This module will interpret the options set in the tOptions
  *  This module will interpret the options set in the tOptions
  *  structure and print them to standard out in a fashion that
  *  structure and print them to standard out in a fashion that
@@ -9,7 +9,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -24,8 +24,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.
@@ -65,7 +65,7 @@ static void
 putQuotedStr( tCC* pzStr )
 putQuotedStr( tCC* pzStr )
 {
 {
     /*
     /*
-     *  Handle empty strings to make the rese of the logic simpler.
+     *  Handle empty strings to make the rest of the logic simpler.
      */
      */
     if ((pzStr == NULL) || (*pzStr == NUL)) {
     if ((pzStr == NULL) || (*pzStr == NUL)) {
         fputs( "''", stdout );
         fputs( "''", stdout );
@@ -200,7 +200,7 @@ optionPutShell( tOptions* pOpts )
                     else if (ch == NUL)      { pz--; goto name_done; }
                     else if (ch == NUL)      { pz--; goto name_done; }
                     else fputc( '_', stdout );
                     else fputc( '_', stdout );
                 } name_done:;
                 } name_done:;
-                printf( "=%1$d # 0x%1$X\n", val );
+                printf( "=%1$ld # 0x%1$lX\n", val );
                 val <<= 1;
                 val <<= 1;
             }
             }
             free( (void*)(pOD->pzLastArg) );
             free( (void*)(pOD->pzLastArg) );

+ 4 - 4
libopts/restore.c

@@ -1,6 +1,6 @@
 
 
 /*
 /*
- *  restore.c  $Id: restore.c,v 4.4 2005/03/13 19:51:59 bkorb Exp $
+ *  restore.c  $Id: restore.c,v 4.6 2006/03/25 19:24:56 bkorb Exp $
  * Time-stamp:      "2005-02-23 15:10:20 bkorb"
  * Time-stamp:      "2005-02-23 15:10:20 bkorb"
  *
  *
  *  This module's routines will save the current option state to memory
  *  This module's routines will save the current option state to memory
@@ -9,7 +9,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -24,8 +24,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.

+ 4 - 4
libopts/save.c

@@ -1,6 +1,6 @@
 
 
 /*
 /*
- *  save.c  $Id: save.c,v 4.10 2005/03/13 19:51:59 bkorb Exp $
+ *  save.c  $Id: save.c,v 4.12 2006/03/25 19:24:56 bkorb Exp $
  * Time-stamp:      "2005-02-20 13:49:46 bkorb"
  * Time-stamp:      "2005-02-20 13:49:46 bkorb"
  *
  *
  *  This module's routines will take the currently set options and
  *  This module's routines will take the currently set options and
@@ -9,7 +9,7 @@
  */
  */
 
 
 /*
 /*
- *  Automated Options copyright 1992-2005 Bruce Korb
+ *  Automated Options copyright 1992-2006 Bruce Korb
  *
  *
  *  Automated Options is free software.
  *  Automated Options is free software.
  *  You may redistribute it and/or modify it under the terms of the
  *  You may redistribute it and/or modify it under the terms of the
@@ -24,8 +24,8 @@
  *  You should have received a copy of the GNU General Public License
  *  You should have received a copy of the GNU General Public License
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  along with Automated Options.  See the file "COPYING".  If not,
  *  write to:  The Free Software Foundation, Inc.,
  *  write to:  The Free Software Foundation, Inc.,
- *             59 Temple Place - Suite 330,
- *             Boston,  MA  02111-1307, USA.
+ *             51 Franklin Street, Fifth Floor,
+ *             Boston, MA  02110-1301, USA.
  *
  *
  * As a special exception, Bruce Korb gives permission for additional
  * As a special exception, Bruce Korb gives permission for additional
  * uses of the text contained in his release of AutoOpts.
  * uses of the text contained in his release of AutoOpts.

+ 0 - 0
libopts/sort.c


Some files were not shown because too many files changed in this diff