Browse Source

Import upstream version 2.99+3.0.rc1

Aaron Turner 16 years ago
parent
commit
99c4958664
100 changed files with 11035 additions and 32372 deletions
  1. 1 4
      Makefile.am
  2. 78 83
      Makefile.in
  3. 2 2
      README
  4. 117 100
      aclocal.m4
  5. 10 0
      autogen.sh
  6. 10088 9156
      configure
  7. 347 231
      configure.in
  8. 59 2
      docs/CHANGELOG
  9. 5 2
      docs/CREDIT
  10. 0 1302
      docs/FAQ.lyx
  11. BIN
      docs/FAQ.pdf
  12. 19 98
      docs/HACKING
  13. 3 45
      docs/INSTALL
  14. 2 1
      docs/LICENSE
  15. 23 79
      docs/Makefile.am
  16. 74 137
      docs/Makefile.in
  17. 11 23
      docs/TODO
  18. 0 92
      docs/flowheader.fig
  19. 0 1125
      docs/flowreplay.lyx
  20. BIN
      docs/flowreplay.pdf
  21. 0 2604
      docs/manual.lyx
  22. 0 1592
      docs/manual.pdf
  23. 0 690
      docs/router-mode1.fig
  24. 0 690
      docs/router-mode2.fig
  25. 0 690
      docs/router-mode3.fig
  26. 0 33
      docs/web/FAQ/FAQ.css
  27. 0 190
      docs/web/FAQ/FAQ.html
  28. 0 9
      docs/web/FAQ/WARNINGS
  29. BIN
      docs/web/FAQ/contents.png
  30. 0 190
      docs/web/FAQ/index.html
  31. 0 13
      docs/web/FAQ/labels.pl
  32. BIN
      docs/web/FAQ/next.png
  33. 0 187
      docs/web/FAQ/node1.html
  34. 0 364
      docs/web/FAQ/node2.html
  35. 0 215
      docs/web/FAQ/node3.html
  36. 0 213
      docs/web/FAQ/node4.html
  37. 0 222
      docs/web/FAQ/node5.html
  38. 0 233
      docs/web/FAQ/node6.html
  39. 0 186
      docs/web/FAQ/node7.html
  40. 0 177
      docs/web/FAQ/node8.html
  41. 0 169
      docs/web/FAQ/node9.html
  42. BIN
      docs/web/FAQ/nx_grp_g.png
  43. BIN
      docs/web/FAQ/prev.png
  44. BIN
      docs/web/FAQ/prev_g.png
  45. BIN
      docs/web/FAQ/up.png
  46. BIN
      docs/web/FAQ/up_g.png
  47. 0 6
      docs/web/flowreplay/WARNINGS
  48. 0 172
      docs/web/flowreplay/flowreplay.css
  49. 0 115
      docs/web/flowreplay/flowreplay.html
  50. 0 5
      docs/web/flowreplay/images.aux
  51. 0 240
      docs/web/flowreplay/images.log
  52. 0 12
      docs/web/flowreplay/images.pl
  53. 0 193
      docs/web/flowreplay/images.tex
  54. BIN
      docs/web/flowreplay/img1.png
  55. 0 115
      docs/web/flowreplay/index.html
  56. 0 13
      docs/web/flowreplay/labels.pl
  57. BIN
      docs/web/flowreplay/next.png
  58. 0 87
      docs/web/flowreplay/node1.html
  59. 0 158
      docs/web/flowreplay/node2.html
  60. 0 196
      docs/web/flowreplay/node3.html
  61. 0 282
      docs/web/flowreplay/node4.html
  62. 0 132
      docs/web/flowreplay/node5.html
  63. 0 219
      docs/web/flowreplay/node6.html
  64. BIN
      docs/web/flowreplay/nx_grp_g.png
  65. BIN
      docs/web/flowreplay/prev.png
  66. BIN
      docs/web/flowreplay/prev_g.png
  67. BIN
      docs/web/flowreplay/up.png
  68. BIN
      docs/web/flowreplay/up_g.png
  69. 0 295
      docs/web/index.html
  70. 0 172
      docs/web/man/flowreplay.html
  71. 0 375
      docs/web/man/tcpprep.html
  72. 0 244
      docs/web/man/tcpreplay.html
  73. 0 387
      docs/web/man/tcprewrite.html
  74. 0 10
      docs/web/manual/WARNINGS
  75. 0 5
      docs/web/manual/images.aux
  76. 0 201
      docs/web/manual/images.log
  77. 0 12
      docs/web/manual/images.pl
  78. 0 177
      docs/web/manual/images.tex
  79. BIN
      docs/web/manual/img1.png
  80. 0 2066
      docs/web/manual/index.html
  81. 0 13
      docs/web/manual/labels.pl
  82. 0 35
      docs/web/manual/manual.css
  83. 0 2066
      docs/web/manual/manual.html
  84. BIN
      docs/web/manual/next.png
  85. 0 174
      docs/web/manual/node1.html
  86. BIN
      docs/web/manual/nx_grp_g.png
  87. BIN
      docs/web/manual/prev.png
  88. BIN
      docs/web/manual/prev_g.png
  89. BIN
      docs/web/manual/up.png
  90. BIN
      docs/web/manual/up_g.png
  91. 0 30
      docs/web/tcpreplay-2-faq.css
  92. 0 2346
      docs/web/tcpreplay-2-faq.html
  93. 0 480
      docs/web/web.css
  94. 2 2
      doxygen.cfg.in
  95. 63 69
      lib/Makefile.in
  96. 1 1
      libopts/COPYING.lgpl
  97. 0 0
      libopts/MakeDefs.inc
  98. 23 19
      libopts/Makefile.am
  99. 107 99
      libopts/Makefile.in
  100. 0 0
      libopts/autoopts.c

+ 1 - 4
Makefile.am

@@ -31,9 +31,6 @@ clean-docs:
 postweb: manpages doxygen
 	cd $(DOCS_DIR) && make postweb
 
-postwebsf: manpages doxygen
-	cd $(DOCS_DIR) && make postwebsf
-
 manpages: man2html
 	cd src && make manpages
 
@@ -68,4 +65,4 @@ DISTCLEANFILES = .tm_project.cache stamp-h1 *.tar.*
 
 MAINTAINERCLEANFILES = Makefile.in configure *.bak
 
-EXTRA_DIST = doxygen.cfg.in
+EXTRA_DIST = doxygen.cfg.in autogen.sh

+ 78 - 83
Makefile.in

@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,15 +13,11 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -36,19 +32,19 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+subdir = .
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/doxygen.cfg.in \
 	$(srcdir)/tcpreplay.spec.in $(top_srcdir)/configure \
 	config/compile config/config.guess config/config.sub \
 	config/depcomp config/install-sh config/ltmain.sh \
 	config/missing config/mkinstalldirs
-subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
+ configure.lineno config.status.lineno
 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/src/config.h
 CONFIG_CLEAN_FILES = doxygen.cfg tcpreplay.spec
@@ -56,10 +52,13 @@ SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
-	install-exec-recursive install-info-recursive \
-	install-recursive installcheck-recursive installdirs-recursive \
-	pdf-recursive ps-recursive uninstall-info-recursive \
-	uninstall-recursive
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -74,8 +73,6 @@ GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
@@ -95,28 +92,20 @@ CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
-DVIPDFM = @DVIPDFM@
-DVIPS = @DVIPS@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
-ENABLE_FLOWREPLAY_FALSE = @ENABLE_FLOWREPLAY_FALSE@
-ENABLE_FLOWREPLAY_TRUE = @ENABLE_FLOWREPLAY_TRUE@
-ENABLE_TCPBRIDGE_FALSE = @ENABLE_TCPBRIDGE_FALSE@
-ENABLE_TCPBRIDGE_TRUE = @ENABLE_TCPBRIDGE_TRUE@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
-FIG2DEV = @FIG2DEV@
-HAVE_DOCTOOLS_FALSE = @HAVE_DOCTOOLS_FALSE@
-HAVE_DOCTOOLS_TRUE = @HAVE_DOCTOOLS_TRUE@
+GREP = @GREP@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LATEX2HTML = @LATEX2HTML@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
@@ -132,13 +121,9 @@ LN_S = @LN_S@
 LPCAPINC = @LPCAPINC@
 LPCAPLIB = @LPCAPLIB@
 LTLIBOBJS = @LTLIBOBJS@
-LYX = @LYX@
 MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
-NEED_LIBOPTS_FALSE = @NEED_LIBOPTS_FALSE@
-NEED_LIBOPTS_TRUE = @NEED_LIBOPTS_TRUE@
+MKDIR_P = @MKDIR_P@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -153,22 +138,16 @@ RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-SYSTEM_STRLCPY_FALSE = @SYSTEM_STRLCPY_FALSE@
-SYSTEM_STRLCPY_TRUE = @SYSTEM_STRLCPY_TRUE@
 TCPREPLAY_RELEASE = @TCPREPLAY_RELEASE@
 TCPREPLAY_VERSION = @TCPREPLAY_VERSION@
-TEXI2DVI = @TEXI2DVI@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -180,19 +159,25 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
+datarootdir = @datarootdir@
 debug_flag = @debug_flag@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
@@ -200,10 +185,13 @@ nic1 = @nic1@
 nic2 = @nic2@
 oldincludedir = @oldincludedir@
 pcncfg = @pcncfg@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target = @target@
 target_alias = @target_alias@
@@ -211,6 +199,8 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 td = @td@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
 
 # $Id$
 AUTOMAKE_OPTIONS = foreign
@@ -222,7 +212,7 @@ TEST_DIR = $(top_builddir)/test
 MOSTLYCLEANFILES = tcpreplay.spec *~
 DISTCLEANFILES = .tm_project.cache stamp-h1 *.tar.*
 MAINTAINERCLEANFILES = Makefile.in configure *.bak
-EXTRA_DIST = doxygen.cfg.in
+EXTRA_DIST = doxygen.cfg.in autogen.sh
 all: all-recursive
 
 .SUFFIXES:
@@ -272,7 +262,6 @@ clean-libtool:
 
 distclean-libtool:
 	-rm -f libtool
-uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -305,8 +294,7 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
+$(RECURSIVE_CLEAN_TARGETS):
 	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
@@ -408,24 +396,22 @@ distclean-tags:
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
-	mkdir $(distdir)
-	$(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/src $(distdir)/test
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-	list='$(DISTFILES)'; for file in $$list; do \
-	  case $$file in \
-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-	  esac; \
+	test -d $(distdir) || mkdir $(distdir)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
-	  else \
-	    dir=''; \
-	  fi; \
 	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
@@ -439,7 +425,7 @@ distdir: $(DISTFILES)
 	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
-	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
 	    distdir=`$(am__cd) $(distdir) && pwd`; \
 	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
@@ -447,6 +433,8 @@ distdir: $(DISTFILES)
 	      $(MAKE) $(AM_MAKEFLAGS) \
 	        top_distdir="$$top_distdir" \
 	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -457,7 +445,7 @@ distdir: $(DISTFILES)
 	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
 	|| chmod -R a+r $(distdir)
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
@@ -532,7 +520,7 @@ distcheck: dist
 	$(am__remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
 	@cd $(distuninstallcheck_dir) \
 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@@ -605,12 +593,20 @@ info-am:
 
 install-data-am:
 
+install-dvi: install-dvi-recursive
+
 install-exec-am:
 
+install-html: install-html-recursive
+
 install-info: install-info-recursive
 
 install-man:
 
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -631,24 +627,26 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-info-am
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
-	check-am clean clean-generic clean-libtool clean-recursive \
-	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
-	dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
-	distclean-generic distclean-libtool distclean-local \
-	distclean-recursive distclean-tags distcleancheck distdir \
-	distuninstallcheck dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-exec \
-	install-exec-am install-info install-info-am install-man \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	maintainer-clean-recursive mostlyclean mostlyclean-generic \
-	mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am uninstall-info-am
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am am--refresh check check-am clean clean-generic \
+	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
+	dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am
 
 .PHONY: manpages docs test man2html
 
@@ -670,9 +668,6 @@ clean-docs:
 postweb: manpages doxygen
 	cd $(DOCS_DIR) && make postweb
 
-postwebsf: manpages doxygen
-	cd $(DOCS_DIR) && make postwebsf
-
 manpages: man2html
 	cd src && make manpages
 

+ 2 - 2
README

@@ -1,4 +1,4 @@
-$Id: README 1544 2006-07-29 06:21:36Z aturner $
+$Id: README 1796 2007-04-11 04:55:14Z aturner $
 [Please note that licensing, compiling, usage and other documentation can be 
 found in the docs subdirectory.]
 
@@ -45,4 +45,4 @@ Aaron (tcpreplay author)
 
 PS:
 This product includes software developed by the University of
-California, Berkeley and its contributors.
+California, Berkeley, Lawrence Berkeley Laboratory and its contributors.

+ 117 - 100
aclocal.m4

@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.10 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# 2005, 2006  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,6 +11,11 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_if(m4_PACKAGE_VERSION, [2.61],,
+[m4_fatal([this file was generated for autoconf 2.61.
+You have another version of autoconf.  If you want to use that,
+you should regenerate the build system entirely.], [63])])
+
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 
 # serial 48 AC_PROG_LIBTOOL
@@ -6388,7 +6393,7 @@ SED=$lt_cv_path_SED
 AC_MSG_RESULT([$SED])
 ])
 
-# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -6398,14 +6403,29 @@ AC_MSG_RESULT([$SED])
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.10'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.10], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
 
 # AM_SET_CURRENT_AUTOMAKE_VERSION
 # -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-	 [AM_AUTOMAKE_VERSION([1.9.6])])
+[AM_AUTOMAKE_VERSION([1.10])dnl
+_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
@@ -6462,14 +6482,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
+# serial 8
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -6478,8 +6498,10 @@ AC_DEFUN([AM_CONDITIONAL],
 [AC_PREREQ(2.52)dnl
  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
 	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
@@ -6493,15 +6515,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# serial 9
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -6529,6 +6550,7 @@ AC_REQUIRE([AM_DEP_TRACK])dnl
 ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
        [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
                    [depcc="$$1"   am_compiler_list=])
 
@@ -6594,6 +6616,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
          >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
@@ -6646,7 +6669,8 @@ if test "x$enable_dependency_tracking" != xno; then
   AMDEPBACKSLASH='\'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -6671,8 +6695,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
   # some people rename them; so instead we look at the file content.
   # Grep'ing the first line is not enough: some people post-process
   # each Makefile.in and add a new line on top of each file to say so.
-  # So let's grep whole file.
-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+  # Grep'ing the whole file is not good either: AIX grep has a line
+  # limit of 2048, but all sed's we know have understand at least 4000.
+  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
     dirpart=`AS_DIRNAME("$mf")`
   else
     continue
@@ -6759,8 +6784,8 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -6783,16 +6808,20 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
+[AC_PREREQ([2.60])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
 AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
-   test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
 fi
 
 # test whether we have cygpath
@@ -6812,6 +6841,9 @@ m4_ifval([$2],
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
@@ -6847,6 +6879,10 @@ AC_PROVIDE_IFELSE([AC_PROG_CXX],
                   [_AM_DEPENDENCIES(CXX)],
                   [define([AC_PROG_CXX],
                           defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+                  [_AM_DEPENDENCIES(OBJC)],
+                  [define([AC_PROG_OBJC],
+                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
 ])
 
@@ -6882,7 +6918,7 @@ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
 AC_SUBST(install_sh)])
 
 # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
@@ -6989,14 +7025,14 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -7012,6 +7048,7 @@ AC_SUBST($1)])
 # If it does, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
 test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
@@ -7022,7 +7059,7 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -7030,60 +7067,23 @@ fi
 
 # AM_PROG_MKDIR_P
 # ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake.  There are at least two reasons why we must not
-# use `-m 0755':
-#   - it causes special bits like SGID to be ignored,
-#   - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out.  Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
+# Check for `mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
-fi
-AC_SUBST([mkdir_p])])
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
@@ -7195,9 +7195,21 @@ dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
 # Check how to create a tarball.                            -*- Autoconf -*-
 
 # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
@@ -7298,7 +7310,7 @@ dnl  -*- buffer-read-only: t -*- vi: set ro:
 dnl 
 dnl DO NOT EDIT THIS FILE   (libopts.m4)
 dnl 
-dnl It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:18 AM PDT
+dnl It has been AutoGen-ed  Saturday February 17, 2007 at 12:49:37 PM PST
 dnl From the definitions    libopts.def
 dnl and the template file   conftest.tpl
 dnl
@@ -7320,7 +7332,8 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
   # =================
   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)
+    sys/socket.h sys/stropts.h sys/time.h sys/un.h sys/wait.h unistd.h    \
+    utime.h )
   
   # --------------------------------------------
   # Verify certain entries from AC_CHECK_HEADERS
@@ -7362,7 +7375,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
   # ========================
   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])
+     intptr_t, uint_t])
   
   # ====================
   # uintptr type & sizes
@@ -7380,7 +7393,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
   # ----------------------------------------------------------------------
   AC_CHECK_LIB(gen, pathfind)
   AC_FUNC_VPRINTF
-  AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup])
+  AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup strchr strrchr])
 [  INVOKE_LIBOPTS_MACROS_FIRST_done=yes
 fi]])
 
@@ -7476,7 +7489,7 @@ AC_DEFUN([LIBOPTS_WITHLIB_REGEX],[
 @%:@include <sys/types.h>
 @%:@include REGEX_HEADER
 static regex_t re;
-void comp_re( const char* pzPat ) {
+void comp_re( char const* pzPat ) {
   int res = regcomp( &re, pzPat, REG_EXTENDED|REG_ICASE|REG_NEWLINE );
   if (res == 0) return;
   exit( res ); }
@@ -7496,20 +7509,13 @@ int main() {
   ]) # end of AC_CACHE_VAL for libopts_cv_with_libregex
   AC_MSG_RESULT([${libopts_cv_with_libregex}])
 
-  if test "X${libopts_cv_with_libregex}" = Xno
+  if test "X${libopts_cv_with_libregex}" != Xno
   then
+    AC_DEFINE([WITH_LIBREGEX],[1],
+        [Define this if a working libregex can be found])
+  else
     CPPFLAGS="${libopts_save_CPPFLAGS}"
     LIBS="${libopts_save_LIBS}"
-        	cat >&2 <<'_EOF_'
-I cannot detect POSIX compliant regcomp/regexec routines.
-These are required for AutoGen to work correctly.  If you have
-such a library present on your system, you must specify it by
-setting the LIBS environment variable, e.g., "LIBS='-lregex'".
-If you do not have such a library on your system, then you should
-download and install, for example, the one from:
-    ftp://ftp.gnu.org/gnu/rx/
-_EOF_
-AC_MSG_ERROR([Cannot find working POSIX regex library])
   fi
   
 ]) # end of AC_DEFUN of LIBOPTS_WITHLIB_REGEX
@@ -7542,7 +7548,7 @@ 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\`
+dzero=\`ls -lL /dev/zero | egrep ^c......r\`
 test -z "${dzero}" && exit 1
 echo ${dzero}`
     if test $? -ne 0
@@ -7597,7 +7603,7 @@ AC_DEFUN([LIBOPTS_RUN_STRFTIME],[
 @%:@include <string.h>
 char t_buf@<:@ 64 @:>@;
 int main() {
-  static const char z@<:@@:>@ = "Thursday Aug 28 240";
+  static char const z@<:@@:>@ = "Thursday Aug 28 240";
   struct tm tm;
   tm.tm_sec   = 36;  /* seconds after the minute @<:@0, 61@:>@  */
   tm.tm_min   = 44;  /* minutes after the hour @<:@0, 59@:>@ */
@@ -7702,6 +7708,9 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS],[
 
 dnl @synopsis  LIBOPTS_CHECK
 dnl
+dnl Time-stamp:        "2006-09-23 19:36:24 bkorb"
+dnl Last Committed:    $Date: 2006/09/24 02:59:00 $
+dnl
 dnl If autoopts-config works, add the linking information to LIBS.
 dnl Otherwise, add ``libopts-${ao_rev}'' to SUBDIRS and run all
 dnl the config tests that the library needs.  Invoke the
@@ -7724,6 +7733,11 @@ AC_DEFUN([LIBOPTS_CHECK],[
        NEED_LIBOPTS_DIR=true
     fi])
 
+  AC_ARG_ENABLE([libopts-install],
+    AC_HELP_STRING([--disable-libopts-install],
+       [Do not install libopts with client installation]))
+  AM_CONDITIONAL([INSTALL_LIBOPTS],[test "X${enable_libopts_install}" != Xno])
+
   [if test -z "${NEED_LIBOPTS_DIR}" ; then]
      AC_MSG_CHECKING([whether autoopts-config can be found])
      AC_ARG_WITH([autoopts-config],
@@ -7786,7 +7800,10 @@ 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 Time-stamp:        "2006-09-23 19:42:31 bkorb"
+dnl Last Committed:    $Date: 2006/09/24 02:59:00 $
+
 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

+ 10 - 0
autogen.sh

@@ -0,0 +1,10 @@
+#!/bin/sh
+
+rm -f aclocal.m4 2>/dev/null
+aclocal 
+# aclocal doesn't pick up libopts.m4 so we do it manually
+cat libopts/m4/libopts.m4 libopts/m4/liboptschk.m4  >> aclocal.m4
+autoconf
+automake
+autoconf
+

File diff suppressed because it is too large
+ 10088 - 9156
configure


+ 347 - 231
configure.in

@@ -1,5 +1,5 @@
 
-dnl $Id: configure.in 1578 2006-08-08 04:02:14Z aturner $
+dnl $Id: configure.in 1808 2007-04-15 01:46:13Z aturner $
 
 AC_INIT(tcpreplay)
 AC_CONFIG_SRCDIR(src/tcpreplay.c)
@@ -12,7 +12,7 @@ AC_PROG_LIBTOOL
 dnl Set version info here!
 MAJOR_VERSION=3
 MINOR_VERSION=0
-MICRO_VERSION=beta11
+MICRO_VERSION=RC1
 TCPREPLAY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
 
 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_RELEASE)
 
-CFLAGS="$CFLAGS -Wall -O2 -funroll-loops -std=gnu99" # -std=c99 -Wno-variadic-macros"
+CFLAGS="$CFLAGS -Wall -O2 -funroll-loops -std=gnu99"
 
 dnl Determine OS
 AC_CANONICAL_BUILD
@@ -33,6 +33,15 @@ AC_SUBST(host)
 AC_SUBST(build)
 AC_SUBST(target)
 
+AC_MSG_CHECKING([for cygwin development environment])
+if test `echo $target | grep -c cygwin` -gt 0 ; then
+   AC_DEFINE([HAVE_WIN32], [1], [Windows/Cygwin])
+   AC_MSG_RESULT(yes)
+else
+   AC_MSG_RESULT(no)
+fi
+
+
 AM_INIT_AUTOMAKE(tcpreplay, $TCPREPLAY_VERSION, nodefine)
 
 dnl Checks for programs.
@@ -48,43 +57,6 @@ AC_PROG_AWK
 AC_PROG_MAKE_SET
 AC_EXEEXT
 AC_PATH_PROG(PRINTF, printf)
-AC_PATH_PROG(FIG2DEV, fig2dev)
-
-dnl Look for lyx in the normal locations
-dnl The OS X installer puts Lyx at /Applications/Lyx.app/Contents/MacOS/LyX
-
-AC_ARG_WITH(lyx,
-    AC_HELP_STRING([--with-lyx=FILE], [Path to Lyx binary]),
-    [ AC_MSG_CHECKING(for lyx)
-    if test -x $withval ; then
-          td=$withval
-          AC_MSG_RESULT($td)
-      else
-          AC_MSG_RESULT([Error: $withval does not exist or is not executable])
-      fi ],
-    [ 
-    case $host in
-        powerpc-apple-darwin*)
-        lyx=/Applications/Lyx.app/Contents/MacOS/LyX
-        if test -x $lyx ; then
-            AC_MSG_CHECKING(for lyx)
-            AC_SUBST(LYX, $lyx)
-            AC_MSG_RESULT($lyx) 
-        else
-	    AC_PATH_PROG(LYX, lyx)
-	fi
-        ;;
-
-        *)
-        AC_PATH_PROG(LYX, lyx)
-        ;;
-        esac
-    ])
-
-AC_PATH_PROG(DVIPS, dvips)
-AC_PATH_PROG(TEXI2DVI, texi2dvi)
-AC_PATH_PROG(LATEX2HTML, latex2html)
-AC_PATH_PROG(DVIPDFM, dvipdfm)
 AC_PATH_PROG(AUTOGEN, autogen)
 
 AC_HEADER_STDC
@@ -106,8 +78,57 @@ AC_CHECK_TYPE(u_int16_t, uint16_t)
 AC_CHECK_TYPE(u_int32_t, uint32_t)
 AC_CHECK_TYPE(u_int64_t, uint64_t)
 
+dnl Older versions of GCC don't support these options
+AC_MSG_CHECKING(for $CC -Wextra support)
+OLD_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -Wextra"
+wextra=""
+AC_COMPILE_IFELSE([#include <stdlib.h>
+    int main(int argc, char *argv[]) { return(0); }],
+    [ AC_MSG_RESULT(yes) 
+      wextra="-Wextra" ],
+    [ AC_MSG_RESULT(no) ])
+CFLAGS="$OLD_CFLAGS $wextra"
+
+AC_MSG_CHECKING(for $CC -Wno-variadic-macros support)
+OLD_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -Wno-variadic-macros"
+wno_variadic_macros=""
+AC_COMPILE_IFELSE([#include <stdlib.h>
+    int main(int argc, char *argv[]) { return(0); }],
+    [ AC_MSG_RESULT(yes) 
+      wno_variadic_macros="-Wno-variadic-macros" ],
+    [ AC_MSG_RESULT(no) ])
+CFLAGS="$OLD_CFLAGS $wno_variadic_macros"
+
+AC_MSG_CHECKING(for $CC -Wfatal-errors support)
+OLD_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -Wfatal-errors"
+wfatal_errors=""
+AC_COMPILE_IFELSE([#include <stdlib.h>
+    int main(int argc, char *argv[]) { return(0); }],
+    [ AC_MSG_RESULT(yes) 
+      wfatal_errors="-Wfatal-errors" ],
+    [ AC_MSG_RESULT(no) ])
+CFLAGS="$OLD_CFLAGS $wfatal_errors"
+
+
 dnl Check for other header files
-AC_CHECK_HEADERS([fcntl.h stddef.h sys/socket.h  arpa/inet.h sys/time.h signal.h string.h strings.h sys/types.h sys/select.h netinet/in.h poll.h sys/poll.h unistd.h])
+AC_CHECK_HEADERS([fcntl.h stddef.h sys/socket.h  arpa/inet.h sys/time.h signal.h string.h strings.h sys/types.h sys/select.h netinet/in.h poll.h sys/poll.h unistd.h sys/param.h])
+
+dnl OpenBSD has special requirements
+AC_CHECK_HEADERS([sys/sysctl.h net/route.h], [], [], [
+[#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+]])
+
 
 dnl Checks for libraries.
 AC_CHECK_LIB(socket, socket)
@@ -119,41 +140,32 @@ AC_FUNC_MALLOC
 AC_FUNC_MEMCMP
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([gettimeofday ctime memset regcomp strdup strerror strtol strncpy strtoull poll ntohll mmap snprintf vsnprintf])
+AC_CHECK_MEMBERS([struct timeval.tv_sec])
+
+AC_CHECK_FUNCS([gettimeofday ctime memset regcomp strdup strchr strerror strtol strncpy strtoull poll ntohll mmap snprintf vsnprintf])
 
 dnl Look for strlcpy since some BSD's have it
 AC_CHECK_FUNCS([strlcpy],have_strlcpy=true,have_strlcpy=false)
 AM_CONDITIONAL(SYSTEM_STRLCPY, [test x$have_strlcpy = xtrue])
 
-AC_CHECK_MEMBERS([struct timeval.tv_sec])
-
 AC_C_BIGENDIAN
+AM_CONDITIONAL([WORDS_BIGENDIAN], [ test x$ac_cv_c_bigendian = xyes ])
 
-doctools=no
-if test -n "$FIG2DEV" -a -n "$LYX" -a -n "$DVIPS" -a -n "$TEXI2DVI" \
-	 -a -n "$LATEX2HTML" -a -n "$DVIPDFM" ; then
-    doctools=yes
-fi
-AM_CONDITIONAL(HAVE_DOCTOOLS, test $doctools = yes)
 
 dnl Enable debugging in code/compiler options
 debug=no
 AC_ARG_ENABLE(debug,
     AC_HELP_STRING([--enable-debug], [Enable debugging code and support for the -d option]),
     [ if test x$enableval = xyes; then
-         debug=yes
-		# check for gcc 4.0 flags -Wfatal-errors & -Wno-variadic-macros support
-		CFLAGS="-ggdb -std=gnu99 -Wall -Wextra -Wfatal-errors -Wno-variadic-macros"
-		 AC_COMPILE_IFELSE([#include <stdlib.h>
-			int main(int argc, char *argv[]) { return(0); }], 
-			[CFLAGS="-ggdb -std=gnu99 -Wall -Wextra -Wfatal-errors -Wno-variadic-macros"],
-			[CFLAGS="-ggdb -std=gnu99 -Wall -Wextra"])
+        debug=yes
+	CFLAGS="-ggdb -std=gnu99 -Wall $wextra $wfatal_errors $wno_variadic_macros"
 # We may also want to add:
 #         -Wformat-security -Wswitch-default -Wunused-paramter -Wpadded"
          AC_SUBST(debug_flag)
          AC_DEFINE([DEBUG], [1], [Enable debuging code and support for the -d option]) 
       fi])
 
+
 AC_ARG_ENABLE(pedantic,
     AC_HELP_STRING([--enable-pedantic], [Enable gcc's -pedantic option]),
     [ if test x$enableval = xyes; then
@@ -192,39 +204,37 @@ AC_ARG_ENABLE(64bits,
       fi
     ])
 
-disable_bpf=no
-dnl Turn off *BSD's BPF
-AC_ARG_ENABLE(bpf,
-	AC_HELP_STRING([--disable-bpf], [Disable BPF for sending packets]),
-	[ disable_bpf=yes ])
-	
-disable_pf=no
-dnl Turn off Linux's PF_PACKET
-AC_ARG_ENABLE(pf,
-	AC_HELP_STRING([--disable-pf], [Disable Linux PF_PACKET for sending packets]),
-	[ if test x$enableval = xno ; then
-		disable_pf=yes
-	  fi
-	])
-	
-disable_libnet=no
-dnl Turn of Libnet
-AC_ARG_ENABLE(libnet,
-	AC_HELP_STRING([--disable-libnet], [Disable Libnet for sending packets]),
-	[ if test x$enableval = xno ; then
-		disable_libnet=yes
-	  fi
-	])
-	
-disable_pcap=no
-dnl Turn off pcap for sending
-AC_ARG_ENABLE(pcap,
-	AC_HELP_STRING([--disable-pcap], [Disable Libpcap for sending packets]),
-	[ if test x$enableval = xno ; then
-		disable_pcap=yes
-	  fi
+
+AC_ARG_ENABLE(force-bpf,
+	AC_HELP_STRING([--enable-force-bpf], [Force using BPF for sending packets]),
+	[ AC_DEFINE([FORCE_INJECT_BPF], [1], [Force using BPF for sending packet])])
+
+AC_ARG_ENABLE(force-pf, 
+	AC_HELP_STRING([--enable-force-pf], [Force using Linux's PF_PACKET for sending packets]),
+	[ AC_DEFINE([FORCE_INJECT_PF], [1], [Force using Linux's PF_PACKET for sending packets])])
+
+AC_ARG_ENABLE(force-libnet,
+	AC_HELP_STRING([--enable-force-libnet], [Force using libnet for sending packets]),
+	[ AC_DEFINE([FORCE_INJECT_LIBNET], [1], [Force using libnet for sending packets])])
+		
+AC_ARG_ENABLE(force-inject,
+	AC_HELP_STRING([--enable-force-inject], [Force using libpcap's pcap_inject() for sending packets]),
+	[ AC_DEFINE([FORCE_INJECT_PCAP_INJECT],[1], [Force using libpcap's pcap_inject() for sending packets])])
+
+AC_ARG_ENABLE(force-sendpacket,
+	AC_HELP_STRING([--enable-force-sendpacket], [Force using libpcap's pcap_sendpacket() for sending packets]),
+	[ AC_DEFINE([FORCE_INJECT_PCAP_SENDPACKET], [1], [Force using libpcap's pcap_sendpacket() for sending packets])])
+
+tcpreplay_edit=no
+AC_ARG_ENABLE(tcpreplay-edit,
+	AC_HELP_STRING([--enable-tcpreplay-edit], [Link packet editing code with tcpreplay]),
+	[ AC_DEFINE([TCPREPLAY_EDIT], [1], [Link packet editing code with tcpreplay])
+	tcpreplay_edit=yes
 	])
 
+AM_CONDITIONAL([ENABLE_TCPREPLAY_EDIT], [test x$tcpreplay_edit = xyes])
+
+
 dnl Dynamic link libraries
 dynamic_link=no
 AC_ARG_ENABLE(dynamic-link,
@@ -275,47 +285,42 @@ AC_ARG_ENABLE(flowreplay,
          AC_DEFINE([ENABLE_FLOWREPLAY], [1], [Enable building flowreplay (alpha)]) 
       fi])
 
-AM_CONDITIONAL(ENABLE_FLOWREPLAY, [test x$flowreplay = xyes])
+AM_CONDITIONAL([ENABLE_FLOWREPLAY], [test x$flowreplay = xyes])
 
 dnl ##################################################
 dnl Checks for libnet (shamelessly horked from dsniff)
 dnl ##################################################
 foundnet=no
-if test $disable_libnet = no ; then 
-
-	trynetdir=/usr/local
-	AC_MSG_CHECKING(for libnet)
-	AC_ARG_WITH(libnet,
-	    AC_HELP_STRING([--with-libnet=DIR], [Use libnet in DIR]),
-	    [trynetdir=$withval])
-
-	for testdir in $trynetdir /usr/local /usr ; do
-	    if test -f "${testdir}/include/libnet.h" -a $foundnet = no ; then
-	     LNETINC="${testdir}/include/libnet.h"
-	     LNETINCDIR="$testdir/include"
-	     if test $dynamic_link = yes; then
-	         LNETLIB="-L${testdir}/lib -lnet"
-	     elif test -f "${testdir}/lib64/libnet.a" ; then
-	         LNETLIB="${testdir}/lib64/libnet.a"
-	     else
-	         LNETLIB="${testdir}/lib/libnet.a"
-	     fi
-	     foundnet=$testdir
-	    fi
-	done
-
-	if test $foundnet = no ; then
-	    AC_MSG_RESULT(no)
-	else 
-	    AC_MSG_RESULT($foundnet) 
-		AC_DEFINE([HAVE_LIBNET], [1], [Enable libnet support])
-	fi
+trynetdir=/usr/local
+AC_MSG_CHECKING(for libnet)
+AC_ARG_WITH(libnet,
+    AC_HELP_STRING([--with-libnet=DIR], [Use libnet in DIR]),
+    [trynetdir=$withval])
+
+for testdir in $trynetdir /usr/local /opt/local /usr ; do
+    if test -f "${testdir}/include/libnet.h" -a $foundnet = no ; then
+     LNETINC="${testdir}/include/libnet.h"
+     LNETINCDIR="$testdir/include"
+     if test $dynamic_link = yes; then
+         LNETLIB="-L${testdir}/lib -lnet"
+     elif test -f "${testdir}/lib64/libnet.a" ; then
+         LNETLIB="${testdir}/lib64/libnet.a"
+     else
+         LNETLIB="${testdir}/lib/libnet.a"
+     fi
+     foundnet=$testdir
+    fi
+done
 
-	AC_SUBST(LNETINC)
-	AC_SUBST(LNETLIB)
+if test $foundnet = no ; then
+    AC_MSG_RESULT(no)
+else 
+    AC_MSG_RESULT($foundnet) 
+	AC_DEFINE([HAVE_LIBNET], [1], [Enable libnet support])
 fi
 
-dnl END OF if $disable_libnet = no ; then
+AC_SUBST(LNETINC)
+AC_SUBST(LNETLIB)
 
 if test $foundnet = yes ; then
 	OLDLIBS="$LIBS"
@@ -404,35 +409,45 @@ AC_ARG_WITH(libpcap,
     AC_HELP_STRING([--with-libpcap=DIR], [Use libpcap in DIR]),
     [trypcapdir=$withval])
 
-    for testdir in $trypcapdir /usr/local /usr ; do 
- 
-     if test -f "${testdir}/include/pcap.h" -a $foundpcap = no ; then
-         LPCAPINC="${testdir}/include/pcap.h"
-         LPCAPINCDIR="${testdir}/include"
-         if test $dynamic_link = yes; then
-             LPCAPLIB="-L${testdir}/lib -lpcap"
-         elif test -f "${testdir}/lib64/libpcap.a" ; then
-             LPCAPLIB="${testdir}/lib64/libpcap.a"
-         else
-             LPCAPLIB="${testdir}/lib/libpcap.a"
-         fi
-        foundpcap=$testdir
-     fi
-   done
+	for testdir in $trypcapdir /usr/local /opt/local /usr ; do 
+    	if test -f "${testdir}/include/pcap.h" -a $foundpcap = no ; then
+        	LPCAPINC="${testdir}/include/pcap.h"
+	        LPCAPINCDIR="${testdir}/include"
+	        if test $dynamic_link = yes; then
+				if test -f "${testdir}/lib/libpcap.a" ; then
+		            LPCAPLIB="-L${testdir}/lib -lpcap"
+				elif test -f "${testdir}/lib64/libpcap.a" ; then
+					LPCAPLIB="-L${testdir}/lib64 -lpcap"
+				else
+					AC_ERROR([Unable to find libpcap in ${testdir}])
+				fi
+	        elif test -f "${testdir}/lib64/libpcap.a" ; then
+	            LPCAPLIB="${testdir}/lib64/libpcap.a"
+	        elif test -f "${testdir}/lib/libpcap.a" ; then
+	            LPCAPLIB="${testdir}/lib/libpcap.a"
+	        elif test -f "${testdir}/lib/libwpcap.a" ; then
+	            LPCAPLIB="${testdir}/lib/libwpcap.a"
+				AC_DEFINE([HAVE_WINPCAP], [1], [Do we have WinPcap?])
+		 	else
+				AC_ERROR([Unable to find matching library for header file in ${testdir}])
+			fi
+        	foundpcap=$testdir
+     	fi
+	done
 
-   if test $foundpcap = no ; then
-     AC_MSG_RESULT(no)
-     AC_ERROR(libpcap not found)
-   else
-     AC_MSG_RESULT($foundpcap)
-   fi
+	if test $foundpcap = no ; then
+		AC_MSG_RESULT(no)
+		AC_ERROR(libpcap not found)
+	else
+		AC_MSG_RESULT($foundpcap)
+	fi
 
 AC_SUBST(LPCAPINC)
 AC_SUBST(LPCAPLIB)
 
 dnl Checks to see what version of libpcap we've got
 OLDLIBS="$LIBS"
-OLDCFLAGS="$CFLAGS"
+OLDCFLAGS="$CFLAGS -I$LPCAPINCDIR"
 LIBS="$LPCAPLIB"
 CFLAGS="$CFLAGS -I$LPCAPINCDIR"
 
@@ -443,76 +458,141 @@ dnl this code has been reduced a lot, but probably still could be
 dnl reduced quite a bit more if we chose too
 AC_MSG_CHECKING(for libpcap version)
 
-AC_TRY_RUN([
+AC_RUN_IFELSE(AC_LANG_PROGRAM([[
 #include <string.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include "$LPCAPINC"
-#define PCAP_TEST "0.5"
+#define PCAP_TEST "0.8"
+]], [[
 /* 
  * simple proggy to test the version of libpcap
- * returns zero if version >= 0.5
+ * returns zero if version >= 0.8.0
  * or one otherwise
  */
-extern char pcap_version[];
-int
-main (int argc, char *argv[])
-{
-        if (strncmp(pcap_version, PCAP_TEST, 3) >= 0)
-                exit(0);
-        exit(1);
-}],
-        libpcap_ver=yes
-        AC_MSG_RESULT(>= 0.5),
-        libpcap_ver=no
-        AC_MSG_RESULT(< 0.5),
-        libpcap_ver=no
-		AC_MSG_RESULT(< 0.5)
-        )
-
-
-if test $libpcap_ver = no ; then
-        AC_MSG_ERROR(Libpcap versions < 0.5 are not supported.
-        Please upgrade to version 0.5 or better)
+    if (strncmp(pcap_lib_version(), PCAP_TEST, 3) >= 0)
+            exit(0);
+
+    /* winpcap? */
+    if (strncmp(pcap_lib_version(), "WinPcap", 7) == 0)
+	    exit(0);
+
+    exit(1);
+]]), [
+    libpcap_ver8=yes
+], [
+    libpcap_ver8=no
+])
+
+AC_RUN_IFELSE(AC_LANG_PROGRAM([[
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "$LPCAPINC"
+#define PCAP_TEST "0.7.2"
+extern const char pcap_version[[]]; /* double up since autoconf escapes things */
+]], [[
+/* 
+ * simple proggy to test the version of libpcap
+ * returns zero if version >= 0.7.2
+ * or one otherwise
+ */
+
+    if (strncmp(pcap_version, PCAP_TEST, 5) >= 0)
+            exit(0);
+    
+    exit(1);
+]]), [
+    libpcap_ver7=yes
+], [
+    libpcap_ver7=no
+])
+
+if test $libpcap_ver8 = yes ; then
+    AC_MSG_RESULT(>= 0.8.0)
+elif test $libpcap_ver7 = yes ; then
+    AC_MSG_RESULT(>= 0.7.2)
+else 
+    AC_MSG_ERROR([Libpcap versions < 0.7.2 are not supported
+    Please upgrade to version 0.7.2 or better])
 fi
 
 dnl Check to see if we've got pcap_datalink_val_to_name()
 AC_MSG_CHECKING(for pcap_datalink_val_to_description)
-AC_TRY_RUN([
+AC_LINK_IFELSE(AC_LANG_PROGRAM([[
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include "$LPCAPINC"
-
-int 
-main(int argc, char *argv[]) {
-    pcap_datalink_val_to_description(1);
-    exit(0);
-}],
-    have_dlt_to_desc=yes 
-    AC_MSG_RESULT(yes), 
-    have_dlt_to_desc=no
-    AC_MSG_RESULT(no),
+]],[[
+    if (strcmp(pcap_datalink_val_to_description(1), "Ethernet (10Mb)") == 0)
+        exit(0);
+    exit(1);
+]]),[
+    have_dlt_to_desc=yes
+    AC_MSG_RESULT(yes)
+], [
     have_dlt_to_desc=no
-	AC_MSG_RESULT(no)
-    )
+    AC_MSG_RESULT(no)
+])
 
 if test $have_dlt_to_desc = yes ; then
     AC_DEFINE([HAVE_DLT_VAL_TO_DESC], [1], 
               [Does libpcap have dlt_val_to_desc?])
 fi
 
-dnl This message is placed here for continuity purposes
-dnl but things are really set above in the libnet section
-AC_MSG_CHECKING(for libnet packet sending support)
-if test $disable_libnet = no -a $foundnet != no ; then
-	AC_MSG_RESULT(yes)
-	AC_DEFINE([HAVE_LIBNET], [1], [Do we support libnet for sending packets?])
-	have_libnet=yes
-else 
-	AC_MSG_RESULT(no)
+dnl Check to see if we've got pcap_dump_fopen()
+AC_MSG_CHECKING(for pcap_dump_fopen)
+AC_LINK_IFELSE(AC_LANG_PROGRAM([[
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "$LPCAPINC"
+]],[[
+	pcap_dumper_t *dump;
+	pcap_t *pcap;
+	FILE *foo;
+	dump = pcap_dump_fopen(pcap, foo);
+]]),[
+    have_pcap_dump_fopen=yes
+    AC_MSG_RESULT(yes)
+], [
+    have_pcap_dump_fopen=no
+    AC_MSG_RESULT(no)
+])
+
+if test $have_pcap_dump_fopen = yes ; then
+    AC_DEFINE([HAVE_PCAP_DUMP_FOPEN], [1], 
+              [Does libpcap have pcap_dump_fopen?])
+else
+	AC_MSG_NOTICE([--verbose mode requires libpcap >= 0.9.0])
 fi
 
+dnl Check to see if we've got pcap_snapshot_override()
+AC_MSG_CHECKING(for pcap_snapshot_override)
+AC_LINK_IFELSE(AC_LANG_PROGRAM([[
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "$LPCAPINC"
+]],[[
+	pcap_t *pcap;
+	pcap_snapshot_override(pcap, 1);
+	exit(0);
+]]),[
+    have_pcap_snapshot_override=yes
+    AC_MSG_RESULT(yes)
+], [
+    have_pcap_snapshot_override=no
+    AC_MSG_RESULT(no)
+])
+
+if test $have_pcap_snapshot_override = yes ; then
+    AC_DEFINE([HAVE_PCAP_SNAPSHOT_OVERRIDE], [1], 
+              [Does libpcap have pcap_snapshot_override()?])
+fi
+
+
 have_pcap_inject=no
 dnl Check to see if we've got pcap_inject()
 AC_MSG_CHECKING(for pcap_inject sending support)
@@ -526,14 +606,28 @@ AC_TRY_COMPILE([
 	char *buf;
     pcap_inject(pcap, (void *)buf, 0);
 ],[
-	if test $disable_pcap = no ; then
-		AC_DEFINE([HAVE_PCAP_INJECT], [1], 
-	              [Does libpcap have pcap_inject?])
-		AC_MSG_RESULT(yes)
-		have_pcap_inject=yes
-	else
-		AC_MSG_RESULT(no)
-	fi
+	AC_DEFINE([HAVE_PCAP_INJECT], [1], 
+              [Does libpcap have pcap_inject?])
+	AC_MSG_RESULT(yes)
+	have_pcap_inject=yes
+],[
+	AC_MSG_RESULT(no)
+])
+
+have_pcap_version=no
+dnl Check to see if we have pcap_version[]
+AC_MSG_CHECKING(for pcap_version[])
+AC_TRY_COMPILE([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "$LPCAPINC"
+extern char pcap_version[];
+],[
+	printf("%s", pcap_version);
+],[
+	AC_DEFINE([HAVE_PCAP_VERSION],[1], [Does libpcap have pcap_version[]])
+	AC_MSG_RESULT(yes)
 ],[
 	AC_MSG_RESULT(no)
 ])
@@ -551,14 +645,10 @@ AC_TRY_COMPILE([
 	u_char *buf;
     pcap_sendpacket(pcap, buf, 0);
 ],[
-	if test $disable_pcap = no ; then
-		AC_DEFINE([HAVE_PCAP_SENDPACKET], [1], 
-	              [Does libpcap have pcap_sendpacket?])
-		AC_MSG_RESULT(yes)
-		have_pcap_sendpacket=yes
-	else 
-		AC_MSG_RESULT(no)
-	fi
+	AC_DEFINE([HAVE_PCAP_SENDPACKET], [1], 
+              [Does libpcap have pcap_sendpacket?])
+	AC_MSG_RESULT(yes)
+	have_pcap_sendpacket=yes
 ],[
 	AC_MSG_RESULT(no)
 ])
@@ -575,14 +665,10 @@ AC_TRY_COMPILE([
 	int pf_socket;
 	pf_socket = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
 ],[
-    if test $disable_pf = no ; then
-		AC_DEFINE([HAVE_PF_PACKET], [1],
-			[Do we have Linux PF_PACKET socket support?])
-		AC_MSG_RESULT(yes)
-		have_pf=yes
-	else
-		AC_MSG_RESULT(no)
-	fi
+	AC_DEFINE([HAVE_PF_PACKET], [1],
+		[Do we have Linux PF_PACKET socket support?])
+	AC_MSG_RESULT(yes)
+	have_pf=yes
 ],[
 	AC_MSG_RESULT(no)
 ])
@@ -620,14 +706,10 @@ main(int argc, char *argv[]) {
     exit(-1);
 }],
 	[
-	if test $disable_bpf = no ; then
-	    AC_DEFINE([HAVE_BPF], [1], 
-	              [Do we have BPF device support?])
-		AC_MSG_RESULT(yes)
-		have_bpf=yes
-	else
-		AC_MSG_RESULT(no)
-	fi
+    AC_DEFINE([HAVE_BPF], [1], 
+              [Do we have BPF device support?])
+	AC_MSG_RESULT(yes)
+	have_bpf=yes
 	])
 
 
@@ -645,7 +727,8 @@ if test $have_bpf = no -a $have_libnet = no -a $have_pf = no ; then
 	enable_tcpbridge=no
 fi
 
-AM_CONDITIONAL(ENABLE_TCPBRIDGE, [test $enable_tcpbridge = yes])
+# ADT: Commented for now
+# AM_CONDITIONAL(ENABLE_TCPBRIDGE, [test $enable_tcpbridge = yes])
 
 dnl Older versions of libpcap are missing some DLT types
 dnl If doesn't exist, we'll define them in src/common/fakepcap.h
@@ -687,6 +770,30 @@ AC_TRY_COMPILE([#include <sys/types.h>
                AC_MSG_RESULT(no)
                )
 
+foundbpfheader=no
+AC_MSG_CHECKING(for libpcap bpf header)
+	for testfile in $LPCAPINCDIR/pcap/bpf.h $LPCAPINCDIR/pcap-bpf.h ; do
+    	if test -f "${testfile}" -a $foundbpfheader = no ; then
+			AC_TRY_COMPILE([
+				#include <sys/types.h>
+				#include <sys/time.h>
+				#include "$testfile"],
+			[
+				int foo;
+				foo = BPF_MAJOR_VERSION;
+			],
+			[
+				foundbpfheader=yes
+				PCAP_BPF_H_FILE=$testfile
+				AC_SUBST(PCAP_BPF_H_FILE)
+				AC_DEFINE([INCLUDE_PCAP_BPF_HEADER], [1],
+					[What is the path (if any) to the libpcap bpf header file?])
+				AC_MSG_RESULT($testfile)
+			],
+				AC_MSG_RESULT(no)
+			)
+		fi
+	done
 dnl restore LIBS & CFLAGS
 LIBS="$OLDLIBS"
 CFLAGS="$OLDCFLAGS"
@@ -839,12 +946,20 @@ AC_ARG_WITH(tcpdump,
 
 if test "$td" = "no"; then
     AC_MSG_WARN([Unable to find tcpdump.  Please specify --with-tcpdump.
-                 Disabling verbose reporting.])
+                 Disabling --verbose])
 else
     AC_DEFINE([HAVE_TCPDUMP], [1], [Do we have tcpdump?])
     AC_DEFINE_UNQUOTED(TCPDUMP_BINARY, "$td", [The tcpdump binary initially used])
 fi
 
+
+AM_CONDITIONAL([ENABLE_TCPDUMP], test "$td" != "no" -a x$have_pcap_dump_fopen = xyes)
+if test x$td != xno -a x$have_pcap_dump_fopen = xyes ; then
+	AC_DEFINE([ENABLE_VERBOSE], [1], [Do we have tcpdump and pcap_dump_fopen()?])
+else
+	AC_MSG_WARN([Your version of libpcap is too old for --verbose support])
+fi
+
 dnl No 'make test' when cross compile
 
 AC_MSG_CHECKING( for 'make test' profile)
@@ -879,7 +994,7 @@ case $host in
 	AC_MSG_RESULT(SunOS)
 	;;
 
-	powerpc-apple-darwin*)
+	*-apple-darwin*)
 	nic1=en0
 	nic2=en0
 	AC_MSG_RESULT(Apple OS X)
@@ -891,9 +1006,16 @@ case $host in
     AC_MSG_RESULT(OpenBSD)
     ;;
 
+	*-*-cygwin)
+	AC_MSG_RESULT(Win32/Cygwin)
+	nic1=%0
+	nic2=%0
+	;;
+	
 	*)
-	AC_MSG_RESULT([$host is unknown!  
-	Please use --with-nictest to select an interface for 'make test'])
+	AC_MSG_RESULT([$host is unknown!  Using first non-loopback interface])
+	nic1=%0
+	nic2=%0
 	;;
 esac])
 
@@ -922,9 +1044,3 @@ AC_OUTPUT([Makefile
            test/config
            scripts/Makefile
            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
-

+ 59 - 2
docs/CHANGELOG

@@ -1,5 +1,62 @@
-$Id: CHANGELOG 1585 2006-08-08 04:51:30Z aturner $
-
+$Id: CHANGELOG 1807 2007-04-15 01:32:22Z aturner $
+
+04/14/2007: Version 3.0.RC1
+    - Fix tcpbridge and make it compile by default (#15)
+	- Fix tcprewrite crash on little-endian systems (#127)
+	- Gracefully handle broken pcap files where the snaplen < caplen (#130)
+		- Note: Fix was made in libpcap and will be part of 0.9.6
+	- Fix numerous bugs with the sendpacket code (#137)
+	- Add optional support for editing packets with tcpreplay (#61)
+	- Fix 'make test' on little endian systems (#64)
+	- tcprewrite -s is no longer endian dependent (#65)
+	- /docs cleaned up (#66)
+	- Fix detection/compile of libpcap.  Now support versions >= 0.7.2 (#80, #144)
+	- Add official support Cygwin/Win32 support (#110)
+	- Clean up libpcap version code (#111)
+	- Add support for interface alias names for Win32 (#113)
+	- Warn user on DLT miss-match (#125)
+	- Fix tcprewrite segfault with --fixlen=pad (#134)
+	- Add loop/cache support for better performance (#136)
+	- inline debugging code for better performance (#138)
+	- configure now supports selecting injection method (#139)
+	- Fix configure/compile errors under OpenBSD (#146)
+	- Add tcpbridge --verbose mode (#28)
+	- Fix compile issues under HP-UX & strictly aligned systems (#141)
+	- --enable-dynamic-link supports 64bit libraries (#143)
+	
+	
+03/22/2007: Version 3.0.beta13
+	- Fixed detection of IPv4 packets in libtcpedit on little-endian boxes (#115, #116)
+    - Fixed TCP/UDP checksum calculation on little-endian boxes (#126)
+    - Added โ€“-quiet flag to tcpreplay for Lothar (#109)
+    - The โ€“-seed flag should now generate the same IPโ€™s on both little-endian & big-endian boxes (#65)
+    - The โ€“-skipl2broadcast flag now works as documented (#112)
+    - Adding L2 header for DLT_RAW encapsulated packets now works (#16)
+    - Clean up documentation (#66, #75)
+    - Start initial support for Win32 port (#110, #111)
+	- Finish DLT plugin rewrite (#82)
+	- Fix compile on systems without tcpdump installed
+
+02/22/2007: Version 3.0.beta12
+	- Fix compile under RH ES 3.x (gcc 3.2.2) (#79)
+	- Fix compile on MIPS, ARM, HPPA, etc (#81, #88)
+	- Rewrite L2/DLT code in tcpedit/tcprewrite to be plugin based (#82)
+		- Create Ethernet Plugin (#99)
+		- Create User Plugin (#100)
+		- Create Cisco HDLC Plugin (#101)
+		- Create DLT_LINUX_SLL Plugin (#102)
+		- Create DLT_RAW Plugin (#104)
+		- Create DLT_NULL Plugin (#105)
+		- Create DLT_LOOP Plugin (#106)
+	- Properly decode ethernet frames when they are VLAN tagged (#84)
+	- Do not install man2html (#85)
+	- Add configure --disable-libopts-install option (#86)
+	- Enhance tcpreplay --oneatatime (#90)
+	- libtcpedit can now return warnings & errors (#92)
+	- Fix tcpprep --include/exclude (#96)
+	- Upgrade AutoGen tearoff (libopts) to latest version (5.9.0) (#97)
+	- Don't do L4 checksums for non-fragment offset == 0 (#107)
+	
 08/07/2006: Version 3.0.beta11
     - Fix distribution to ship missing src/tcpr.h (#73)
     - Add support to tcprewrite to alter output file DLT (#74)

+ 5 - 2
docs/CREDIT

@@ -1,10 +1,10 @@
-$Id: CREDIT 1469 2006-06-09 06:48:46Z aturner $ 
+$Id: CREDIT 1782 2007-04-02 04:21:30Z aturner $ 
 
 tcpreplay and it's associated utilities (tcpprep, tcprewrite and flowreplay)
 were designed and written by Aaron Turner.
 
 This product includes software developed by the University of California,
-Berkeley and its contributors. 
+Berkeley, Lawrence Berkeley Laboratory and its contributors. 
 
 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.
@@ -40,3 +40,6 @@ Nick Mathewson <nickm@freehaven.net>
 Denis McLaughlin <denism@cyberus.ca>
     - Patch to allow TCP/UDP port translation
 
+Andrew Edgecombe <andrew.edgecombe@nec.com.au>
+	- Patch to support caching pcap files in memory when looping
+	  which provides a significant performance improvement

File diff suppressed because it is too large
+ 0 - 1302
docs/FAQ.lyx


BIN
docs/FAQ.pdf


+ 19 - 98
docs/HACKING

@@ -1,5 +1,4 @@
-$Id: HACKING 1470 2006-06-09 06:50:42Z aturner $
-
+$Id: HACKING 1782 2007-04-02 04:21:30Z aturner $ 
                           Guide to Hacking Tcpreplay
 
 [Note: Pay attention to the last update date at the top of this file.  If it
@@ -10,7 +9,7 @@ was significantly long ago, this document may be out of date.]
 If you contribute code the following will happen:
     a) You will be given credit in the CREDITS file
     b) Your code will be licensed under the same license as that of tcpreplay
-    c) You will be assigning your copyright to me
+    c) You will be assigning your copyright to me- Aaron Turner
 
 If you have any questions regarding any of the three above stipulations,
 feel free to email the list at: tcpreplay-users@lists.sourceforge.net
@@ -27,15 +26,14 @@ etc.
 
 The file layout is pretty simple:
 
-/           - Base directory
-/lib        - 3rd party libraries stolen verbatim
-/libopts    - GNU AutoOpts code
-/src        - Main code routines
-/src/common - Common routines for all binaries
+/            - Base directory
+/lib         - 3rd party libraries stolen verbatim
+/libopts     - GNU AutoOpts tearoff
+/src         - Main code routines
+/src/common  - Common routines for all binaries
 /src/tcpedit - libtcpedit
-/docs       - Where to find documentation
-/test       - Test scripts and stuff which is used during 'make test'
-/man        - Unix man pages which get copied to $MANPATH
+/docs        - Where to find documentation
+/test        - Test scripts and stuff which is used during 'make test'
 
 3. Coding Standards
 1) Indent 4 spaces using spaces, not tabs
@@ -46,95 +44,18 @@ The file layout is pretty simple:
     in common/utils.h
 6) Use provided strl* functions in lib/strlcat.c and lib/strlcpy.c
 
-[NOTE: Everything below this point is currently inaccurate.]
-
 4. Adding support for additional DLTs (Data Link Types)
 
-There are a number of files/functions that need to be touched to add support
-for a new DLT to tcpreplay and tcpprep.  Note that for a patch to be
-accepted, BOTH tcpreplay and tcpprep need to be updated to support the new
-DLT.
-
-4a) dlt.h
-Two things need to be added here:
-    - A structure defining the header
-    - A #define for the length of the header
-
-    example for DLT_CHDLC (Cisco HDLC):
-    
-/* Cisco HDLC has a simple 32 bit header */
-#define CISCO_HDLC_LEN 4
-struct cisco_hdlc_header {
-    u_int16_t address;
-    u_int16_t protocol;
-}
-
-4b) tcpreplay.c
-You will need to edit validate_l2() to process the DLT type as defined by
-pcap-bpf.h which is included with libpcap.  The key here is that tcpreplay
-needs to be able to generate a valid 802.3 ethernet frame.  Basically
-validate_l2() has to make sure that between the existing Layer 2 header (if
-any) and the user supplied arguments (-2, -I, -J, -K and -k) that enough
-information is available.  Generally this means one of:
-    - The DLT already has a valid header
-    - User specified their own complete header via -2
-    - The existing header + user specified MAC addresses are enough
-
-validate_l2() also calcuates the 'maxpacket' which is the maximum size of a
-packet that we can send out of the interface.  Generally this is the length
-of the Layer 2 header + MTU.  You shouldn't need to change anything here.
-
-4c) edit_packet.c
-Next, you'll have to edit rewrite_l2() to add support for rewriting the
-Layer 2 header from your DLT to a standard 802.3 header.  Note that
-do_packets.c will automatically fill out the source/destination MAC address
-if the appropriate flag is used (-I, -J, -K and -k) so there is no need to
-copy those values over here.
-
-4d) tcpprep.c
-Look at process_raw_packets().  Should be painfully obvious what do do here.
-
-4e) dlt_names.h
-Look in dlt_names.h and make sure your DLT type is listed here.  Note that
-this file is generated by scripts/dlt2name.pl.  If it's not listed here,
-your best bet is to edit scripts/dlt2name.pl and list it in the %known hash
-and then run:
-    make dlt_names
-
-Note that editing dlt_names.h is NOT going to work, since it will get 
-overwritten the next time it is regenerated.
+libtcpedit supports a plugin based architecture for handling different DLT
+types.  If you wish to add support for another DLT type, you should read:
+
+http://tcpreplay.synfin.net/trac/wiki/tcpeditDeveloper
+
+Which contains information on creating new DLT plugins.
 
 5. Hacking tcprewrite
 
-tcprewrite order of execution:
-
-Figure out if input file's DLT is supported
-
-foreach (packet) {
-	Update packet timestamp based on modifier
-	
-	Decide packet path via cache or CIDR lookup
-	
-	if (a Layer 2 header is specified) {
-	    if (existing Layer 2 header) {
-	        strip existing Layer 2 header
-	    }
-	    prepend specified Layer 2 header
-	}
-	
-	if (primary path or single path) {
-	    re-write MAC addresses
-	    re-write IP addresses
-	    re-write Ports
-	} else if (secondary path) {
-	    re-write MAC addresses
-	    re-write IP addresses
-	    re-write Ports
-	}
-	
-	pad or truncate packet
-	
-	fix checksums
-	
-	write packet to outfile
-}
+Tcprewrite is basically a front-end to libtcpedit.  Hence any packet editing
+improvements should be done there.  However, please remember that tcprewrite
+is not the only application which uses libtcpedit (tcpbridge is another
+example) so make sure you test your code there too.

+ 3 - 45
docs/INSTALL

@@ -1,48 +1,6 @@
-$Id: INSTALL 1575 2006-08-05 21:26:48Z aturner $
+$Id: INSTALL 1762 2007-03-24 20:42:05Z aturner $
 
 NOTE: This information is out of date.  Please see the tcpreplay wiki
-for updated information: http://tcpreplay.synfin.net/trac/wiki/manual
+for updated information: 
 
-You'll need:
-
-- libnet 1.1.x (1.1.1 or greater is recommended)
-http://www.packetfactory.net/Projects/libnet/
-
-Note: Version 1.1.3-RC has a bug in one of the header files.  If you get
-an error during compilation:
-
-/usr/local/include/./libnet/libnet-types.h:36:23: error: ../config.h: No
-such file or directory 
-
-Then you should edit /usr/local/include/libnet/libnet-types.h (or wherever
-it is installed) and comment out or delete the three lines (should be lines
-35-38):
-
-#ifdef HAVE_CONFIG_H
-#include "../config.h"
-#endif
-
-Feel free to bitch to libnet@securityfocus.com since they seem to be
-ignoring me.
-
-- libpcap >= 0.5 (0.8 or greater is recommended)
-http://www.tcpdump.org/
-
-- tcpdump (Optional. If you want packet decoding of sent packets)
-http://www.tcpdump.org/
-
-- autogen >= 5.7.0 (Only necessary if you are building tcpreplay from 
-      subversion)
-http://autogen.sourceforge.net/
-
-If building from subversion:
-./autogen.sh
-
-Run:
-./configure ; make
-
-Run as root:
-make test -i    (optional)
-make install
-
-For more detailed information, see the FAQ.
+http://tcpreplay.synfin.net/trac/wiki/manual#GettingTcpreplayInstalled

+ 2 - 1
docs/LICENSE

@@ -1,4 +1,5 @@
-Copyright (c) 2001-2006 Aaron Turner.  aturner at synfin dot net
+$Id: LICENSE 1762 2007-03-24 20:42:05Z aturner $
+Copyright (c) 2001-2007 Aaron Turner.  aturner at synfin dot net
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without

+ 23 - 79
docs/Makefile.am

@@ -1,100 +1,44 @@
 MAKEFLAGS=-s
 
-if HAVE_DOCTOOLS
-
-.PHONY: docs webfiles manpages
+.PHONY: manpages
 
 MAN2HTML = ../scripts/man2html
 
-L2HFLAGS = -show_section_numbers -no_footnode -split +1 -info 0 \
-	-auto_navigation -local_icons -mkdir -html_version 4.0
-
-webfiles: web/FAQ/FAQ.html web/manual/manual.html web/flowreplay/flowreplay.html
-
-docs: FAQ.pdf flowreplay.pdf manual.pdf webfiles manpages
-
-latex:
-	@LYX@ -e latex FAQ.lyx
-	@LYX@ -e latex manual.lyx
-	@LYX@ -e latex flowreplay.lyx
-
-FAQ.pdf: latex
-	@TEXI2DVI@ FAQ.tex
-	@DVIPDFM@ FAQ.dvi
+docs: manpages
 
-web/FAQ/FAQ.html: latex
-	@LATEX2HTML@ $(L2HFLAGS) -dir web/FAQ FAQ.tex
 
-flowreplay.pdf: latex
-	@FIG2DEV@ -L eps flowheader.fig flowheader.eps
-	@TEXI2DVI@ flowreplay.tex
-	@DVIPDFM@ flowreplay.dvi
+web/tcpreplay.html:
+	$(MAN2HTML) < ../src/tcpreplay.1 > web/tcpreplay.html
 
-web/flowreplay/flowreplay.html: latex
-	@LATEX2HTML@ $(L2HFLAGS) -dir web/flowreplay flowreplay.tex
+web/tcpprep.html:
+	$(MAN2HTML) < ../src/tcpprep.1 > web/tcpprep.html
 
-manual.pdf: latex
-	@FIG2DEV@ -L eps router-mode1.fig router-mode1.eps
-	@FIG2DEV@ -L eps router-mode2.fig router-mode2.eps
-	@FIG2DEV@ -L eps router-mode3.fig router-mode3.eps
-	@TEXI2DVI@ manual.tex
-	@DVIPDFM@ manual.dvi
+web/flowreplay.html:
+	$(MAN2HTML) < ../src/flowreplay.1 > web/flowreplay.html
 
-web/manual/manual.html: latex
-	@LATEX2HTML@ $(L2HFLAGS) -dir web/manual manual.tex
+web/tcprewrite.html:
+	$(MAN2HTML) < ../src/tcprewrite.1 > web/tcprewrite.html
 
-web/man/tcpreplay.html:
-	$(MAN2HTML) < ../src/tcpreplay.1 > web/man/tcpreplay.html
+web/tcpbridge.html:
+	$(MAN2HTML) < ../src/tcpbridge.1 > web/tcpbridge.html
 
-web/man/tcpprep.html:
-	$(MAN2HTML) < ../src/tcpprep.1 > web/man/tcpprep.html
+manpages: web/tcpreplay.html web/tcpprep.html web/flowreplay.html \
+	web/tcprewrite.html web/tcpbridge.html 
 
-web/man/flowreplay.html:
-	$(MAN2HTML) < ../src/flowreplay.1 > web/man/flowreplay.html
-
-web/man/tcprewrite.html:
-	$(MAN2HTML) < ../src/tcprewrite.1 > web/man/tcprewrite.html
-
-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 \
-	web/man/tcprewrite.html web/man/tcpbridge.html 
-
-postweb: webfiles manpages
-	rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
-		-avz web/ aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
+postweb: manpages
+	rsync -e ssh --exclude '.svn/' --exclude '/**/.svn/' --exclude '/**~' \
+	--exclude '*~' -avz web/ \
+	aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
 	scp CHANGELOG TODO aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
 
-postwebsf: webfiles manpages
-	-rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
-		-avz web/ aturner@shell.sf.net:htdocs/
-	scp CHANGELOG TODO aturner@shell.sf.net:htdocs/
-
-endif
-
-EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE TODO \
-	FAQ.lyx FAQ.pdf web/FAQ/FAQ.html web/FAQ \
-	flowreplay.lyx flowreplay.pdf web/flowreplay/flowreplay.html web/flowreplay \
-	flowheader.fig router-mode1.fig router-mode2.fig router-mode3.fig \
-	manual.lyx manual.pdf web/manual/manual.html web/manual \
-	web/index.html web/web.css web/man/tcpbridge.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
-
-MOSTLYCLEANFILES = FAQ.aux FAQ.log FAQ.toc FAQ.dvi FAQ.tex \
-	manual.aux manual.log manual.dvi manual.tex manual.toc \
-	flowreplay.aux flowreplay.log flowheader.eps flowreplay.tex \
-	flowreplay.log flowreplay.toc flowreplay.dvi \
-	images.aux images.log images.pl images.tex img1.png labels.pl \
-	router-mode1.eps router-mode2.eps router-mode3.eps \
-	*~ web/*~
+
+EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE 
 
 clean-docs: clean
-	-rm -rf *.pdf web/manual web/FAQ web/flowreplay web/man/*
+	-rm -f web/*.html
 
 maintainer-clean-local: clean-docs
-	-rm -rf web/flowreplay web/FAQ web/manual web/man/*.html
+	-rm -f web/*.html
 
-MAINTAINERCLEANFILES = FAQ.pdf flowreplay.pdf manual.pdf Makefile.in 
+MAINTAINERCLEANFILES = Makefile.in 
 

+ 74 - 137
docs/Makefile.in

@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,15 +13,11 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -49,8 +45,6 @@ SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
@@ -70,28 +64,20 @@ CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
-DVIPDFM = @DVIPDFM@
-DVIPS = @DVIPS@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
-ENABLE_FLOWREPLAY_FALSE = @ENABLE_FLOWREPLAY_FALSE@
-ENABLE_FLOWREPLAY_TRUE = @ENABLE_FLOWREPLAY_TRUE@
-ENABLE_TCPBRIDGE_FALSE = @ENABLE_TCPBRIDGE_FALSE@
-ENABLE_TCPBRIDGE_TRUE = @ENABLE_TCPBRIDGE_TRUE@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
-FIG2DEV = @FIG2DEV@
-HAVE_DOCTOOLS_FALSE = @HAVE_DOCTOOLS_FALSE@
-HAVE_DOCTOOLS_TRUE = @HAVE_DOCTOOLS_TRUE@
+GREP = @GREP@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LATEX2HTML = @LATEX2HTML@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
@@ -107,13 +93,9 @@ LN_S = @LN_S@
 LPCAPINC = @LPCAPINC@
 LPCAPLIB = @LPCAPLIB@
 LTLIBOBJS = @LTLIBOBJS@
-LYX = @LYX@
 MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
-NEED_LIBOPTS_FALSE = @NEED_LIBOPTS_FALSE@
-NEED_LIBOPTS_TRUE = @NEED_LIBOPTS_TRUE@
+MKDIR_P = @MKDIR_P@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -128,22 +110,16 @@ RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
-SYSTEM_STRLCPY_FALSE = @SYSTEM_STRLCPY_FALSE@
-SYSTEM_STRLCPY_TRUE = @SYSTEM_STRLCPY_TRUE@
 TCPREPLAY_RELEASE = @TCPREPLAY_RELEASE@
 TCPREPLAY_VERSION = @TCPREPLAY_VERSION@
-TEXI2DVI = @TEXI2DVI@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -155,19 +131,25 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
+datarootdir = @datarootdir@
 debug_flag = @debug_flag@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
@@ -175,10 +157,13 @@ nic1 = @nic1@
 nic2 = @nic2@
 oldincludedir = @oldincludedir@
 pcncfg = @pcncfg@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target = @target@
 target_alias = @target_alias@
@@ -186,29 +171,12 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 td = @td@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
 MAKEFLAGS = -s
-@HAVE_DOCTOOLS_TRUE@MAN2HTML = ../scripts/man2html
-@HAVE_DOCTOOLS_TRUE@L2HFLAGS = -show_section_numbers -no_footnode -split +1 -info 0 \
-@HAVE_DOCTOOLS_TRUE@	-auto_navigation -local_icons -mkdir -html_version 4.0
-
-EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE TODO \
-	FAQ.lyx FAQ.pdf web/FAQ/FAQ.html web/FAQ \
-	flowreplay.lyx flowreplay.pdf web/flowreplay/flowreplay.html web/flowreplay \
-	flowheader.fig router-mode1.fig router-mode2.fig router-mode3.fig \
-	manual.lyx manual.pdf web/manual/manual.html web/manual \
-	web/index.html web/web.css web/man/tcpbridge.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
-
-MOSTLYCLEANFILES = FAQ.aux FAQ.log FAQ.toc FAQ.dvi FAQ.tex \
-	manual.aux manual.log manual.dvi manual.tex manual.toc \
-	flowreplay.aux flowreplay.log flowheader.eps flowreplay.tex \
-	flowreplay.log flowreplay.toc flowreplay.dvi \
-	images.aux images.log images.pl images.tex img1.png labels.pl \
-	router-mode1.eps router-mode2.eps router-mode3.eps \
-	*~ web/*~
-
-MAINTAINERCLEANFILES = FAQ.pdf flowreplay.pdf manual.pdf Makefile.in 
+MAN2HTML = ../scripts/man2html
+EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE 
+MAINTAINERCLEANFILES = Makefile.in 
 all: all-am
 
 .SUFFIXES:
@@ -247,10 +215,6 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-
-distclean-libtool:
-	-rm -f libtool
-uninstall-info-am:
 tags: TAGS
 TAGS:
 
@@ -259,23 +223,21 @@ CTAGS:
 
 
 distdir: $(DISTFILES)
-	$(mkdir_p) $(distdir)/web $(distdir)/web/FAQ $(distdir)/web/flowreplay $(distdir)/web/man $(distdir)/web/manual
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-	list='$(DISTFILES)'; for file in $$list; do \
-	  case $$file in \
-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-	  esac; \
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
-	  else \
-	    dir=''; \
-	  fi; \
 	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
@@ -305,7 +267,6 @@ install-strip:
 	  `test -z '$(STRIP)' || \
 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
-	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
 clean-generic:
 
@@ -322,7 +283,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-libtool
+distclean-am: clean-am distclean-generic
 
 dvi: dvi-am
 
@@ -336,12 +297,20 @@ info-am:
 
 install-data-am:
 
+install-dvi: install-dvi-am
+
 install-exec-am:
 
+install-html: install-html-am
+
 install-info: install-info-am
 
 install-man:
 
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -361,88 +330,56 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am:
+
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
 	distclean distclean-generic distclean-libtool distdir dvi \
 	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-exec install-exec-am \
-	install-info install-info-am install-man install-strip \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
 	installcheck installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic maintainer-clean-local mostlyclean \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-info-am
-
-
-@HAVE_DOCTOOLS_TRUE@.PHONY: docs webfiles manpages
-
-@HAVE_DOCTOOLS_TRUE@webfiles: web/FAQ/FAQ.html web/manual/manual.html web/flowreplay/flowreplay.html
-
-@HAVE_DOCTOOLS_TRUE@docs: FAQ.pdf flowreplay.pdf manual.pdf webfiles manpages
-
-@HAVE_DOCTOOLS_TRUE@latex:
-@HAVE_DOCTOOLS_TRUE@	@LYX@ -e latex FAQ.lyx
-@HAVE_DOCTOOLS_TRUE@	@LYX@ -e latex manual.lyx
-@HAVE_DOCTOOLS_TRUE@	@LYX@ -e latex flowreplay.lyx
-
-@HAVE_DOCTOOLS_TRUE@FAQ.pdf: latex
-@HAVE_DOCTOOLS_TRUE@	@TEXI2DVI@ FAQ.tex
-@HAVE_DOCTOOLS_TRUE@	@DVIPDFM@ FAQ.dvi
-
-@HAVE_DOCTOOLS_TRUE@web/FAQ/FAQ.html: latex
-@HAVE_DOCTOOLS_TRUE@	@LATEX2HTML@ $(L2HFLAGS) -dir web/FAQ FAQ.tex
-
-@HAVE_DOCTOOLS_TRUE@flowreplay.pdf: latex
-@HAVE_DOCTOOLS_TRUE@	@FIG2DEV@ -L eps flowheader.fig flowheader.eps
-@HAVE_DOCTOOLS_TRUE@	@TEXI2DVI@ flowreplay.tex
-@HAVE_DOCTOOLS_TRUE@	@DVIPDFM@ flowreplay.dvi
-
-@HAVE_DOCTOOLS_TRUE@web/flowreplay/flowreplay.html: latex
-@HAVE_DOCTOOLS_TRUE@	@LATEX2HTML@ $(L2HFLAGS) -dir web/flowreplay flowreplay.tex
+	uninstall uninstall-am
 
-@HAVE_DOCTOOLS_TRUE@manual.pdf: latex
-@HAVE_DOCTOOLS_TRUE@	@FIG2DEV@ -L eps router-mode1.fig router-mode1.eps
-@HAVE_DOCTOOLS_TRUE@	@FIG2DEV@ -L eps router-mode2.fig router-mode2.eps
-@HAVE_DOCTOOLS_TRUE@	@FIG2DEV@ -L eps router-mode3.fig router-mode3.eps
-@HAVE_DOCTOOLS_TRUE@	@TEXI2DVI@ manual.tex
-@HAVE_DOCTOOLS_TRUE@	@DVIPDFM@ manual.dvi
 
-@HAVE_DOCTOOLS_TRUE@web/manual/manual.html: latex
-@HAVE_DOCTOOLS_TRUE@	@LATEX2HTML@ $(L2HFLAGS) -dir web/manual manual.tex
+.PHONY: manpages
 
-@HAVE_DOCTOOLS_TRUE@web/man/tcpreplay.html:
-@HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/tcpreplay.1 > web/man/tcpreplay.html
+docs: manpages
 
-@HAVE_DOCTOOLS_TRUE@web/man/tcpprep.html:
-@HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/tcpprep.1 > web/man/tcpprep.html
+web/tcpreplay.html:
+	$(MAN2HTML) < ../src/tcpreplay.1 > web/tcpreplay.html
 
-@HAVE_DOCTOOLS_TRUE@web/man/flowreplay.html:
-@HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/flowreplay.1 > web/man/flowreplay.html
+web/tcpprep.html:
+	$(MAN2HTML) < ../src/tcpprep.1 > web/tcpprep.html
 
-@HAVE_DOCTOOLS_TRUE@web/man/tcprewrite.html:
-@HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/tcprewrite.1 > web/man/tcprewrite.html
+web/flowreplay.html:
+	$(MAN2HTML) < ../src/flowreplay.1 > web/flowreplay.html
 
-@HAVE_DOCTOOLS_TRUE@web/man/tcpbridge.html:
-@HAVE_DOCTOOLS_TRUE@	$(MAN2HTML) < ../src/tcpbridge.1 > web/man/tcpbridge.html
+web/tcprewrite.html:
+	$(MAN2HTML) < ../src/tcprewrite.1 > web/tcprewrite.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 
+web/tcpbridge.html:
+	$(MAN2HTML) < ../src/tcpbridge.1 > web/tcpbridge.html
 
-@HAVE_DOCTOOLS_TRUE@postweb: webfiles manpages
-@HAVE_DOCTOOLS_TRUE@	rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
-@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/
+manpages: web/tcpreplay.html web/tcpprep.html web/flowreplay.html \
+	web/tcprewrite.html web/tcpbridge.html 
 
-@HAVE_DOCTOOLS_TRUE@postwebsf: webfiles manpages
-@HAVE_DOCTOOLS_TRUE@	-rsync -e ssh --exclude '/**/.svn/' --exclude '/**~' --exclude '*~' \
-@HAVE_DOCTOOLS_TRUE@		-avz web/ aturner@shell.sf.net:htdocs/
-@HAVE_DOCTOOLS_TRUE@	scp CHANGELOG TODO aturner@shell.sf.net:htdocs/
+postweb: manpages
+	rsync -e ssh --exclude '.svn/' --exclude '/**/.svn/' --exclude '/**~' \
+	--exclude '*~' -avz web/ \
+	aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
+	scp CHANGELOG TODO aturner@voigner.synfin.net:/var/www-vhosts/tcpreplay/
 
 clean-docs: clean
-	-rm -rf *.pdf web/manual web/FAQ web/flowreplay web/man/*
+	-rm -f web/*.html
 
 maintainer-clean-local: clean-docs
-	-rm -rf web/flowreplay web/FAQ web/manual web/man/*.html
+	-rm -f web/*.html
 # 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.
 .NOEXPORT:

+ 11 - 23
docs/TODO

@@ -1,6 +1,7 @@
 This is a general list of things which should/could/may be done.
 If any of these features interest you let me know- especially if you're
-willing and able to help code it.
+willing and able to help code it.  In general, higher priority tasks are
+tracked on the tcpreplay website: http://tcpreplay.synfin.net/
 
 Legend:
     - = Not started
@@ -22,27 +23,28 @@ GENERAL:
 
 + Re-organize source tree
 
-O tcpdump decoder should print packets syncronously w/ the main process
++ 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
++ 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 
++ 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
++ 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
+  + libnet_get_hwaddr
+  + libnet_do_checksum
 
 TCPREPLAY:
 
@@ -93,7 +95,7 @@ TCPREWRITE:
 + Fix MAC rewriting to allow sending packets with a MAC of 00:00:00:00:00:00
 
 - Add support for more linktypes (Prism Monitor, 802.11, FDDI, etc)
-    - Make it easier for others to add support for others
+    + Make it easier for others to add support for others
 
 + Rip out packet munger from tcpreplay and put it into another tool so
   that tcpreplay can be more optimized
@@ -147,17 +149,3 @@ FLOWREPLAY:
 - Perhaps integrate stick/snot/fpg logic into flowreplay:
   http://www.geschke-online.de/FLoP/fpg.8.html
   to do full 3way handshakes
-
-
-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)
-

+ 0 - 92
docs/flowheader.fig

@@ -1,92 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 6000 3150 6000 3450
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 6000 3450 6000 3750
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 2850 8400 2850
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 3150 8400 3150
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 3450 8400 3450
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 3750 8400 3750
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 3600 2550 8400 2550 8400 4350 3600 4350 3600 2550
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 7200 3150 7200 3450
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
-	 3600 4050 8400 4050
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 3600 4950 8400 4950 8400 5250 3600 5250 3600 4950
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 4800 5250 4800 5550
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 5550 8400 5550
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 3600 5250 8400 5250 8400 6150 3600 6150 3600 5250
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 3600 1350 8400 1350 8400 1950 3600 1950 3600 1350
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 1650 8400 1650
-2 2 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 5
-	 3600 6750 8400 6750 8400 7950 3600 7950 3600 6750
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 3600 6150 8400 6150 8400 6750 3600 6750 3600 6150
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
-	 3600 6450 8400 6450
-2 1 2 1 0 7 50 0 -1 3.000 0 0 -1 0 0 2
-	 3600 5850 8400 5850
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 3600 450 8400 450
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 3600 150 8400 150 8400 750 3600 750 3600 150
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 4800 150 4800 450
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 6000 150 6000 450
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 7200 150 7200 450
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 6000 5250 6000 5550
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2
-	 6000 1650 6000 1950
-4 0 0 50 0 0 12 0.0000 4 135 840 4350 3375 IP Protocol\001
-4 0 0 50 0 0 12 0.0000 4 180 1380 5250 2775 Client (Source) IP\001
-4 0 0 50 0 0 12 0.0000 4 180 1785 5100 3075 Server (Destination) IP\001
-4 0 0 50 0 0 12 0.0000 4 180 1725 3900 3675 Client Port/ICMP Type\001
-4 0 0 50 0 0 12 0.0000 4 135 1785 6375 3675 Server Port/ICMP Code\001
-4 0 0 50 0 0 12 0.0000 4 180 420 6375 3375 Flags\001
-4 0 0 50 0 0 12 0.0000 4 135 660 7350 3375 Instance\001
-4 0 0 50 0 0 12 0.0000 4 180 1260 8625 5100 Flag 1: Direction\001
-4 0 0 50 0 0 12 0.0000 4 180 1365 8625 2775 Flag 1: Last Index\001
-4 0 0 50 0 0 12 0.0000 4 180 1035 8625 3000 Flag 2: Ignore\001
-4 0 0 50 0 0 12 0.0000 4 180 1620 8625 3225 Flag 3: Server Socket\001
-4 0 0 50 0 0 12 0.0000 4 180 1035 8625 5325 Flag 2: Ignore\001
-4 0 0 50 0 0 12 0.0000 4 180 2100 4950 5175 Data Length of This Stream\001
-4 0 0 50 0 0 12 0.0000 4 180 420 3675 5475 Flags\001
-4 0 0 50 0 0 12 0.0000 4 135 2100 4875 3975 Offset to First Data Stream\001
-4 0 0 50 0 0 12 0.0000 4 180 2040 8625 5775 Flag 4: Urgent Data Exists\001
-4 0 0 50 0 0 12 0.0000 4 180 1125 5400 1575 Magic Number\001
-4 0 0 50 0 0 12 0.0000 4 135 960 5475 7350 Data Stream\001
-4 0 0 50 0 0 12 0.0000 4 180 2235 4950 6375 Offset to Next Data Segment\001
-4 0 0 50 0 0 12 0.0000 4 135 915 5475 675 32 Bit Word\001
-4 0 0 50 0 0 12 0.0000 4 135 450 3975 375 8 Bits\001
-4 0 0 50 0 0 12 0.0000 4 180 705 5100 5475 Urg Data\001
-4 0 0 50 0 0 12 0.0000 4 135 720 6825 5475 Reserved\001
-4 0 0 50 0 0 12 0.0000 4 180 840 5625 5775 Timestamp\001
-4 0 0 50 0 0 12 0.0000 4 135 945 5475 6675 In This Flow\001
-4 0 0 50 0 0 12 0.0000 4 180 1305 5325 2475 Flow Index Entry\001
-4 0 0 50 0 0 12 0.0000 4 135 1560 5250 4875 Data Stream Header\001
-4 0 0 50 0 0 12 0.0000 4 180 1635 5250 1275 Flowprep File Header\001
-4 0 0 50 0 0 12 0.0000 4 180 2055 8625 5550 Flag 3: More Data Streams\001
-4 0 0 50 0 0 12 0.0000 4 135 720 6900 1875 Reserved\001
-4 0 0 50 0 0 12 0.0000 4 135 600 4575 1875 Version\001

File diff suppressed because it is too large
+ 0 - 1125
docs/flowreplay.lyx


BIN
docs/flowreplay.pdf


File diff suppressed because it is too large
+ 0 - 2604
docs/manual.lyx


File diff suppressed because it is too large
+ 0 - 1592
docs/manual.pdf