1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-12 18:59:03 +00:00

Upgrading shipped libdnet to 1.12

This commit is contained in:
kris
2008-09-19 06:12:25 +00:00
parent 989117eb54
commit d23556c513
72 changed files with 6580 additions and 6546 deletions

View File

@@ -22,6 +22,8 @@ o A script could be executed twice if it was given with the --script
option, also in the "version" category, and version detection (-sV) option, also in the "version" category, and version detection (-sV)
was requested. This has been fixed. [David] was requested. This has been fixed. [David]
o Upgraded the shipped libdnet to 1.12. [Kris]
o Upgraded the OpenSSL shipped for Windows to 0.9.8i. [Kris] o Upgraded the OpenSSL shipped for Windows to 0.9.8i. [Kris]
Nmap 4.76 [2008-9-12] Nmap 4.76 [2008-9-12]

View File

@@ -56,4 +56,4 @@ To build a Microsoft Visual C++ native library and Python module
cd ../src && lib /out:dnet.lib *.obj cd ../src && lib /out:dnet.lib *.obj
# $Id: INSTALL,v 1.4 2005/02/15 07:38:19 dugsong Exp $ # $Id: INSTALL 590 2005-02-15 07:38:19Z dugsong $

View File

@@ -1,28 +1,31 @@
Copyright (c) 2000-2004 Dug Song <dugsong@monkey.org> Copyright (c) 2000-2006 Dug Song <dugsong@monkey.org>
All rights reserved, all wrongs reversed. All rights reserved, all wrongs reversed.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
1. Redistributions of source code must retain the above copyright 1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the 2. Redistributions in binary form must reproduce the above
documentation and/or other materials provided with the distribution. copyright notice, this list of conditions and the following
3. The names of the authors and copyright holders may not be used to disclaimer in the documentation and/or other materials provided
endorse or promote products derived from this software without with the distribution.
specific prior written permission.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 3. The names of the authors and copyright holders may not be used
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY to endorse or promote products derived from this software
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL without specific prior written permission.
THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,8 +1,8 @@
## $Id: Makefile.am,v 1.7 2004/01/03 08:52:22 dugsong Exp $ ## $Id: Makefile.am 618 2006-01-15 06:42:19Z dugsong $
include $(top_srcdir)/Makefile.am.common include $(top_srcdir)/Makefile.am.common
SUBDIRS = include src SUBDIRS = include man src python test
bin_SCRIPTS = dnet-config bin_SCRIPTS = dnet-config
@@ -12,10 +12,5 @@ CLEANFILES = dnet-config
aux_dir = config aux_dir = config
AUX_DIST = $(aux_dir)/acinclude.m4 AUX_DIST = $(aux_dir)/acinclude.m4
dist-hook:
(cd $(distdir) && mkdir $(aux_dir))
for file in $(AUX_DIST); do \
cp $$file $(distdir)/$$file; \
done

View File

@@ -1,7 +1,6 @@
## $Id: Makefile.am.common,v 1.2 2002/12/02 04:05:25 dugsong Exp $ ## $Id: Makefile.am.common 623 2006-01-19 06:09:27Z dugsong $
AUTOMAKE_OPTIONS = foreign no-dependencies AUTOMAKE_OPTIONS = foreign no-dependencies
INCLUDES = -I$(top_srcdir)/include AM_CPPFLAGS = -I$(top_srcdir)/include
DISTCLEANFILES = *~

View File

@@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am. # Makefile.in generated by automake 1.6.3 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# 2003, 2004 Free Software Foundation, Inc. # Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@@ -13,244 +13,164 @@
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@ @SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = . top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA) INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name) transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
NORMAL_UNINSTALL = : NORMAL_UNINSTALL = :
PRE_UNINSTALL = : PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
build_triplet = @build@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
$(srcdir)/../config.sub $(srcdir)/../install-sh \ EXEEXT = @EXEEXT@
$(srcdir)/../ltmain.sh $(srcdir)/../missing \ OBJEXT = @OBJEXT@
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \ PATH_SEPARATOR = @PATH_SEPARATOR@
$(srcdir)/dnet-config.in $(top_srcdir)/Makefile.am.common \
$(top_srcdir)/configure INSTALL THANKS TODO acconfig.h
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/acinclude.m4 \
$(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
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = dnet-config
am__installdirs = "$(DESTDIR)$(bindir)"
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(bin_SCRIPTS)
depcomp =
am__depfiles_maybe =
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
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
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@ AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AUTOCONF = @AUTOCONF@ AS = @AS@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@ AWK = @AWK@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKINC = @CHECKINC@ CHECKINC = @CHECKINC@
CHECKLIB = @CHECKLIB@ CHECKLIB = @CHECKLIB@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@ CXX = @CXX@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@ DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@ ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@ F77 = @F77@
FFLAGS = @FFLAGS@ GCJ = @GCJ@
GREP = @GREP@ GCJFLAGS = @GCJFLAGS@
HAVE_CHECK_FALSE = @HAVE_CHECK_FALSE@
HAVE_CHECK_TRUE = @HAVE_CHECK_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@ MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ OBJDUMP = @OBJDUMP@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PYTHON = @PYTHON@ PYTHON = @PYTHON@
PYTHON_FALSE = @PYTHON_FALSE@
PYTHON_TRUE = @PYTHON_TRUE@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@ RC = @RC@
SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
TCLINC = @TCLINC@ TCLINC = @TCLINC@
TCLLIB = @TCLLIB@ TCLLIB = @TCLLIB@
TCL_FALSE = @TCL_FALSE@
TCL_TRUE = @TCL_TRUE@
VERSION = @VERSION@ VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@ ac_aux_dir = @ac_aux_dir@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
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__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@ am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
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@ install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign no-dependencies AUTOMAKE_OPTIONS = foreign no-dependencies
INCLUDES = -I$(top_srcdir)/include
DISTCLEANFILES = *~ AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = include src
SUBDIRS = include src
bin_SCRIPTS = dnet-config bin_SCRIPTS = dnet-config
EXTRA_DIST = LICENSE Makefile.am.common acconfig.h EXTRA_DIST = LICENSE Makefile.am.common acconfig.h
CLEANFILES = dnet-config CLEANFILES = dnet-config
aux_dir = config
AUX_DIST = $(aux_dir)/acinclude.m4 AUX_DIST = $(ac_aux_dir)/acinclude.m4 \
$(ac_aux_dir)/config.guess \
$(ac_aux_dir)/config.sub \
$(ac_aux_dir)/install-sh \
$(ac_aux_dir)/ltmain.sh \
$(ac_aux_dir)/missing \
$(ac_aux_dir)/mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = dnet-config
SCRIPTS = $(bin_SCRIPTS)
depcomp =
am__depfiles_maybe =
DIST_SOURCES =
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
uninstall-info-recursive all-recursive install-data-recursive \
install-exec-recursive installdirs-recursive install-recursive \
uninstall-recursive check-recursive installcheck-recursive
DIST_COMMON = README INSTALL Makefile.am Makefile.in THANKS TODO \
acconfig.h aclocal.m4 config/acinclude.m4 config/config.guess \
config/config.sub config/install-sh config/ltmain.sh \
config/missing config/mkinstalldirs configure configure.in \
dnet-config.in
DIST_SUBDIRS = $(SUBDIRS)
all: all-recursive all: all-recursive
.SUFFIXES: .SUFFIXES:
am--refresh:
@: am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps) configure.lineno
@for dep in $?; do \ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/configure.in $(ACLOCAL_M4)
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile $(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck $(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF) cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
dnet-config: $(top_builddir)/config.status $(srcdir)/dnet-config.in dnet-config: $(top_builddir)/config.status dnet-config.in
cd $(top_builddir) && $(SHELL) ./config.status $@ cd $(top_builddir) && $(SHELL) ./config.status $@
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
install-binSCRIPTS: $(bin_SCRIPTS) install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" $(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_SCRIPTS)'; for p in $$list; do \ @list='$(bin_SCRIPTS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f $$d$$p; then \ if test -f $$d$$p; then \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ echo " $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f"; \
$(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f; \
else :; fi; \ else :; fi; \
done done
@@ -258,8 +178,8 @@ uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(bin_SCRIPTS)'; for p in $$list; do \ @list='$(bin_SCRIPTS)'; for p in $$list; do \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
rm -f "$(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \
done done
mostlyclean-libtool: mostlyclean-libtool:
@@ -326,10 +246,11 @@ tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \ ETAGS = etags
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ ETAGSFLAGS =
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -339,23 +260,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
mkid -fID $$unique mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \ if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -364,24 +276,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -z "$(ETAGS_ARGS)$$tags$$unique" \
test -n "$$unique" || unique=$$empty_fix; \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique $$tags $$unique
GTAGS: GTAGS:
@@ -390,24 +286,30 @@ GTAGS:
&& gtags -i $(GTAGS_ARGS) $$here && gtags -i $(GTAGS_ARGS) $$here
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = .
distdir = $(PACKAGE)-$(VERSION)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
GZIP_ENV = --best
distcleancheck_listfiles = find . -type f -print
distdir: $(DISTFILES) distdir: $(DISTFILES)
$(am__remove_distdir) $(am__remove_distdir)
mkdir $(distdir) mkdir $(distdir)
$(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/config $(mkinstalldirs) $(distdir)/. $(distdir)/config
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ @list='$(DISTFILES)'; for file in $$list; do \
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; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \ dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \
else \ else \
dir=''; \ dir=''; \
fi; \ fi; \
@@ -422,78 +324,45 @@ distdir: $(DISTFILES)
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \ if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \ test -d $(distdir)/$$subdir \
|| $(mkdir_p) "$(distdir)/$$subdir" \ || mkdir $(distdir)/$$subdir \
|| exit 1; \ || exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \ (cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \ $(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \ top_distdir="$(top_distdir)" \
distdir="$$distdir/$$subdir" \ distdir=../$(distdir)/$$subdir \
distdir) \ distdir) \
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-hook
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -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 -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir) || chmod -R a+r $(distdir)
dist-gzip: distdir dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir) $(am__remove_distdir)
dist dist-all: distdir dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir) $(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then # This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another # it guarantees that the distribution is self-contained by making another
# tarfile. # tarfile.
distcheck: dist distcheck: dist
case '$(DIST_ARCHIVES)' in \ $(am__remove_distdir)
*.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir) chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build mkdir $(distdir)/=build
mkdir $(distdir)/_inst mkdir $(distdir)/=inst
chmod a-w $(distdir) chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/=build \
&& cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -501,40 +370,23 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
distuninstallcheck \ || { echo "ERROR: files left after uninstall:" ; \
&& chmod -R a-w "$$dc_install_base" \ find $$dc_install_base -type f -print ; \
&& ({ \ exit 1; } >&2 ) \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && rm -f $(distdir).tar.gz \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir) $(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \ @echo "$(distdir).tar.gz is ready for distribution" | \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed 'h;s/./=/g;p;x;p;x'
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean distcleancheck: distclean
@if test '$(srcdir)' = . ; then \ if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \ exit 1 ; \
fi fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \ || { echo "ERROR: files left after distclean:" ; \
$(distcleancheck_listfiles) ; \ $(distcleancheck_listfiles) ; \
exit 1; } >&2 exit 1; } >&2
check-am: all-am check-am: all-am
@@ -542,9 +394,8 @@ check: check-recursive
all-am: Makefile $(SCRIPTS) all-am: Makefile $(SCRIPTS)
installdirs: installdirs-recursive installdirs: installdirs-recursive
installdirs-am: installdirs-am:
for dir in "$(DESTDIR)$(bindir)"; do \ $(mkinstalldirs) $(DESTDIR)$(bindir)
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive install: install-recursive
install-exec: install-exec-recursive install-exec: install-exec-recursive
install-data: install-data-recursive install-data: install-data-recursive
@@ -556,7 +407,7 @@ install-am: all-am
installcheck: installcheck-recursive installcheck: installcheck-recursive
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \ `test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
@@ -565,8 +416,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@@ -577,7 +427,6 @@ clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \ distclean-am: clean-am distclean-generic distclean-libtool \
distclean-tags distclean-tags
@@ -585,8 +434,6 @@ dvi: dvi-recursive
dvi-am: dvi-am:
html: html-recursive
info: info-recursive info: info-recursive
info-am: info-am:
@@ -603,48 +450,34 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache -rm -rf autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-binSCRIPTS uninstall-info-am uninstall-am: uninstall-binSCRIPTS uninstall-info-am
uninstall-info: uninstall-info-recursive uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
check-am clean clean-generic clean-libtool clean-recursive \ clean-generic clean-libtool clean-recursive dist dist-all \
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-gzip distcheck distclean distclean-generic \
dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-libtool distclean-recursive distclean-tags \
distclean-generic distclean-libtool distclean-recursive \ distcleancheck distdir dvi dvi-am dvi-recursive info info-am \
distclean-tags distcleancheck distdir distuninstallcheck dvi \ info-recursive install install-am install-binSCRIPTS \
dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-recursive \
install-binSCRIPTS install-data install-data-am install-exec \ install-exec install-exec-am install-exec-recursive \
install-exec-am install-info install-info-am install-man \ install-info install-info-am install-info-recursive install-man \
install-strip installcheck installcheck-am installdirs \ install-recursive install-strip installcheck installcheck-am \
installdirs-am maintainer-clean maintainer-clean-generic \ installdirs installdirs-am installdirs-recursive \
maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ mostlyclean-libtool mostlyclean-recursive tags tags-recursive \
tags tags-recursive uninstall uninstall-am \ uninstall uninstall-am uninstall-binSCRIPTS uninstall-info-am \
uninstall-binSCRIPTS uninstall-info-am uninstall-info-recursive uninstall-recursive
dist-hook:
(cd $(distdir) && mkdir $(aux_dir))
for file in $(AUX_DIST); do \
cp $$file $(distdir)/$$file; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:

View File

@@ -1,398 +1,358 @@
$Id$ $Id$
This is Dug Song's excellent Libdnet networking library version 1.10. This is Dug Song's excellent Libdnet networking library version 1.12.
It has been stripped down for inclusion within Nmap and modified as follows: It has been stripped down for inclusion within Nmap and modified as follows:
o Removed the following directories: o Removed the following directories:
python, test, man python, test, man, trunk
o Removed all filenames from EXTRA_libdnet_la_SOURCES sources, as o Removed the fw-* files except for fw-none because Nmap doesn't use
they aren't needed with GNU automake 1.9.2 the firewall API. Changed configure.in to always use fw-non.
o Removed the fw-* files except for fw-none because Nmap doesn't use o Removed files in now-removed dirs that were referenced in the AC_OUTPUT
the firewall API. Changed configure.in to always use fw-non. at the end of configure.in
o Removed files in now-removed dires that were reference from o Ran "aclocal -I . -I config" to regenerate aclocal.m4 with my newer
configure.in:318 aclocal.
o Ran "aclocal -I . -I config" to regenerate aclocal.m4 with my newer o Added this NMAP_MODIFICATIONS file.
aclocal.
o Added include/winconfig.h, which is a modified config.h to better support
o Replaced config.guess config.sub and missing in config dir with Windows compilation via Visual Studio. Added conditional includes
versions from Autoconf 2.59. for it to a bunch of the dnet source files.
o Added this NMAP_MODIFICATIONS file. o A number of portability changes to remove errors/warnings during
Win32 Visual Studio.Net compilation. This was mostly a matter of
o Added include/winconfig.h, which is a modified config.h to better support adding casts and a few extra include files.
Windows compilation via Visual Studio. Added conditional includes
for it to a bunch of the dnet source files. o Added libdnet-stripped.vcproj -- A Visual Studio.Net project file
for dnet.
o A number of portability changes to remove errors/warnings during
Win32 Visual Studio.Net compilation. This was mostly a matter of o Made some code changes to intf.c (the patch below). This does the following:
adding casts and a few extra include files.
o Preserve the alias qualifier from interface name in more cases
o Added libdnet-stripped.vcproj -- A Visual Studio.Net project file (e.g. don't blow away :2 from eth0:2 when it may still be needed.
for dnet.
o Set the SO_BROADCAST flag on the interface list descriptor so that
o Rewrote eth_open() for Win32 as its technique for translating from broadcast/network IPs can be investigated.
a dnet-named interface to a pcap-named one did not work on any of my
systems. o Update _match_intf_src so that it checks interface aliases for the
given source address rather than only the main interface address.
o Increase the number of available bpf devices from 32 to 128. Patch:
--- eth-bsd.c (revision 2774) diff -Nruw old/src/intf.c nmap-3.83.new/src/intf.c
+++ eth-bsd.c (working copy) --- src/intf.c 2005-05-03 09:41:35.000000000 -0700
@@ -45,7 +45,7 @@ +++ src/intf.c 2005-07-16 20:55:05.000000000 -0700
int i; @@ -119,12 +119,16 @@
intf_open(void)
if ((e = calloc(1, sizeof(*e))) != NULL) { {
- for (i = 0; i < 32; i++) { intf_t *intf;
+ for (i = 0; i < 128; i++) { + int one = 1;
snprintf(file, sizeof(file), "/dev/bpf%d", i);
e->fd = open(file, O_WRONLY); if ((intf = calloc(1, sizeof(*intf))) != NULL) {
if (e->fd != -1 || errno != EBUSY) intf->fd = intf->fd6 = -1;
if ((intf->fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
o Made some code changes to intf.c (the patch below). This does the following: return (intf_close(intf));
+
o Preserve the alias qualifier from interface name in more cases + setsockopt(intf->fd, SOL_SOCKET, SO_BROADCAST,
(e.g. don't blow away :2 from eth0:2 when it may still be needed. + (const char *) &one, sizeof(one));
#ifdef SIOCGIFNETMASK_IN6
o Set the SO_BROADCAST flag on the interface list descriptor so that if ((intf->fd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
broadcast/network IPs can be investigated. # ifdef EPROTONOSUPPORT
@@ -472,6 +476,7 @@
o Update _match_intf_src so that it checks interface aliases for the _intf_get_aliases(intf_t *intf, struct intf_entry *entry)
given source address rather than only the main interface address. {
struct ifreq *ifr, *lifr;
diff -Nruw old/src/intf.c nmap-3.83.new/src/intf.c + struct ifreq tmpifr;
--- src/intf.c 2005-05-03 09:41:35.000000000 -0700 struct addr *ap, *lap;
+++ src/intf.c 2005-07-16 20:55:05.000000000 -0700 char *p;
@@ -119,12 +119,16 @@
intf_open(void) @@ -492,9 +497,12 @@
{ if ((p = strchr(ifr->ifr_name, ':')) != NULL)
intf_t *intf; *p = '\0';
+ int one = 1;
- if (strcmp(ifr->ifr_name, entry->intf_name) != 0)
if ((intf = calloc(1, sizeof(*intf))) != NULL) { + if (strcmp(ifr->ifr_name, entry->intf_name) != 0) {
intf->fd = intf->fd6 = -1; + if (p) *p = ':';
continue;
if ((intf->fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) + }
return (intf_close(intf));
+ + if (p) *p = ':'; /* Fix the name back up */
+ setsockopt(intf->fd, SOL_SOCKET, SO_BROADCAST, if (addr_ston(&ifr->ifr_addr, ap) < 0)
+ (const char *) &one, sizeof(one)); continue;
#ifdef SIOCGIFNETMASK_IN6
if ((intf->fd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { @@ -506,6 +514,11 @@
# ifdef EPROTONOSUPPORT if (ap->addr_ip == entry->intf_addr.addr_ip ||
@@ -472,6 +476,7 @@ ap->addr_ip == entry->intf_dst_addr.addr_ip)
_intf_get_aliases(intf_t *intf, struct intf_entry *entry) continue;
{ + strlcpy(tmpifr.ifr_name, ifr->ifr_name,
struct ifreq *ifr, *lifr; + sizeof(tmpifr.ifr_name));
+ struct ifreq tmpifr; + if (ioctl(intf->fd, SIOCGIFNETMASK, &tmpifr) == 0)
struct addr *ap, *lap; + addr_stob(&tmpifr.ifr_addr, &ap->addr_bits);
char *p; +
}
@@ -492,9 +497,12 @@ #ifdef SIOCGIFNETMASK_IN6
if ((p = strchr(ifr->ifr_name, ':')) != NULL) else if (ap->addr_type == ADDR_TYPE_IP6 && intf->fd6 != -1) {
*p = '\0'; @@ -547,10 +560,22 @@
static int
- if (strcmp(ifr->ifr_name, entry->intf_name) != 0) _match_intf_src(const struct intf_entry *entry, void *arg)
+ if (strcmp(ifr->ifr_name, entry->intf_name) != 0) { {
+ if (p) *p = ':'; + int matched = 0;
continue; + int cnt;
+ } struct intf_entry *save = (struct intf_entry *)arg;
+ if (p) *p = ':'; /* Fix the name back up */ if (entry->intf_addr.addr_type == ADDR_TYPE_IP &&
if (addr_ston(&ifr->ifr_addr, ap) < 0) - entry->intf_addr.addr_ip == save->intf_addr.addr_ip) {
continue; + entry->intf_addr.addr_ip == save->intf_addr.addr_ip)
+ matched = 1;
@@ -506,6 +514,11 @@ +
if (ap->addr_ip == entry->intf_addr.addr_ip || + for (cnt = 0; !matched && cnt < (int) entry->intf_alias_num; cnt++) {
ap->addr_ip == entry->intf_dst_addr.addr_ip) + if (entry->intf_alias_addrs[cnt].addr_type != ADDR_TYPE_IP)
continue; + continue;
+ strlcpy(tmpifr.ifr_name, ifr->ifr_name, + if (entry->intf_alias_addrs[cnt].addr_ip == save->intf_addr.addr_ip)
+ sizeof(tmpifr.ifr_name)); + matched = 1;
+ if (ioctl(intf->fd, SIOCGIFNETMASK, &tmpifr) == 0) + }
+ addr_stob(&tmpifr.ifr_addr, &ap->addr_bits); +
+ + if (matched) {
} /* XXX - truncated result if entry is too small. */
#ifdef SIOCGIFNETMASK_IN6 if (save->intf_len < entry->intf_len)
else if (ap->addr_type == ADDR_TYPE_IP6 && intf->fd6 != -1) { memcpy(save, entry, save->intf_len);
@@ -547,10 +560,22 @@ @@ -678,14 +703,18 @@
static int if ((p = strchr(ifr->ifr_name, ':')) != NULL)
_match_intf_src(const struct intf_entry *entry, void *arg) *p = '\0';
{
+ int matched = 0; - if (pifr != NULL && strcmp(ifr->ifr_name, pifr->ifr_name) == 0)
+ int cnt; + if (pifr != NULL && strcmp(ifr->ifr_name, pifr->ifr_name) == 0) {
struct intf_entry *save = (struct intf_entry *)arg; + if (p) *p = ':';
continue;
if (entry->intf_addr.addr_type == ADDR_TYPE_IP && + }
- entry->intf_addr.addr_ip == save->intf_addr.addr_ip) {
+ entry->intf_addr.addr_ip == save->intf_addr.addr_ip) memset(ebuf, 0, sizeof(ebuf));
+ matched = 1; strlcpy(entry->intf_name, ifr->ifr_name,
+ sizeof(entry->intf_name));
+ for (cnt = 0; !matched && cnt < (int) entry->intf_alias_num; cnt++) { entry->intf_len = sizeof(ebuf);
+ if (entry->intf_alias_addrs[cnt].addr_type != ADDR_TYPE_IP)
+ continue; + /* Repair the alias name back up. */
+ if (entry->intf_alias_addrs[cnt].addr_ip == save->intf_addr.addr_ip) + if (p) *p = ':';
+ matched = 1; if (_intf_get_noalias(intf, entry) < 0)
+ } return (-1);
+ if (_intf_get_aliases(intf, entry) < 0)
+ if (matched) {
/* XXX - truncated result if entry is too small. */
if (save->intf_len < entry->intf_len)
memcpy(save, entry, save->intf_len); o Made some AIX/HP-UX portability changes sent in by Peter O'Gorman
@@ -678,14 +703,18 @@ (nmap-dev@mlists.thewrittenword.com):
if ((p = strchr(ifr->ifr_name, ':')) != NULL)
*p = '\0';
Index: include/dnet/ip6.h
- if (pifr != NULL && strcmp(ifr->ifr_name, pifr->ifr_name) == 0) ===================================================================
+ if (pifr != NULL && strcmp(ifr->ifr_name, pifr->ifr_name) == 0) { --- include/dnet/ip6.h (revision 3309)
+ if (p) *p = ':'; +++ include/dnet/ip6.h (working copy)
continue; @@ -25,7 +25,9 @@
+ } } ip6_addr_t;
memset(ebuf, 0, sizeof(ebuf)); #ifndef __GNUC__
strlcpy(entry->intf_name, ifr->ifr_name, +#ifndef __attribute__
sizeof(entry->intf_name)); # define __attribute__(x)
entry->intf_len = sizeof(ebuf); +#endif
# pragma pack(1)
+ /* Repair the alias name back up. */ #endif
+ if (p) *p = ':';
if (_intf_get_noalias(intf, entry) < 0) Index: include/dnet/ip.h
return (-1); ===================================================================
if (_intf_get_aliases(intf, entry) < 0) --- include/dnet/ip.h (revision 3309)
+++ include/dnet/ip.h (working copy)
@@ -25,7 +25,9 @@
typedef uint32_t ip_addr_t;
o Consider Windows interfaces to be down if they are disconnected, unreachable, or otherwise non-operational:
#ifndef __GNUC__
--- intf-win32.c (revision 2976) +#ifndef __attribute__
+++ intf-win32.c (working copy) # define __attribute__(x)
@@ -116,7 +116,9 @@ +#endif
# pragma pack(1)
/* Get interface flags. */ #endif
entry->intf_flags = 0;
- if (ifrow->dwAdminStatus == MIB_IF_ADMIN_STATUS_UP) Index: include/dnet/arp.h
+ if (ifrow->dwAdminStatus == MIB_IF_ADMIN_STATUS_UP && ===================================================================
+ (ifrow->dwOperStatus == MIB_IF_OPER_STATUS_OPERATIONAL || --- include/dnet/arp.h (revision 3309)
+ ifrow->dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED)) +++ include/dnet/arp.h (working copy)
entry->intf_flags |= INTF_FLAG_UP; @@ -16,7 +16,9 @@
if (ifrow->dwType == MIB_IF_TYPE_LOOPBACK) #define ARP_ETHIP_LEN 20 /* base ARP message length */
entry->intf_flags |= INTF_FLAG_LOOPBACK;
#ifndef __GNUC__
o Made some AIX/HP-UX portability changes sent in by Peter O'Gorman +#ifndef __attribute__
(nmap-dev@mlists.thewrittenword.com): # define __attribute__(x)
+#endif
# pragma pack(1)
Index: include/dnet/ip6.h #endif
===================================================================
--- include/dnet/ip6.h (revision 3309) Index: include/dnet/tcp.h
+++ include/dnet/ip6.h (working copy) ===================================================================
@@ -25,7 +25,9 @@ --- include/dnet/tcp.h (revision 3309)
} ip6_addr_t; +++ include/dnet/tcp.h (working copy)
@@ -17,7 +17,9 @@
#ifndef __GNUC__ #define TCP_HDR_LEN_MAX (TCP_HDR_LEN + TCP_OPT_LEN_MAX)
+#ifndef __attribute__
# define __attribute__(x) #ifndef __GNUC__
+#endif +#ifndef __attribute__
# pragma pack(1) # define __attribute__(x)
#endif +#endif
# pragma pack(1)
Index: include/dnet/ip.h #endif
===================================================================
--- include/dnet/ip.h (revision 3309) Index: include/dnet/icmp.h
+++ include/dnet/ip.h (working copy) ===================================================================
@@ -25,7 +25,9 @@ --- include/dnet/icmp.h (revision 3309)
typedef uint32_t ip_addr_t; +++ include/dnet/icmp.h (working copy)
@@ -16,7 +16,9 @@
#ifndef __GNUC__ #define ICMP_LEN_MIN 8 /* minimum ICMP message size, with header */
+#ifndef __attribute__
# define __attribute__(x) #ifndef __GNUC__
+#endif +#ifndef __attribute__
# pragma pack(1) # define __attribute__(x)
#endif +#endif
# pragma pack(1)
Index: include/dnet/arp.h #endif
===================================================================
--- include/dnet/arp.h (revision 3309) Index: src/arp-ioctl.c
+++ include/dnet/arp.h (working copy) ===================================================================
@@ -16,7 +16,9 @@ --- src/arp-ioctl.c (revision 3309)
#define ARP_ETHIP_LEN 20 /* base ARP message length */ +++ src/arp-ioctl.c (working copy)
@@ -383,7 +383,7 @@
#ifndef __GNUC__ }
+#ifndef __attribute__ return (ret);
# define __attribute__(x) }
+#endif -#elif defined(HAVE_NET_RADIX_H)
# pragma pack(1) +#elif defined(HAVE_NET_RADIX_H) && !defined(_AIX)
#endif /* XXX - Tru64, others? */
#include <netinet/if_ether.h>
Index: include/dnet/tcp.h #include <nlist.h>
=================================================================== Index: src/intf.c
--- include/dnet/tcp.h (revision 3309) ===================================================================
+++ include/dnet/tcp.h (working copy) --- src/intf.c (revision 3309)
@@ -17,7 +17,9 @@ +++ src/intf.c (working copy)
#define TCP_HDR_LEN_MAX (TCP_HDR_LEN + TCP_OPT_LEN_MAX) @@ -284,7 +284,9 @@
/* Set interface MTU. */
#ifndef __GNUC__ if (entry->intf_mtu != 0) {
+#ifndef __attribute__ ifr.ifr_mtu = entry->intf_mtu;
# define __attribute__(x) +#ifdef SIOCSIFMTU
+#endif if (ioctl(intf->fd, SIOCSIFMTU, &ifr) < 0)
# pragma pack(1) +#endif
#endif return (-1);
}
Index: include/dnet/icmp.h /* Set interface address. */
=================================================================== @@ -396,7 +398,9 @@
--- include/dnet/icmp.h (revision 3309) _intf_set_type(entry);
+++ include/dnet/icmp.h (working copy)
@@ -16,7 +16,9 @@ /* Get interface MTU. */
#define ICMP_LEN_MIN 8 /* minimum ICMP message size, with header */ +#ifdef SIOCGIFMTU
if (ioctl(intf->fd, SIOCGIFMTU, &ifr) < 0)
#ifndef __GNUC__ +#endif
+#ifndef __attribute__ return (-1);
# define __attribute__(x) entry->intf_mtu = ifr.ifr_mtu;
+#endif
# pragma pack(1) o Made the following change for Windows Vista support (thanks to Dan
#endif Griffin):
--- old/intf-win32.c 2005-12-28 16:30:38.000000000 -0800
Index: src/arp-ioctl.c +++ intf-win32.c 2006-11-26 20:46:13.000000000 -0800
=================================================================== @@ -31,7 +31,7 @@
--- src/arp-ioctl.c (revision 3309) int max;
+++ src/arp-ioctl.c (working copy) };
@@ -383,7 +383,7 @@
} -#define MIB_IF_TYPE_MAX 32 /* XXX - ipifcons.h */
return (ret); +#define MIB_IF_TYPE_MAX MAX_IF_TYPE /* XXX - ipifcons.h */
}
-#elif defined(HAVE_NET_RADIX_H) struct intf_handle {
+#elif defined(HAVE_NET_RADIX_H) && !defined(_AIX) struct ifcombo ifcombo[MIB_IF_TYPE_MAX];
/* XXX - Tru64, others? */
#include <netinet/if_ether.h> o Fix a compiler "may be used unitialized" warning:
#include <nlist.h> Index: addr-util.c
Index: src/intf.c ===================================================================
=================================================================== --- addr-util.c (revision 3855)
--- src/intf.c (revision 3309) +++ addr-util.c (working copy)
+++ src/intf.c (working copy) @@ -177,6 +177,8 @@
@@ -284,7 +284,9 @@ struct { int base, len; } best, cur;
/* Set interface MTU. */ char *p = dst;
if (entry->intf_mtu != 0) { int i;
ifr.ifr_mtu = entry->intf_mtu; +
+#ifdef SIOCSIFMTU + cur.len = best.len = 0;
if (ioctl(intf->fd, SIOCSIFMTU, &ifr) < 0)
+#endif if (len < 46)
return (-1); return (NULL);
}
/* Set interface address. */ o Removed config.sub, config.guess, install-sh, ltmain.sh, and missing from the
@@ -396,7 +398,9 @@ config directory. These files are found in the parent (i.e., Nmap's)
_intf_set_type(entry); directory. Also removed config/mkinstalldirs because it is replaced with
$(install_sh) -d. Change Makefile.am not to use ac_aux_dir, which is an
/* Get interface MTU. */ internal Autoconf variable.
+#ifdef SIOCGIFMTU Index: configure.in
if (ioctl(intf->fd, SIOCGIFMTU, &ifr) < 0) ===================================================================
+#endif --- configure.in (revision 6317)
return (-1); +++ configure.in (working copy)
entry->intf_mtu = ifr.ifr_mtu; @@ -6,8 +6,6 @@
dnl $Id$
o Made the following change for Windows Vista support (thanks to Dan
Griffin): AC_INIT(include/dnet.h)
--- old/intf-win32.c 2005-12-28 16:30:38.000000000 -0800 -AC_CONFIG_AUX_DIR(config)
+++ intf-win32.c 2006-11-26 20:46:13.000000000 -0800 -AC_SUBST(ac_aux_dir)
@@ -31,7 +31,7 @@
int max; AM_INIT_AUTOMAKE(libdnet, 1.10)
}; AM_CONFIG_HEADER(include/config.h)
Index: Makefile.am
-#define MIB_IF_TYPE_MAX 32 /* XXX - ipifcons.h */ ===================================================================
+#define MIB_IF_TYPE_MAX MAX_IF_TYPE /* XXX - ipifcons.h */ --- Makefile.am (revision 6317)
+++ Makefile.am (working copy)
struct intf_handle { @@ -10,16 +10,12 @@
struct ifcombo ifcombo[MIB_IF_TYPE_MAX];
CLEANFILES = dnet-config
o Fix a compiler "may be used unitialized" warning:
Index: addr-util.c -AUX_DIST = $(ac_aux_dir)/acinclude.m4 \
=================================================================== - $(ac_aux_dir)/config.guess \
--- addr-util.c (revision 3855) - $(ac_aux_dir)/config.sub \
+++ addr-util.c (working copy) - $(ac_aux_dir)/install-sh \
@@ -177,6 +177,8 @@ - $(ac_aux_dir)/ltmain.sh \
struct { int base, len; } best, cur; - $(ac_aux_dir)/missing \
char *p = dst; - $(ac_aux_dir)/mkinstalldirs
int i; +aux_dir = config
+
+ cur.len = best.len = 0; +AUX_DIST = $(aux_dir)/acinclude.m4
+
if (len < 46) dist-hook:
return (NULL); - (cd $(distdir) && mkdir $(ac_aux_dir))
+ (cd $(distdir) && mkdir $(aux_dir))
o Removed config.sub, config.guess, install-sh, ltmain.sh, and missing from the for file in $(AUX_DIST); do \
config directory. These files are found in the parent (i.e., Nmap's) cp $$file $(distdir)/$$file; \
directory. Also removed config/mkinstalldirs because it is replaced with done
$(install_sh) -d. Change Makefile.am not to use ac_aux_dir, which is an
internal Autoconf variable. o Remember the entry->intf_len before zeroing entry in _ifrow_to_entry.
Index: configure.in intf_loop relies on passing the length inside the structure to make sure
=================================================================== interface aliases are accounted for.
--- configure.in (revision 6317) Index: src/intf-win32.c
+++ configure.in (working copy) ===================================================================
@@ -6,8 +6,6 @@ --- src/intf-win32.c (revision 6288)
dnl $Id$ +++ src/intf-win32.c (working copy)
@@ -103,7 +103,12 @@
AC_INIT(include/dnet.h) struct addr *ap, *lap;
-AC_CONFIG_AUX_DIR(config) int i;
-AC_SUBST(ac_aux_dir)
+ /* The total length of the entry may be passed in inside entry.
AM_INIT_AUTOMAKE(libdnet, 1.10) + Remember it and clear the entry. */
AM_CONFIG_HEADER(include/config.h) + u_int intf_len = entry->intf_len;
Index: Makefile.am memset(entry, 0, sizeof(*entry));
=================================================================== + /* Restore the length. */
--- Makefile.am (revision 6317) + entry->intf_len = intf_len;
+++ Makefile.am (working copy)
@@ -10,16 +10,12 @@ for (i = 0; i < intf->ifcombo[ifrow->dwType].cnt; i++) {
if (intf->ifcombo[ifrow->dwType].idx[i] == ifrow->dwIndex)
CLEANFILES = dnet-config
o Forced interface type numbers to be canonicalized to internal numbers to
-AUX_DIST = $(ac_aux_dir)/acinclude.m4 \ avoid accessing uninitialized memory when an unknown device name is
- $(ac_aux_dir)/config.guess \ given.
- $(ac_aux_dir)/config.sub \ Index: libdnet-stripped/src/intf-win32.c
- $(ac_aux_dir)/install-sh \ ===================================================================
- $(ac_aux_dir)/ltmain.sh \ --- libdnet-stripped/src/intf-win32.c (revision 6413)
- $(ac_aux_dir)/missing \ +++ libdnet-stripped/src/intf-win32.c (working copy)
- $(ac_aux_dir)/mkinstalldirs @@ -42,9 +42,12 @@
+aux_dir = config
+AUX_DIST = $(aux_dir)/acinclude.m4
+
dist-hook:
- (cd $(distdir) && mkdir $(ac_aux_dir))
+ (cd $(distdir) && mkdir $(aux_dir))
for file in $(AUX_DIST); do \
cp $$file $(distdir)/$$file; \
done
o Remember the entry->intf_len before zeroing entry in _ifrow_to_entry.
intf_loop relies on passing the length inside the structure to make sure
interface aliases are accounted for.
Index: src/intf-win32.c
===================================================================
--- src/intf-win32.c (revision 6288)
+++ src/intf-win32.c (working copy)
@@ -103,7 +103,12 @@
struct addr *ap, *lap;
int i;
+ /* The total length of the entry may be passed in inside entry.
+ Remember it and clear the entry. */
+ u_int intf_len = entry->intf_len;
memset(entry, 0, sizeof(*entry));
+ /* Restore the length. */
+ entry->intf_len = intf_len;
for (i = 0; i < intf->ifcombo[ifrow->dwType].cnt; i++) {
if (intf->ifcombo[ifrow->dwType].idx[i] == ifrow->dwIndex)
o Forced interface type numbers to be canonicalized to internal numbers to
avoid accessing uninitialized memory when an unknown device name is
given.
Index: libdnet-stripped/src/intf-win32.c
===================================================================
--- libdnet-stripped/src/intf-win32.c (revision 6413)
+++ libdnet-stripped/src/intf-win32.c (working copy)
@@ -42,9 +42,12 @@
static char * static char *
_ifcombo_name(int type) _ifcombo_name(int type)
{ {
@@ -407,7 +367,7 @@ Index: libdnet-stripped/src/intf-win32.c
name = "eth"; name = "eth";
} else if (type == MIB_IF_TYPE_TOKENRING) { } else if (type == MIB_IF_TYPE_TOKENRING) {
name = "tr"; name = "tr";
@@ -60,9 +63,12 @@ @@ -60,9 +63,12 @@
return (name); return (name);
} }
@@ -420,7 +380,7 @@ Index: libdnet-stripped/src/intf-win32.c
int type = INTF_TYPE_OTHER; int type = INTF_TYPE_OTHER;
if (strncmp(device, "eth", 3) == 0) { if (strncmp(device, "eth", 3) == 0) {
@@ -81,6 +87,20 @@ @@ -81,6 +87,20 @@
return (type); return (type);
} }
@@ -441,7 +401,7 @@ Index: libdnet-stripped/src/intf-win32.c
static void static void
_ifcombo_add(struct ifcombo *ifc, DWORD idx) _ifcombo_add(struct ifcombo *ifc, DWORD idx)
{ {
@@ -102,6 +122,7 @@ @@ -102,6 +122,7 @@
{ {
struct addr *ap, *lap; struct addr *ap, *lap;
int i; int i;
@@ -449,7 +409,7 @@ Index: libdnet-stripped/src/intf-win32.c
/* The total length of the entry may be passed in inside entry. /* The total length of the entry may be passed in inside entry.
Remember it and clear the entry. */ Remember it and clear the entry. */
@@ -110,14 +131,15 @@ @@ -110,14 +131,15 @@
/* Restore the length. */ /* Restore the length. */
entry->intf_len = intf_len; entry->intf_len = intf_len;
@@ -470,7 +430,7 @@ Index: libdnet-stripped/src/intf-win32.c
/* Get interface flags. */ /* Get interface flags. */
entry->intf_flags = 0; entry->intf_flags = 0;
@@ -201,9 +223,11 @@ @@ -201,9 +223,11 @@
* XXX - like IP_ADAPTER_INFO ComboIndex * XXX - like IP_ADAPTER_INFO ComboIndex
*/ */
for (i = 0; i < intf->iftable->dwNumEntries; i++) { for (i = 0; i < intf->iftable->dwNumEntries; i++) {
@@ -484,11 +444,8 @@ Index: libdnet-stripped/src/intf-win32.c
ifrow->dwIndex); ifrow->dwIndex);
} else } else
return (-1); return (-1);
Added eth_get_pcap_devname that matches up a dnet name to its pcap Added eth_get_pcap_devname() that matches up a dnet name to its pcap
equivalent. It starts by matching interfaces IP addresses, then falls equivalent by matching hardwar addresses. It's similar to the code
back to matching hardware addresses. The hardware address matching code used in eth_open()
is adapted from libdnet 1.11.
Copied include/dnet/os.h from libdnet 1.12 to avoid a duplicate typedef
of ssize_t.

View File

@@ -10,4 +10,4 @@ and raw IP packet and Ethernet frame transmission.
WWW: http://libdnet.sourceforge.net/ WWW: http://libdnet.sourceforge.net/
$Id: README,v 1.2 2005/02/14 21:00:17 dugsong Exp $ $Id: README 578 2005-02-14 21:00:17Z dugsong $

View File

@@ -1,4 +1,4 @@
# $Id: THANKS,v 1.10 2005/02/17 02:58:11 dugsong Exp $ # $Id: THANKS 596 2005-02-17 02:58:11Z dugsong $
many thanks to all the folks who have contributed to libdnet: many thanks to all the folks who have contributed to libdnet:

View File

@@ -76,4 +76,4 @@ need reliable, legit HP-UX, Unixware, and AIX accounts with root
access to finish the ports to those platforms. i'd be happy to port to access to finish the ports to those platforms. i'd be happy to port to
other platforms also, given similar (temporary) access. other platforms also, given similar (temporary) access.
$Id: TODO,v 1.25 2005/02/14 21:56:59 dugsong Exp $ $Id: TODO 582 2005-02-14 21:56:59Z dugsong $

File diff suppressed because it is too large Load Diff

View File

@@ -229,7 +229,7 @@ AC_DEFUN(AC_DNET_RAWIP_HOST_OFFLEN,
case "$host_os" in case "$host_os" in
*openbsd*) *openbsd*)
ac_cv_dnet_rawip_host_offlen=no ;; ac_cv_dnet_rawip_host_offlen=no ;;
*bsd*|*osf*|*unixware*) *bsd*|*darwin*|*osf*|*unixware*)
ac_cv_dnet_rawip_host_offlen=yes ;; ac_cv_dnet_rawip_host_offlen=yes ;;
*) *)
ac_cv_dnet_rawip_host_offlen=no ;; ac_cv_dnet_rawip_host_offlen=no ;;

File diff suppressed because it is too large Load Diff

View File

@@ -3,11 +3,11 @@ dnl configure.in
dnl dnl
dnl Copyright (c) 2000 Dug Song <dugsong@monkey.org> dnl Copyright (c) 2000 Dug Song <dugsong@monkey.org>
dnl dnl
dnl $Id: configure.in,v 1.64 2005/02/25 23:05:09 dugsong Exp $ dnl $Id: configure.in 638 2007-01-20 11:39:21Z dugsong $
AC_INIT(include/dnet.h) AC_INIT(include/dnet.h)
AM_INIT_AUTOMAKE(libdnet, 1.10) AM_INIT_AUTOMAKE(libdnet, 1.12)
AM_CONFIG_HEADER(include/config.h) AM_CONFIG_HEADER(include/config.h)
dnl XXX - stop the insanity!@#$ dnl XXX - stop the insanity!@#$
@@ -17,6 +17,11 @@ dnl Check for system type.
dnl XXX - we do this to qualify our later feature checks, since some dnl XXX - we do this to qualify our later feature checks, since some
dnl systems claim to support multiple features, but are quite b0rked. dnl systems claim to support multiple features, but are quite b0rked.
AC_CANONICAL_HOST AC_CANONICAL_HOST
dnl XXX - spoof AC_CYGWIN
case "$host_os" in
*cygwin*) CYGWIN=yes;;
*) CYGWIN=no;;
esac
dnl Initialize prefix. dnl Initialize prefix.
if test "$prefix" = "NONE"; then if test "$prefix" = "NONE"; then
@@ -69,7 +74,6 @@ if test -r /usr/include/sgidefs.h ; then
CPPFLAGS="$CPPFLAGS -D__sgi" CPPFLAGS="$CPPFLAGS -D__sgi"
fi fi
dnl XXX - we need MingW32 under Cygwin for win32 dnl XXX - we need MingW32 under Cygwin for win32
AC_CYGWIN
if test "$CYGWIN" = yes ; then if test "$CYGWIN" = yes ; then
if test -d /usr/include/mingw ; then if test -d /usr/include/mingw ; then
CPPFLAGS="$CPPFLAGS -mno-cygwin" CPPFLAGS="$CPPFLAGS -mno-cygwin"
@@ -238,8 +242,6 @@ else
AC_LIBOBJ([eth-none]) AC_LIBOBJ([eth-none])
fi fi
dnl Using fw-none since Nmap doesn't need any of the firewall-related rules
dnl --Fyodor
AC_LIBOBJ([fw-none]) AC_LIBOBJ([fw-none])
dnl Check for network interface interface. dnl Check for network interface interface.
@@ -276,27 +278,16 @@ if test "$ac_cv_header_linux_if_tun_h" = yes ; then
AC_LIBOBJ([tun-linux]) AC_LIBOBJ([tun-linux])
elif test "$ac_cv_header_net_if_tun_h" = yes ; then elif test "$ac_cv_header_net_if_tun_h" = yes ; then
if test "$ac_cv_header_stropts_h" = yes ; then if test "$ac_cv_header_stropts_h" = yes ; then
case "$host_os" in AC_LIBOBJ([tun-solaris])
*kfreebsd* | *dragonfly*)
AC_LIBOBJ([tun-bsd]);;
*)
AC_LIBOBJ([tun-solaris]);;
esac
else else
AC_LIBOBJ([tun-bsd]) AC_LIBOBJ([tun-bsd])
fi fi
elif test -f "/dev/tun0" ; then elif test -c "/dev/tun0" ; then
AC_LIBOBJ([tun-bsd]) AC_LIBOBJ([tun-bsd])
else else
AC_LIBOBJ([tun-none]) AC_LIBOBJ([tun-none])
fi fi
dnl Generate LTLIBOBJS for libtool.
Xsed="sed -e s/^X//"
LTLIBOBJS=`echo X"$LIBOBJS"|\
[$Xsed -e "s,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,"]`
AC_SUBST(LTLIBOBJS)
AC_OUTPUT([Makefile dnet-config include/Makefile include/dnet/Makefile AC_OUTPUT([Makefile dnet-config include/Makefile include/dnet/Makefile
src/Makefile], src/Makefile],
[chmod 755 dnet-config]) [chmod 755 dnet-config])

View File

@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# $Id: dnet-config.in,v 1.1 2001/10/19 01:29:00 dugsong Exp $ # $Id: dnet-config.in 91 2001-10-19 01:29:00Z dugsong $
prefix=@prefix@ prefix=@prefix@
exec_prefix=@prefix@ exec_prefix=@prefix@

View File

@@ -1,4 +1,4 @@
## $Id: Makefile.am,v 1.2 2002/02/20 19:05:08 dugsong Exp $ ## $Id: Makefile.am 294 2002-02-20 19:05:08Z dugsong $
include $(top_srcdir)/Makefile.am.common include $(top_srcdir)/Makefile.am.common

View File

@@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am. # Makefile.in generated by automake 1.6.3 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# 2003, 2004 Free Software Foundation, Inc. # Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@@ -13,218 +13,126 @@
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@ @SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA) INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name) transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
NORMAL_UNINSTALL = : NORMAL_UNINSTALL = :
PRE_UNINSTALL = : PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
build_triplet = @build@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \ EXEEXT = @EXEEXT@
$(top_srcdir)/Makefile.am.common OBJEXT = @OBJEXT@
PATH_SEPARATOR = @PATH_SEPARATOR@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AWK = @AWK@
CC = @CC@
CHECKINC = @CHECKINC@
CHECKLIB = @CHECKLIB@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
EGREP = @EGREP@
F77 = @F77@
GCJ = @GCJ@
GCJFLAGS = @GCJFLAGS@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PYTHON = @PYTHON@
RANLIB = @RANLIB@
RC = @RC@
STRIP = @STRIP@
TCLINC = @TCLINC@
TCLLIB = @TCLLIB@
VERSION = @VERSION@
ac_aux_dir = @ac_aux_dir@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = foreign no-dependencies
AM_CPPFLAGS = -I$(top_srcdir)/include
include_HEADERS = dnet.h
SUBDIRS = dnet
EXTRA_DIST = err.h queue.h
subdir = include subdir = include
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
am__aclocal_m4_deps = $(top_srcdir)/config/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
depcomp = depcomp =
am__depfiles_maybe = am__depfiles_maybe =
SOURCES =
DIST_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
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(includedir)"
includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS) HEADERS = $(include_HEADERS)
ETAGS = etags
CTAGS = ctags
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
uninstall-info-recursive all-recursive install-data-recursive \
install-exec-recursive installdirs-recursive install-recursive \
uninstall-recursive check-recursive installcheck-recursive
DIST_COMMON = $(include_HEADERS) Makefile.am Makefile.in config.h.in
DIST_SUBDIRS = $(SUBDIRS) DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKINC = @CHECKINC@
CHECKLIB = @CHECKLIB@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
GREP = @GREP@
HAVE_CHECK_FALSE = @HAVE_CHECK_FALSE@
HAVE_CHECK_TRUE = @HAVE_CHECK_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PYTHON = @PYTHON@
PYTHON_FALSE = @PYTHON_FALSE@
PYTHON_TRUE = @PYTHON_TRUE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCLINC = @TCLINC@
TCLLIB = @TCLLIB@
TCL_FALSE = @TCL_FALSE@
TCL_TRUE = @TCL_TRUE@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
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@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
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@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign no-dependencies
INCLUDES = -I$(top_srcdir)/include
DISTCLEANFILES = *~
include_HEADERS = dnet.h
SUBDIRS = dnet
EXTRA_DIST = err.h queue.h
all: config.h all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive $(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES: .SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps) $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/configure.in $(ACLOCAL_M4)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --foreign include/Makefile $(AUTOMAKE) --foreign include/Makefile
.PRECIOUS: Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
config.h: stamp-h1 config.h: stamp-h1
@if test ! -f $@; then \ @if test ! -f $@; then \
@@ -235,10 +143,10 @@ config.h: stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1 @rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status include/config.h cd $(top_builddir) && $(SHELL) ./config.status include/config.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(top_srcdir)/acconfig.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
cd $(top_srcdir) && $(AUTOHEADER) cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1 touch $(srcdir)/config.h.in
touch $@
distclean-hdr: distclean-hdr:
-rm -f config.h stamp-h1 -rm -f config.h stamp-h1
@@ -252,22 +160,23 @@ clean-libtool:
distclean-libtool: distclean-libtool:
-rm -f libtool -rm -f libtool
uninstall-info-am: uninstall-info-am:
includeHEADERS_INSTALL = $(INSTALL_HEADER)
install-includeHEADERS: $(include_HEADERS) install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" $(mkinstalldirs) $(DESTDIR)$(includedir)
@list='$(include_HEADERS)'; for p in $$list; do \ @list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \
done done
uninstall-includeHEADERS: uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \ @list='$(include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ echo " rm -f $(DESTDIR)$(includedir)/$$f"; \
rm -f "$(DESTDIR)$(includedir)/$$f"; \ rm -f $(DESTDIR)$(includedir)/$$f; \
done done
# This directory's subdirectories are mostly independent; you can cd # This directory's subdirectories are mostly independent; you can cd
@@ -324,10 +233,11 @@ tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \ ETAGS = etags
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ ETAGSFLAGS =
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -337,23 +247,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
mkid -fID $$unique mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \ if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
@@ -362,24 +263,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -z "$(ETAGS_ARGS)$$tags$$unique" \
test -n "$$unique" || unique=$$empty_fix; \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique $$tags $$unique
GTAGS: GTAGS:
@@ -388,22 +273,19 @@ GTAGS:
&& gtags -i $(GTAGS_ARGS) $$here && gtags -i $(GTAGS_ARGS) $$here
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES) distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/.. @list='$(DISTFILES)'; for file in $$list; do \
@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; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \ dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \
else \ else \
dir=''; \ dir=''; \
fi; \ fi; \
@@ -418,17 +300,15 @@ distdir: $(DISTFILES)
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \ if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \ test -d $(distdir)/$$subdir \
|| $(mkdir_p) "$(distdir)/$$subdir" \ || mkdir $(distdir)/$$subdir \
|| exit 1; \ || exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \ (cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \ $(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \ top_distdir="$(top_distdir)" \
distdir="$$distdir/$$subdir" \ distdir=../$(distdir)/$$subdir \
distdir) \ distdir) \
|| exit 1; \ || exit 1; \
fi; \ fi; \
@@ -438,9 +318,8 @@ check: check-recursive
all-am: Makefile $(HEADERS) config.h all-am: Makefile $(HEADERS) config.h
installdirs: installdirs-recursive installdirs: installdirs-recursive
installdirs-am: installdirs-am:
for dir in "$(DESTDIR)$(includedir)"; do \ $(mkinstalldirs) $(DESTDIR)$(includedir)
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive install: install-recursive
install-exec: install-exec-recursive install-exec: install-exec-recursive
install-data: install-data-recursive install-data: install-data-recursive
@@ -452,7 +331,7 @@ install-am: all-am
installcheck: installcheck-recursive installcheck: installcheck-recursive
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \ `test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
@@ -460,8 +339,7 @@ mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@@ -471,16 +349,14 @@ clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr \ distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
distclean-libtool distclean-tags distclean-tags
dvi: dvi-recursive dvi: dvi-recursive
dvi-am: dvi-am:
html: html-recursive
info: info-recursive info: info-recursive
info-am: info-am:
@@ -496,39 +372,33 @@ install-man:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-recursive maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-includeHEADERS uninstall-info-am uninstall-am: uninstall-includeHEADERS uninstall-info-am
uninstall-info: uninstall-info-recursive uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
clean clean-generic clean-libtool clean-recursive ctags \ clean-generic clean-libtool clean-recursive distclean \
ctags-recursive distclean distclean-generic distclean-hdr \ distclean-generic distclean-hdr distclean-libtool \
distclean-libtool distclean-recursive distclean-tags distdir \ distclean-recursive distclean-tags distdir dvi dvi-am \
dvi dvi-am html html-am info info-am install install-am \ dvi-recursive info info-am info-recursive install install-am \
install-data install-data-am install-exec install-exec-am \ install-data install-data-am install-data-recursive \
install-exec install-exec-am install-exec-recursive \
install-includeHEADERS install-info install-info-am \ install-includeHEADERS install-info install-info-am \
install-man install-strip installcheck installcheck-am \ install-info-recursive install-man install-recursive \
installdirs installdirs-am maintainer-clean \ install-strip installcheck installcheck-am installdirs \
maintainer-clean-generic maintainer-clean-recursive \ installdirs-am installdirs-recursive maintainer-clean \
mostlyclean mostlyclean-generic mostlyclean-libtool \ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
uninstall uninstall-am uninstall-includeHEADERS \ tags tags-recursive uninstall uninstall-am \
uninstall-info-am uninstall-includeHEADERS uninstall-info-am \
uninstall-info-recursive uninstall-recursive
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.

View File

@@ -1,4 +1,4 @@
/* include/config.h.in. Generated automatically from configure.in by autoheader. */ /* include/config.h.in. Generated from configure.in by autoheader. */
/* Define if arpreq struct has arp_dev. */ /* Define if arpreq struct has arp_dev. */
#undef HAVE_ARPREQ_ARP_DEV #undef HAVE_ARPREQ_ARP_DEV
@@ -6,68 +6,68 @@
/* Define if you have the Berkeley Packet Filter. */ /* Define if you have the Berkeley Packet Filter. */
#undef HAVE_BSD_BPF #undef HAVE_BSD_BPF
/* Define if you have the <dlfcn.h> header file. */ /* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H #undef HAVE_DLFCN_H
/* Define if you have the `err' function. */ /* Define to 1 if you have the `err' function. */
#undef HAVE_ERR #undef HAVE_ERR
/* Define if you have the <fcntl.h> header file. */ /* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H #undef HAVE_FCNTL_H
/* Define if you have the <hpsecurity.h> header file. */ /* Define to 1 if you have the <hpsecurity.h> header file. */
#undef HAVE_HPSECURITY_H #undef HAVE_HPSECURITY_H
/* Define if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define if you have arp(7) ioctls. */ /* Define if you have arp(7) ioctls. */
#undef HAVE_IOCTL_ARP #undef HAVE_IOCTL_ARP
/* Define if you have the <Iphlpapi.h> header file. */ /* Define to 1 if you have the <Iphlpapi.h> header file. */
#undef HAVE_IPHLPAPI_H #undef HAVE_IPHLPAPI_H
/* Define if you have the <ip_compat.h> header file. */ /* Define to 1 if you have the <ip_compat.h> header file. */
#undef HAVE_IP_COMPAT_H #undef HAVE_IP_COMPAT_H
/* Define if you have the <ip_fil_compat.h> header file. */ /* Define to 1 if you have the <ip_fil_compat.h> header file. */
#undef HAVE_IP_FIL_COMPAT_H #undef HAVE_IP_FIL_COMPAT_H
/* Define if you have the <ip_fil.h> header file. */ /* Define to 1 if you have the <ip_fil.h> header file. */
#undef HAVE_IP_FIL_H #undef HAVE_IP_FIL_H
/* Define if you have the `iphlpapi' library (-liphlpapi). */ /* Define to 1 if you have the `iphlpapi' library (-liphlpapi). */
#undef HAVE_LIBIPHLPAPI #undef HAVE_LIBIPHLPAPI
/* Define if you have the `nm' library (-lnm). */ /* Define to 1 if you have the `nm' library (-lnm). */
#undef HAVE_LIBNM #undef HAVE_LIBNM
/* Define if you have the `nsl' library (-lnsl). */ /* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL #undef HAVE_LIBNSL
/* Define if you have the `resolv' library (-lresolv). */ /* Define to 1 if you have the `resolv' library (-lresolv). */
#undef HAVE_LIBRESOLV #undef HAVE_LIBRESOLV
/* Define if you have the `socket' library (-lsocket). */ /* Define to 1 if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET #undef HAVE_LIBSOCKET
/* Define if you have the `str' library (-lstr). */ /* Define to 1 if you have the `str' library (-lstr). */
#undef HAVE_LIBSTR #undef HAVE_LIBSTR
/* Define if you have the `ws2_32' library (-lws2_32). */ /* Define to 1 if you have the `ws2_32' library (-lws2_32). */
#undef HAVE_LIBWS2_32 #undef HAVE_LIBWS2_32
/* Define if you have the <linux/if_tun.h> header file. */ /* Define to 1 if you have the <linux/if_tun.h> header file. */
#undef HAVE_LINUX_IF_TUN_H #undef HAVE_LINUX_IF_TUN_H
/* Define if you have the <linux/ip_fwchains.h> header file. */ /* Define to 1 if you have the <linux/ip_fwchains.h> header file. */
#undef HAVE_LINUX_IP_FWCHAINS_H #undef HAVE_LINUX_IP_FWCHAINS_H
/* Define if you have the <linux/ip_fw.h> header file. */ /* Define to 1 if you have the <linux/ip_fw.h> header file. */
#undef HAVE_LINUX_IP_FW_H #undef HAVE_LINUX_IP_FW_H
/* Define if you have the <linux/netfilter_ipv4/ipchains_core.h> header file. /* Define to 1 if you have the <linux/netfilter_ipv4/ipchains_core.h> header
*/ file. */
#undef HAVE_LINUX_NETFILTER_IPV4_IPCHAINS_CORE_H #undef HAVE_LINUX_NETFILTER_IPV4_IPCHAINS_CORE_H
/* Define if you have Linux PF_PACKET sockets. */ /* Define if you have Linux PF_PACKET sockets. */
@@ -76,55 +76,55 @@
/* Define if you have the Linux /proc filesystem. */ /* Define if you have the Linux /proc filesystem. */
#undef HAVE_LINUX_PROCFS #undef HAVE_LINUX_PROCFS
/* Define if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H #undef HAVE_MEMORY_H
/* Define if you have the <netinet/in_var.h> header file. */ /* Define to 1 if you have the <netinet/in_var.h> header file. */
#undef HAVE_NETINET_IN_VAR_H #undef HAVE_NETINET_IN_VAR_H
/* Define if you have the <netinet/ip_compat.h> header file. */ /* Define to 1 if you have the <netinet/ip_compat.h> header file. */
#undef HAVE_NETINET_IP_COMPAT_H #undef HAVE_NETINET_IP_COMPAT_H
/* Define if you have the <netinet/ip_fil_compat.h> header file. */ /* Define to 1 if you have the <netinet/ip_fil_compat.h> header file. */
#undef HAVE_NETINET_IP_FIL_COMPAT_H #undef HAVE_NETINET_IP_FIL_COMPAT_H
/* Define if you have the <netinet/ip_fil.h> header file. */ /* Define to 1 if you have the <netinet/ip_fil.h> header file. */
#undef HAVE_NETINET_IP_FIL_H #undef HAVE_NETINET_IP_FIL_H
/* Define if you have the <netinet/ip_fw.h> header file. */ /* Define to 1 if you have the <netinet/ip_fw.h> header file. */
#undef HAVE_NETINET_IP_FW_H #undef HAVE_NETINET_IP_FW_H
/* Define if you have the <net/bpf.h> header file. */ /* Define to 1 if you have the <net/bpf.h> header file. */
#undef HAVE_NET_BPF_H #undef HAVE_NET_BPF_H
/* Define if you have the <net/if_arp.h> header file. */ /* Define to 1 if you have the <net/if_arp.h> header file. */
#undef HAVE_NET_IF_ARP_H #undef HAVE_NET_IF_ARP_H
/* Define if you have the <net/if_dl.h> header file. */ /* Define to 1 if you have the <net/if_dl.h> header file. */
#undef HAVE_NET_IF_DL_H #undef HAVE_NET_IF_DL_H
/* Define if you have the <net/if.h> header file. */ /* Define to 1 if you have the <net/if.h> header file. */
#undef HAVE_NET_IF_H #undef HAVE_NET_IF_H
/* Define if you have the <net/if_tun.h> header file. */ /* Define to 1 if you have the <net/if_tun.h> header file. */
#undef HAVE_NET_IF_TUN_H #undef HAVE_NET_IF_TUN_H
/* Define if you have the <net/if_var.h> header file. */ /* Define to 1 if you have the <net/if_var.h> header file. */
#undef HAVE_NET_IF_VAR_H #undef HAVE_NET_IF_VAR_H
/* Define if you have the <net/pfilt.h> header file. */ /* Define to 1 if you have the <net/pfilt.h> header file. */
#undef HAVE_NET_PFILT_H #undef HAVE_NET_PFILT_H
/* Define if you have the <net/pfvar.h> header file. */ /* Define to 1 if you have the <net/pfvar.h> header file. */
#undef HAVE_NET_PFVAR_H #undef HAVE_NET_PFVAR_H
/* Define if you have the <net/radix.h> header file. */ /* Define to 1 if you have the <net/radix.h> header file. */
#undef HAVE_NET_RADIX_H #undef HAVE_NET_RADIX_H
/* Define if you have the <net/raw.h> header file. */ /* Define to 1 if you have the <net/raw.h> header file. */
#undef HAVE_NET_RAW_H #undef HAVE_NET_RAW_H
/* Define if you have the <net/route.h> header file. */ /* Define to 1 if you have the <net/route.h> header file. */
#undef HAVE_NET_ROUTE_H #undef HAVE_NET_ROUTE_H
/* Define if you have cooked raw IP sockets. */ /* Define if you have cooked raw IP sockets. */
@@ -142,10 +142,10 @@
/* Define if sockaddr struct has sa_len. */ /* Define if sockaddr struct has sa_len. */
#undef HAVE_SOCKADDR_SA_LEN #undef HAVE_SOCKADDR_SA_LEN
/* Define if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
/* Define if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
/* Define if you have SNMP MIB2 STREAMS. */ /* Define if you have SNMP MIB2 STREAMS. */
@@ -154,73 +154,88 @@
/* Define if you have route(7) STREAMS. */ /* Define if you have route(7) STREAMS. */
#undef HAVE_STREAMS_ROUTE #undef HAVE_STREAMS_ROUTE
/* Define if you have the <strings.h> header file. */ /* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H #undef HAVE_STRINGS_H
/* Define if you have the <string.h> header file. */ /* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H #undef HAVE_STRING_H
/* Define if you have the `strlcat' function. */ /* Define to 1 if you have the `strlcat' function. */
#undef HAVE_STRLCAT #undef HAVE_STRLCAT
/* Define if you have the `strlcpy' function. */ /* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY #undef HAVE_STRLCPY
/* Define if you have the <stropts.h> header file. */ /* Define to 1 if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H #undef HAVE_STROPTS_H
/* Define if you have the `strsep' function. */ /* Define to 1 if you have the `strsep' function. */
#undef HAVE_STRSEP #undef HAVE_STRSEP
/* Define if you have the <sys/bufmod.h> header file. */ /* Define to 1 if you have the <sys/bufmod.h> header file. */
#undef HAVE_SYS_BUFMOD_H #undef HAVE_SYS_BUFMOD_H
/* Define if you have the <sys/dlpihdr.h> header file. */ /* Define to 1 if you have the <sys/dlpihdr.h> header file. */
#undef HAVE_SYS_DLPIHDR_H #undef HAVE_SYS_DLPIHDR_H
/* Define if you have the <sys/dlpi_ext.h> header file. */ /* Define to 1 if you have the <sys/dlpi_ext.h> header file. */
#undef HAVE_SYS_DLPI_EXT_H #undef HAVE_SYS_DLPI_EXT_H
/* Define if you have the <sys/dlpi.h> header file. */ /* Define to 1 if you have the <sys/dlpi.h> header file. */
#undef HAVE_SYS_DLPI_H #undef HAVE_SYS_DLPI_H
/* Define if you have the <sys/ioctl.h> header file. */ /* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H #undef HAVE_SYS_IOCTL_H
/* Define if you have the <sys/mib.h> header file. */ /* Define to 1 if you have the <sys/mib.h> header file. */
#undef HAVE_SYS_MIB_H #undef HAVE_SYS_MIB_H
/* Define if you have the <sys/ndd_var.h> header file. */ /* Define to 1 if you have the <sys/ndd_var.h> header file. */
#undef HAVE_SYS_NDD_VAR_H #undef HAVE_SYS_NDD_VAR_H
/* Define if you have the <sys/socket.h> header file. */ /* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H #undef HAVE_SYS_SOCKET_H
/* Define if you have the <sys/sockio.h> header file. */ /* Define to 1 if you have the <sys/sockio.h> header file. */
#undef HAVE_SYS_SOCKIO_H #undef HAVE_SYS_SOCKIO_H
/* Define if you have the <sys/stat.h> header file. */ /* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H #undef HAVE_SYS_STAT_H
/* Define if you have the <sys/sysctl.h> header file. */ /* Define to 1 if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H #undef HAVE_SYS_SYSCTL_H
/* Define if you have the <sys/time.h> header file. */ /* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H #undef HAVE_SYS_TIME_H
/* Define if you have the <sys/types.h> header file. */ /* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H #undef HAVE_SYS_TYPES_H
/* Define if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H #undef HAVE_UNISTD_H
/* Define if you have the <winsock2.h> header file. */ /* Define to 1 if you have the <winsock2.h> header file. */
#undef HAVE_WINSOCK2_H #undef HAVE_WINSOCK2_H
/* Name of package */ /* Name of package */
#undef PACKAGE #undef PACKAGE
/* Define if you have the ANSI C header files. */ /* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Version number of package */ /* Version number of package */
@@ -232,9 +247,11 @@
/* Define to empty if `const' does not conform to ANSI C. */ /* Define to empty if `const' does not conform to ANSI C. */
#undef const #undef const
/* Define as `__inline' if that's what the C compiler calls it, or to nothing /* Define to `__inline__' or `__inline' if that's what the C compiler
if it is not supported. */ calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline #undef inline
#endif
/* Define to `int' if <sys/types.h> does not define. */ /* Define to `int' if <sys/types.h> does not define. */
#undef pid_t #undef pid_t

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: dnet.h,v 1.6 2004/09/10 03:10:01 dugsong Exp $ * $Id: dnet.h 529 2004-09-10 03:10:01Z dugsong $
*/ */
#ifndef DNET_H #ifndef DNET_H

View File

@@ -1,4 +1,4 @@
## $Id: Makefile.am,v 1.5 2004/09/10 02:35:51 dugsong Exp $ ## $Id: Makefile.am 525 2004-09-10 02:35:51Z dugsong $
include $(top_srcdir)/Makefile.am.common include $(top_srcdir)/Makefile.am.common

View File

@@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am. # Makefile.in generated by automake 1.6.3 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# 2003, 2004 Free Software Foundation, Inc. # Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@@ -13,210 +13,119 @@
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@ @SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../.. top_builddir = ../..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA) INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name) transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
NORMAL_UNINSTALL = : NORMAL_UNINSTALL = :
PRE_UNINSTALL = : PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
build_triplet = @build@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
DIST_COMMON = $(dnetinclude_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/Makefile.am.common EXEEXT = @EXEEXT@
OBJEXT = @OBJEXT@
PATH_SEPARATOR = @PATH_SEPARATOR@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AWK = @AWK@
CC = @CC@
CHECKINC = @CHECKINC@
CHECKLIB = @CHECKLIB@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
EGREP = @EGREP@
F77 = @F77@
GCJ = @GCJ@
GCJFLAGS = @GCJFLAGS@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PYTHON = @PYTHON@
RANLIB = @RANLIB@
RC = @RC@
STRIP = @STRIP@
TCLINC = @TCLINC@
TCLLIB = @TCLLIB@
VERSION = @VERSION@
ac_aux_dir = @ac_aux_dir@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = foreign no-dependencies
AM_CPPFLAGS = -I$(top_srcdir)/include
dnetincludedir = $(includedir)/dnet
dnetinclude_HEADERS = addr.h arp.h blob.h eth.h fw.h icmp.h intf.h ip.h \
ip6.h os.h rand.h route.h tcp.h tun.h udp.h
subdir = include/dnet subdir = include/dnet
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
am__aclocal_m4_deps = $(top_srcdir)/config/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
depcomp = depcomp =
am__depfiles_maybe = am__depfiles_maybe =
SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(dnetincludedir)"
dnetincludeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(dnetinclude_HEADERS) HEADERS = $(dnetinclude_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKINC = @CHECKINC@
CHECKLIB = @CHECKLIB@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
GREP = @GREP@
HAVE_CHECK_FALSE = @HAVE_CHECK_FALSE@
HAVE_CHECK_TRUE = @HAVE_CHECK_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PYTHON = @PYTHON@
PYTHON_FALSE = @PYTHON_FALSE@
PYTHON_TRUE = @PYTHON_TRUE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCLINC = @TCLINC@
TCLLIB = @TCLLIB@
TCL_FALSE = @TCL_FALSE@
TCL_TRUE = @TCL_TRUE@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
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@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
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@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign no-dependencies
INCLUDES = -I$(top_srcdir)/include
DISTCLEANFILES = *~
dnetincludedir = $(includedir)/dnet
dnetinclude_HEADERS = addr.h arp.h blob.h eth.h fw.h icmp.h intf.h ip.h \
ip6.h os.h rand.h route.h tcp.h tun.h udp.h
DIST_COMMON = $(dnetinclude_HEADERS) Makefile.am Makefile.in
all: all-am all: all-am
.SUFFIXES: .SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps) $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/configure.in $(ACLOCAL_M4)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/dnet/Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --foreign include/dnet/Makefile $(AUTOMAKE) --foreign include/dnet/Makefile
.PRECIOUS: Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@@ -227,24 +136,30 @@ clean-libtool:
distclean-libtool: distclean-libtool:
-rm -f libtool -rm -f libtool
uninstall-info-am: uninstall-info-am:
dnetincludeHEADERS_INSTALL = $(INSTALL_HEADER)
install-dnetincludeHEADERS: $(dnetinclude_HEADERS) install-dnetincludeHEADERS: $(dnetinclude_HEADERS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(dnetincludedir)" || $(mkdir_p) "$(DESTDIR)$(dnetincludedir)" $(mkinstalldirs) $(DESTDIR)$(dnetincludedir)
@list='$(dnetinclude_HEADERS)'; for p in $$list; do \ @list='$(dnetinclude_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(dnetincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(dnetincludedir)/$$f'"; \ echo " $(dnetincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(dnetincludedir)/$$f"; \
$(dnetincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(dnetincludedir)/$$f"; \ $(dnetincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(dnetincludedir)/$$f; \
done done
uninstall-dnetincludeHEADERS: uninstall-dnetincludeHEADERS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(dnetinclude_HEADERS)'; for p in $$list; do \ @list='$(dnetinclude_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f '$(DESTDIR)$(dnetincludedir)/$$f'"; \ echo " rm -f $(DESTDIR)$(dnetincludedir)/$$f"; \
rm -f "$(DESTDIR)$(dnetincludedir)/$$f"; \ rm -f $(DESTDIR)$(dnetincludedir)/$$f; \
done done
ETAGS = etags
ETAGSFLAGS =
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
@@ -253,7 +168,6 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
mkid -fID $$unique mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
@@ -265,24 +179,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -z "$(ETAGS_ARGS)$$tags$$unique" \
test -n "$$unique" || unique=$$empty_fix; \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique $$tags $$unique
GTAGS: GTAGS:
@@ -291,22 +189,19 @@ GTAGS:
&& gtags -i $(GTAGS_ARGS) $$here && gtags -i $(GTAGS_ARGS) $$here
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ../..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES) distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/../.. @list='$(DISTFILES)'; for file in $$list; do \
@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; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \ dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \
else \ else \
dir=''; \ dir=''; \
fi; \ fi; \
@@ -324,10 +219,10 @@ distdir: $(DISTFILES)
check-am: all-am check-am: all-am
check: check-am check: check-am
all-am: Makefile $(HEADERS) all-am: Makefile $(HEADERS)
installdirs: installdirs:
for dir in "$(DESTDIR)$(dnetincludedir)"; do \ $(mkinstalldirs) $(DESTDIR)$(dnetincludedir)
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am install: install-am
install-exec: install-exec-am install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
@@ -339,7 +234,7 @@ install-am: all-am
installcheck: installcheck-am installcheck: installcheck-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \ `test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
@@ -347,8 +242,7 @@ mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@@ -358,7 +252,7 @@ clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \ distclean-am: clean-am distclean-generic distclean-libtool \
distclean-tags distclean-tags
@@ -366,8 +260,6 @@ dvi: dvi-am
dvi-am: dvi-am:
html: html-am
info: info-am info: info-am
info-am: info-am:
@@ -383,34 +275,25 @@ install-man:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-dnetincludeHEADERS uninstall-info-am uninstall-am: uninstall-dnetincludeHEADERS uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-libtool ctags distclean distclean-generic \ clean-libtool distclean distclean-generic distclean-libtool \
distclean-libtool distclean-tags distdir dvi dvi-am html \ distclean-tags distdir dvi dvi-am info info-am install \
html-am info info-am install install-am install-data \ install-am install-data install-data-am \
install-data-am install-dnetincludeHEADERS install-exec \ install-dnetincludeHEADERS install-exec install-exec-am \
install-exec-am install-info install-info-am install-man \ install-info install-info-am install-man install-strip \
install-strip installcheck installcheck-am installdirs \ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean maintainer-clean-generic mostlyclean \ maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean-libtool tags uninstall uninstall-am \
tags uninstall uninstall-am uninstall-dnetincludeHEADERS \ uninstall-dnetincludeHEADERS uninstall-info-am
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: addr.h,v 1.12 2003/02/27 03:44:55 dugsong Exp $ * $Id: addr.h 404 2003-02-27 03:44:55Z dugsong $
*/ */
#ifndef DNET_ADDR_H #ifndef DNET_ADDR_H

View File

@@ -6,7 +6,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: arp.h,v 1.12 2003/03/16 17:39:17 dugsong Exp $ * $Id: arp.h 416 2003-03-16 17:39:18Z dugsong $
*/ */
#ifndef DNET_ARP_H #ifndef DNET_ARP_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: blob.h,v 1.2 2002/04/05 03:06:44 dugsong Exp $ * $Id: blob.h 334 2002-04-05 03:06:44Z dugsong $
*/ */
#ifndef DNET_BLOB_H #ifndef DNET_BLOB_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: eth.h,v 1.16 2005/01/25 21:29:12 dugsong Exp $ * $Id: eth.h 547 2005-01-25 21:30:40Z dugsong $
*/ */
#ifndef DNET_ETH_H #ifndef DNET_ETH_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: fw.h,v 1.13 2002/12/14 04:02:36 dugsong Exp $ * $Id: fw.h 394 2002-12-14 04:02:36Z dugsong $
*/ */
#ifndef DNET_FW_H #ifndef DNET_FW_H

View File

@@ -6,7 +6,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: icmp.h,v 1.14 2003/03/16 17:39:17 dugsong Exp $ * $Id: icmp.h 416 2003-03-16 17:39:18Z dugsong $
*/ */
#ifndef DNET_ICMP_H #ifndef DNET_ICMP_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: intf.h,v 1.16 2004/01/13 07:41:09 dugsong Exp $ * $Id: intf.h 478 2004-01-13 07:41:09Z dugsong $
*/ */
#ifndef DNET_INTF_H #ifndef DNET_INTF_H
@@ -63,7 +63,6 @@ int intf_get_dst(intf_t *i, struct intf_entry *entry, struct addr *dst);
int intf_set(intf_t *i, const struct intf_entry *entry); int intf_set(intf_t *i, const struct intf_entry *entry);
int intf_loop(intf_t *i, intf_handler callback, void *arg); int intf_loop(intf_t *i, intf_handler callback, void *arg);
intf_t *intf_close(intf_t *i); intf_t *intf_close(intf_t *i);
__END_DECLS __END_DECLS
#endif /* DNET_INTF_H */ #endif /* DNET_INTF_H */

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: ip.h,v 1.25 2005/02/16 22:02:45 dugsong Exp $ * $Id: ip.h 594 2005-02-16 22:02:45Z dugsong $
*/ */
#ifndef DNET_IP_H #ifndef DNET_IP_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: ip6.h,v 1.6 2004/02/23 10:01:15 dugsong Exp $ * $Id: ip6.h 486 2004-02-23 10:01:15Z dugsong $
*/ */
#ifndef DNET_IP6_H #ifndef DNET_IP6_H

View File

@@ -6,7 +6,7 @@
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* Copyright (c) 1996 David Mazieres <dm@lcs.mit.edu> * Copyright (c) 1996 David Mazieres <dm@lcs.mit.edu>
* *
* $Id: rand.h,v 1.4 2002/04/07 19:01:25 dugsong Exp $ * $Id: rand.h 340 2002-04-07 19:01:25Z dugsong $
*/ */
#ifndef DNET_RAND_H #ifndef DNET_RAND_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: route.h,v 1.6 2002/02/04 04:02:22 dugsong Exp $ * $Id: route.h 260 2002-02-04 04:03:45Z dugsong $
*/ */
#ifndef DNET_ROUTE_H #ifndef DNET_ROUTE_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: tcp.h,v 1.17 2004/02/23 10:02:11 dugsong Exp $ * $Id: tcp.h 487 2004-02-23 10:02:11Z dugsong $
*/ */
#ifndef DNET_TCP_H #ifndef DNET_TCP_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: tun.h,v 1.2 2005/01/25 21:29:12 dugsong Exp $ * $Id: tun.h 547 2005-01-25 21:30:40Z dugsong $
*/ */
#ifndef DNET_TUN_H #ifndef DNET_TUN_H

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: udp.h,v 1.8 2002/04/02 05:05:39 dugsong Exp $ * $Id: udp.h 330 2002-04-02 05:05:39Z dugsong $
*/ */
#ifndef DNET_UDP_H #ifndef DNET_UDP_H

View File

@@ -225,7 +225,7 @@
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Version number of package */ /* Version number of package */
#define VERSION "1.10" #define VERSION "1.12"
/* Define for faster code generation. */ /* Define for faster code generation. */
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
@@ -272,6 +272,8 @@ int strlcpy(char *, const char *, int);
#ifndef HAVE_STRSEP #ifndef HAVE_STRSEP
char *strsep(char **, const char *); char *strsep(char **, const char *);
#endif #endif
#define snprintf _snprintf
/* Without this, Windows will give us all sorts of crap about using functions /* Without this, Windows will give us all sorts of crap about using functions
like strcpy() even if they are done safely */ like strcpy() even if they are done safely */

View File

@@ -279,10 +279,6 @@
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
> >
</Filter> </Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>

View File

@@ -1,4 +1,4 @@
## $Id: Makefile.am,v 1.16 2005/02/10 17:06:36 dugsong Exp $ ## $Id: Makefile.am 625 2006-01-19 06:11:01Z dugsong $
include $(top_srcdir)/Makefile.am.common include $(top_srcdir)/Makefile.am.common
@@ -6,8 +6,6 @@ lib_LTLIBRARIES = libdnet.la
libdnet_la_SOURCES = addr-util.c addr.c blob.c ip-util.c ip6.c rand.c libdnet_la_SOURCES = addr-util.c addr.c blob.c ip-util.c ip6.c rand.c
EXTRA_libdnet_la_SOURCES =
libdnet_la_LIBADD = @LTLIBOBJS@ libdnet_la_LIBADD = @LTLIBOBJS@
libdnet_la_LDFLAGS = -version-info 1:0:0 libdnet_la_LDFLAGS = -version-info 1:1:0

View File

@@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am. # Makefile.in generated by automake 1.6.3 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# 2003, 2004 Free Software Foundation, Inc. # Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@@ -13,257 +13,174 @@
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@ @SET_MAKE@
SHELL = @SHELL@
SOURCES = $(libdnet_la_SOURCES) $(EXTRA_libdnet_la_SOURCES)
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA) INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name) transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
NORMAL_UNINSTALL = : NORMAL_UNINSTALL = :
PRE_UNINSTALL = : PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
build_triplet = @build@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/Makefile.am.common arp-bsd.c arp-ioctl.c \ EXEEXT = @EXEEXT@
arp-none.c arp-win32.c err.c eth-bsd.c eth-dlpi.c eth-linux.c \ OBJEXT = @OBJEXT@
eth-ndd.c eth-none.c eth-pfilt.c eth-snoop.c eth-win32.c \ PATH_SEPARATOR = @PATH_SEPARATOR@
fw-none.c intf-win32.c intf.c ip-cooked.c ip-win32.c ip.c \ AMTAR = @AMTAR@
memcmp.c route-bsd.c route-hpux.c route-linux.c route-none.c \ AR = @AR@
route-win32.c strlcat.c strlcpy.c strsep.c tun-bsd.c \ AS = @AS@
tun-linux.c tun-none.c tun-solaris.c AWK = @AWK@
CC = @CC@
CHECKINC = @CHECKINC@
CHECKLIB = @CHECKLIB@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
EGREP = @EGREP@
F77 = @F77@
GCJ = @GCJ@
GCJFLAGS = @GCJFLAGS@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PYTHON = @PYTHON@
RANLIB = @RANLIB@
RC = @RC@
STRIP = @STRIP@
TCLINC = @TCLINC@
TCLLIB = @TCLLIB@
VERSION = @VERSION@
ac_aux_dir = @ac_aux_dir@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = foreign no-dependencies
AM_CPPFLAGS = -I$(top_srcdir)/include
lib_LTLIBRARIES = libdnet.la
libdnet_la_SOURCES = addr-util.c addr.c blob.c ip-util.c ip6.c rand.c
libdnet_la_LIBADD = @LTLIBOBJS@
libdnet_la_LDFLAGS = -version-info 1:1:0
subdir = src subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
am__aclocal_m4_deps = $(top_srcdir)/config/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES) LTLIBRARIES = $(lib_LTLIBRARIES)
libdnet_la_DEPENDENCIES = @LTLIBOBJS@ libdnet_la_DEPENDENCIES = @LTLIBOBJS@
am_libdnet_la_OBJECTS = addr-util.lo addr.lo blob.lo ip-util.lo ip6.lo \ am_libdnet_la_OBJECTS = addr-util.lo addr.lo blob.lo ip-util.lo ip6.lo \
rand.lo rand.lo
libdnet_la_OBJECTS = $(am_libdnet_la_OBJECTS) libdnet_la_OBJECTS = $(am_libdnet_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
depcomp = depcomp =
am__depfiles_maybe = am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@ $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libdnet_la_SOURCES) $(EXTRA_libdnet_la_SOURCES)
DIST_SOURCES = $(libdnet_la_SOURCES) $(EXTRA_libdnet_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHECKINC = @CHECKINC@ DIST_SOURCES = $(libdnet_la_SOURCES)
CHECKLIB = @CHECKLIB@ DIST_COMMON = Makefile.am Makefile.in arp-bsd.c arp-ioctl.c arp-none.c \
CPP = @CPP@ arp-win32.c err.c eth-bsd.c eth-dlpi.c eth-linux.c eth-ndd.c \
CPPFLAGS = @CPPFLAGS@ eth-none.c eth-pfilt.c eth-snoop.c eth-win32.c fw-ipchains.c \
CXX = @CXX@ fw-ipf.c fw-ipfw.c fw-none.c fw-pf.c fw-pktfilter.c \
CXXCPP = @CXXCPP@ intf-win32.c intf.c ip-cooked.c ip-win32.c ip.c memcmp.c \
CXXDEPMODE = @CXXDEPMODE@ route-bsd.c route-hpux.c route-linux.c route-none.c \
CXXFLAGS = @CXXFLAGS@ route-win32.c strlcat.c strlcpy.c strsep.c tun-bsd.c \
CYGPATH_W = @CYGPATH_W@ tun-linux.c tun-none.c tun-solaris.c
DEFS = @DEFS@ SOURCES = $(libdnet_la_SOURCES)
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
GREP = @GREP@
HAVE_CHECK_FALSE = @HAVE_CHECK_FALSE@
HAVE_CHECK_TRUE = @HAVE_CHECK_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PYTHON = @PYTHON@
PYTHON_FALSE = @PYTHON_FALSE@
PYTHON_TRUE = @PYTHON_TRUE@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCLINC = @TCLINC@
TCLLIB = @TCLLIB@
TCL_FALSE = @TCL_FALSE@
TCL_TRUE = @TCL_TRUE@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
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@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
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@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign no-dependencies
INCLUDES = -I$(top_srcdir)/include
DISTCLEANFILES = *~
lib_LTLIBRARIES = libdnet.la
libdnet_la_SOURCES = addr-util.c addr.c blob.c ip-util.c ip6.c rand.c
EXTRA_libdnet_la_SOURCES =
libdnet_la_LIBADD = @LTLIBOBJS@
libdnet_la_LDFLAGS = -version-info 1:0:0
all: all-am all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .c .lo .o .obj .SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps) $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/configure.in $(ACLOCAL_M4)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --foreign src/Makefile $(AUTOMAKE) --foreign src/Makefile
.PRECIOUS: Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
@case '$?' in \ libLTLIBRARIES_INSTALL = $(INSTALL)
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-libLTLIBRARIES: $(lib_LTLIBRARIES) install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" $(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \ if test -f $$p; then \
f=$(am__strip_dir) \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \
else :; fi; \ else :; fi; \
done done
uninstall-libLTLIBRARIES: uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \ p="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
done done
clean-libLTLIBRARIES: clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \ test -z "$dir" && dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \ echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \ rm -f "$${dir}/so_locations"; \
done done
@@ -271,19 +188,19 @@ libdnet.la: $(libdnet_la_OBJECTS) $(libdnet_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libdnet_la_LDFLAGS) $(libdnet_la_OBJECTS) $(libdnet_la_LIBADD) $(LIBS) $(LINK) -rpath $(libdir) $(libdnet_la_LDFLAGS) $(libdnet_la_OBJECTS) $(libdnet_la_LIBADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.$(OBJEXT) -rm -f *.$(OBJEXT) core *.core
distclean-compile: distclean-compile:
-rm -f *.tab.c -rm -f *.tab.c
.c.o: .c.o:
$(COMPILE) -c $< $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
.c.obj: .c.obj:
$(COMPILE) -c `$(CYGPATH_W) '$<'` $(COMPILE) -c `cygpath -w $<`
.c.lo: .c.lo:
$(LTCOMPILE) -c -o $@ $< $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@@ -295,6 +212,11 @@ distclean-libtool:
-rm -f libtool -rm -f libtool
uninstall-info-am: uninstall-info-am:
ETAGS = etags
ETAGSFLAGS =
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
@@ -303,7 +225,6 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
mkid -fID $$unique mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
@@ -315,24 +236,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -z "$(ETAGS_ARGS)$$tags$$unique" \
test -n "$$unique" || unique=$$empty_fix; \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique $$tags $$unique
GTAGS: GTAGS:
@@ -341,22 +246,19 @@ GTAGS:
&& gtags -i $(GTAGS_ARGS) $$here && gtags -i $(GTAGS_ARGS) $$here
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES) distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/.. @list='$(DISTFILES)'; for file in $$list; do \
@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; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \ dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \
else \ else \
dir=''; \ dir=''; \
fi; \ fi; \
@@ -374,10 +276,10 @@ distdir: $(DISTFILES)
check-am: all-am check-am: all-am
check: check-am check: check-am
all-am: Makefile $(LTLIBRARIES) all-am: Makefile $(LTLIBRARIES)
installdirs: installdirs:
for dir in "$(DESTDIR)$(libdir)"; do \ $(mkinstalldirs) $(DESTDIR)$(libdir)
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am install: install-am
install-exec: install-exec-am install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
@@ -389,7 +291,7 @@ install-am: all-am
installcheck: installcheck-am installcheck: installcheck-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \ `test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
@@ -397,8 +299,7 @@ mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@@ -409,7 +310,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am mostlyclean-am
distclean: distclean-am distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \ distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags distclean-libtool distclean-tags
@@ -417,8 +318,6 @@ dvi: dvi-am
dvi-am: dvi-am:
html: html-am
info: info-am info: info-am
info-am: info-am:
@@ -434,7 +333,7 @@ install-man:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am mostlyclean: mostlyclean-am
@@ -442,26 +341,17 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags distclean \ clean-libLTLIBRARIES clean-libtool distclean distclean-compile \
distclean-compile distclean-generic distclean-libtool \ distclean-generic distclean-libtool distclean-tags distdir dvi \
distclean-tags distdir dvi dvi-am html html-am info info-am \ dvi-am info info-am install install-am install-data \
install install-am install-data install-data-am install-exec \ install-data-am install-exec install-exec-am install-info \
install-exec-am install-info install-info-am \ install-info-am install-libLTLIBRARIES install-man \
install-libLTLIBRARIES install-man install-strip installcheck \ install-strip installcheck installcheck-am installdirs \
installcheck-am installdirs maintainer-clean \ maintainer-clean maintainer-clean-generic mostlyclean \
maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \ tags uninstall uninstall-am uninstall-info-am \
uninstall-libLTLIBRARIES uninstall-libLTLIBRARIES

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: addr-util.c,v 1.4 2005/01/23 07:36:54 dugsong Exp $ * $Id: addr-util.c 539 2005-01-23 07:36:54Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32

View File

@@ -5,10 +5,10 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: addr.c,v 1.33 2005/01/23 07:36:54 dugsong Exp $ * $Id: addr.c 610 2005-06-26 18:23:26Z dugsong $
*/ */
#ifdef _WIN32 #ifdef WIN32
#include "dnet_winconfig.h" #include "dnet_winconfig.h"
#else #else
#include "config.h" #include "config.h"
@@ -250,15 +250,19 @@ addr_ntos(const struct addr *a, struct sockaddr *sa)
case ADDR_TYPE_ETH: case ADDR_TYPE_ETH:
#ifdef HAVE_NET_IF_DL_H #ifdef HAVE_NET_IF_DL_H
memset(&so->sdl, 0, sizeof(so->sdl)); memset(&so->sdl, 0, sizeof(so->sdl));
#ifdef HAVE_SOCKADDR_SA_LEN # ifdef HAVE_SOCKADDR_SA_LEN
so->sdl.sdl_len = sizeof(so->sdl); so->sdl.sdl_len = sizeof(so->sdl);
#endif # endif
so->sdl.sdl_family = AF_LINK; so->sdl.sdl_family = AF_LINK;
so->sdl.sdl_alen = ETH_ADDR_LEN; so->sdl.sdl_alen = ETH_ADDR_LEN;
memcpy(LLADDR(&so->sdl), &a->addr_eth, ETH_ADDR_LEN); memcpy(LLADDR(&so->sdl), &a->addr_eth, ETH_ADDR_LEN);
#else #else
memset(sa, 0, sizeof(*sa)); memset(sa, 0, sizeof(*sa));
# ifdef AF_LINK
sa->sa_family = AF_LINK;
# else
sa->sa_family = AF_UNSPEC; sa->sa_family = AF_UNSPEC;
# endif
memcpy(sa->sa_data, &a->addr_eth, ETH_ADDR_LEN); memcpy(sa->sa_data, &a->addr_eth, ETH_ADDR_LEN);
#endif #endif
break; break;

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: arp-bsd.c,v 1.14 2005/01/23 07:36:54 dugsong Exp $ * $Id: arp-bsd.c 539 2005-01-23 07:36:54Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: arp-ioctl.c,v 1.25 2005/02/09 22:31:00 dugsong Exp $ * $Id: arp-ioctl.c 554 2005-02-09 22:31:00Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: arp-none.c,v 1.5 2002/02/02 04:15:57 dugsong Exp $ * $Id: arp-none.c 252 2002-02-02 04:15:57Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: arp-win32.c,v 1.12 2005/01/23 07:36:54 dugsong Exp $ * $Id: arp-win32.c 539 2005-01-23 07:36:54Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -12,7 +12,7 @@
#include "config.h" #include "config.h"
#endif #endif
#include <winsock2.h> #include <ws2tcpip.h>
#include <iphlpapi.h> #include <iphlpapi.h>
#include <errno.h> #include <errno.h>

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: blob.c,v 1.4 2002/08/20 05:18:49 dugsong Exp $ * $Id: blob.c 615 2006-01-08 16:06:49Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -131,8 +131,7 @@ blob_insert(blob_t *b, const void *buf, int len)
{ {
if (blob_reserve(b, len) == 0 && b->size) { if (blob_reserve(b, len) == 0 && b->size) {
if (b->end - b->off > 0) if (b->end - b->off > 0)
memmove(b->base + b->off, b->base + b->off + len, memmove( b->base + b->off + len, b->base + b->off, b->end - b->off);
b->end - b->off);
memcpy(b->base + b->off, buf, len); memcpy(b->base + b->off, buf, len);
b->off += len; b->off += len;
return (len); return (len);
@@ -146,8 +145,7 @@ blob_delete(blob_t *b, void *buf, int len)
if (b->off + len <= b->end && b->size) { if (b->off + len <= b->end && b->size) {
if (buf != NULL) if (buf != NULL)
memcpy(buf, b->base + b->off, len); memcpy(buf, b->base + b->off, len);
memmove(b->base + b->off, b->base + b->off + len, memmove(b->base + b->off, b->base + b->off + len, b->end - (b->off + len));
b->end - (b->off + len));
b->end -= len; b->end -= len;
return (len); return (len);
} }

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-bsd.c,v 1.10 2005/01/25 21:30:39 dugsong Exp $ * $Id: eth-bsd.c 630 2006-02-02 04:17:39Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-dlpi.c,v 1.19 2005/02/10 16:48:36 dugsong Exp $ * $Id: eth-dlpi.c 560 2005-02-10 16:48:36Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-linux.c,v 1.8 2005/01/25 21:30:40 dugsong Exp $ * $Id: eth-linux.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-ndd.c,v 1.7 2005/01/25 21:30:40 dugsong Exp $ * $Id: eth-ndd.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-none.c,v 1.6 2005/01/25 21:30:40 dugsong Exp $ * $Id: eth-none.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-pfilt.c,v 1.1 2005/02/10 17:06:36 dugsong Exp $ * $Id: eth-pfilt.c 563 2005-02-10 17:06:36Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-snoop.c,v 1.9 2005/01/30 06:01:57 dugsong Exp $ * $Id: eth-snoop.c 548 2005-01-30 06:01:57Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: eth-win32.c,v 1.11 2005/02/15 06:37:06 dugsong Exp $ * $Id: eth-win32.c 613 2005-09-26 02:46:57Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -12,11 +12,9 @@
#include "config.h" #include "config.h"
#endif #endif
/* XXX - VC++ 6.0 bogosity /* XXX - VC++ 6.0 bogosity */
#define sockaddr_storage sockaddr */ #define sockaddr_storage sockaddr
/* #include <Packet32.h> */ #undef sockaddr_storage
/* #undef sockaddr_storage */
/* #include <Ntddndis.h> */
#include <errno.h> #include <errno.h>
#include <stdlib.h> #include <stdlib.h>
@@ -32,31 +30,59 @@ struct eth_handle {
LPPACKET pkt; LPPACKET pkt;
}; };
struct adapter {
char name[64];
char *desc;
};
eth_t * eth_t *
eth_open(const char *device) eth_open(const char *device)
{ {
eth_t *eth; eth_t *eth;
char pname[128]; intf_t *intf;
struct intf_entry ifent;
if (eth_get_pcap_devname(device, pname, sizeof(pname)) != 0) eth_addr_t ea;
return NULL; char *p, *buf;
ULONG len;
if ((eth = calloc(1, sizeof(*eth))) == NULL)
/* Get interface entry. */
memset(&ifent, 0, sizeof(ifent));
if ((intf = intf_open()) != NULL) {
strlcpy(ifent.intf_name, device, sizeof(ifent.intf_name));
intf_get(intf, &ifent);
intf_close(intf);
}
if (ifent.intf_link_addr.addr_type != ADDR_TYPE_ETH)
return (NULL);
/* Get Packet driver adapter name/desc lists. */
buf = NULL;
PacketGetAdapterNames(buf, &len);
if (len > 0 && (buf = malloc(len)) != NULL) {
if (!PacketGetAdapterNames(buf, &len)) {
free(buf);
buf = NULL;
}
}
if (buf == NULL)
return (NULL); return (NULL);
if ((eth->lpa = PacketOpenAdapter(pname)) == NULL || /* XXX - find adapter with matching interface MAC address. */
eth->lpa->hFile == INVALID_HANDLE_VALUE) if ((eth = calloc(1, sizeof(*eth))) == NULL) {
return (eth_close(eth)); free(buf);
return (NULL);
PacketSetBuff(eth->lpa, 512000); }
for (p = buf; *p != '\0'; p += strlen(p) + 1) {
if ((eth->pkt = PacketAllocatePacket()) == NULL) if ((eth->lpa = PacketOpenAdapter(p)) != NULL) {
return (eth_close(eth)); if (eth->lpa->hFile != INVALID_HANDLE_VALUE &&
eth_get(eth, &ea) == 0 &&
memcmp(&ea, &ifent.intf_link_addr.addr_eth,
ETH_ADDR_LEN) == 0) {
PacketSetBuff(eth->lpa, 512000);
eth->pkt = PacketAllocatePacket();
break;
}
PacketCloseAdapter(eth->lpa);
}
}
free(buf);
if (eth->pkt == NULL)
eth = eth_close(eth);
return (eth); return (eth);
} }
@@ -66,7 +92,7 @@ eth_send(eth_t *eth, const void *buf, size_t len)
{ {
PacketInitPacket(eth->pkt, (void *)buf, (UINT) len); PacketInitPacket(eth->pkt, (void *)buf, (UINT) len);
PacketSendPacket(eth->lpa, eth->pkt, TRUE); PacketSendPacket(eth->lpa, eth->pkt, TRUE);
return ((ssize_t) len); return (ssize_t)(len);
} }
eth_t * eth_t *
@@ -116,17 +142,15 @@ eth_set(eth_t *eth, const eth_addr_t *ea)
return (-1); return (-1);
} }
/* Converts a dnet interface name (ifname) to its pcap equivalent, which is stored in /* Converts a dnet interface name (ifname) to its pcap equivalent, which is stored in
pcapdev (up to a length of pcapdevlen). Returns 0 and fills in pcapdev if successful. */ pcapdev (up to a length of pcapdevlen). Returns 0 and fills in pcapdev if successful. */
int eth_get_pcap_devname(const char *ifname, char *pcapdev, int pcapdevlen) { int eth_get_pcap_devname(const char *ifname, char *pcapdev, int pcapdevlen) {
int i;
intf_t *intf; intf_t *intf;
struct intf_entry ie; struct intf_entry ie;
pcap_if_t *pcapdevs; pcap_if_t *pcapdevs;
pcap_if_t *pdev; pcap_if_t *pdev;
char pname[128]; char pname[128];
struct sockaddr_in devip;
pcap_addr_t *pa;
if ((intf = intf_open()) == NULL) if ((intf = intf_open()) == NULL)
return -1; return -1;
@@ -145,42 +169,11 @@ int eth_get_pcap_devname(const char *ifname, char *pcapdev, int pcapdevlen) {
that was unrelaible because dnet and pcap sometimes give different descriptions. For example, that was unrelaible because dnet and pcap sometimes give different descriptions. For example,
dnet gave me "AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport" for one of my dnet gave me "AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport" for one of my
adapters (in vmware), while pcap described it as "VMware Accelerated AMD PCNet Adapter (Microsoft's adapters (in vmware), while pcap described it as "VMware Accelerated AMD PCNet Adapter (Microsoft's
Packet Scheduler)". Plus, Packet* functions aren't really supported for external use by the Packet Scheduler)". Then IP addresses used to be compared, but that proved to be unreliable
WinPcap folks. So I have rewritten this to compare interface addresses (which has its own as well. Now we compare hardware addresses much like eth_open() does */
problems -- what if you want to listen an an interface with no IP address set?) --Fyodor */
if (pcap_findalldevs(&pcapdevs, NULL) == -1) if (pcap_findalldevs(&pcapdevs, NULL) == -1)
return -1; return -1;
for(pdev=pcapdevs; pdev && !pname[0]; pdev = pdev->next) {
for (pa=pdev->addresses; pa && !pname[0]; pa = pa->next) {
if (pa->addr->sa_family != AF_INET)
continue;
/* Match this address of pdev against all the addresses of ie.
i == -1 tests against the primary address of the interface.
i >= 0 tests against alias addresses. */
for (i = -1; i < (int) ie.intf_alias_num; i++) {
if (i == -1) {
if (ie.intf_addr.addr_type != ADDR_TYPE_IP)
continue;
addr_ntos(&ie.intf_addr, (struct sockaddr *) &devip);
} else {
if (ie.intf_alias_addrs[i].addr_type != ADDR_TYPE_IP)
continue;
addr_ntos(&ie.intf_alias_addrs[i], (struct sockaddr *) &devip);
}
if (((struct sockaddr_in *)pa->addr)->sin_addr.s_addr == devip.sin_addr.s_addr) {
/* Found it -- Yay! */
strlcpy(pname, pdev->name, sizeof(pname));
/* Assigning pname[0] breaks out of the outer loops too. */
break;
}
}
}
}
/* If matching IP addresses didn't work, try matching hardware
addresses. This is adapted from libdnet 1.11. */
if (pname[0] == '\0' && ie.intf_link_addr.addr_type == ADDR_TYPE_ETH) { if (pname[0] == '\0' && ie.intf_link_addr.addr_type == ADDR_TYPE_ETH) {
for(pdev=pcapdevs; pdev && !pname[0]; pdev = pdev->next) { for(pdev=pcapdevs; pdev && !pname[0]; pdev = pdev->next) {
eth_t eth; eth_t eth;

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: fw-none.c,v 1.4 2002/01/20 21:23:28 dugsong Exp $ * $Id: fw-none.c 208 2002-01-20 21:23:28Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -1,394 +1,386 @@
/* /*
* intf-win32.c * intf-win32.c
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: intf-win32.c,v 1.24 2005/02/15 06:37:06 dugsong Exp $ * $Id: intf-win32.c 632 2006-08-10 04:36:52Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
#include "dnet_winconfig.h" #include "dnet_winconfig.h"
#else #else
#include "config.h" #include "config.h"
#endif #endif
#include <winsock2.h> #include <iphlpapi.h>
#include <windows.h>
#include <iphlpapi.h> #include <ctype.h>
#include <errno.h>
#include <dnet.h> #include <stdio.h>
#include <ctype.h> #include <stdlib.h>
#include <errno.h> #include <string.h>
#include <stdio.h>
#include <stdlib.h> #include "dnet.h"
#include <string.h>
struct ifcombo {
#include "pcap.h" DWORD *idx;
int cnt;
struct ifcombo { int max;
DWORD *idx; };
int cnt;
int max; /* XXX - ipifcons.h incomplete, use IANA ifTypes MIB */
}; #define MIB_IF_TYPE_TUNNEL 131
#define MIB_IF_TYPE_MAX MAX_IF_TYPE
#define MIB_IF_TYPE_MAX MAX_IF_TYPE /* XXX - ipifcons.h */
struct intf_handle {
struct intf_handle { struct ifcombo ifcombo[MIB_IF_TYPE_MAX];
struct ifcombo ifcombo[MIB_IF_TYPE_MAX]; MIB_IFTABLE *iftable;
MIB_IFTABLE *iftable; MIB_IPADDRTABLE *iptable;
MIB_IPADDRTABLE *iptable; };
};
static char *
static char * _ifcombo_name(int type)
_ifcombo_name(int type) {
{ char *name = "eth"; /* XXX */
/* Unknown interface types get the prefix "net". */
char *name = "net"; if (type == MIB_IF_TYPE_TOKENRING) {
name = "tr";
if (type == MIB_IF_TYPE_ETHERNET || type == IF_TYPE_IEEE80211) { } else if (type == MIB_IF_TYPE_FDDI) {
/* INTF_TYPE_IEEE80211 is used for wireless devices on name = "fddi";
Windows Vista. */ } else if (type == MIB_IF_TYPE_PPP) {
name = "eth"; name = "ppp";
} else if (type == MIB_IF_TYPE_TOKENRING) { } else if (type == MIB_IF_TYPE_LOOPBACK) {
name = "tr"; name = "lo";
} else if (type == MIB_IF_TYPE_FDDI) { } else if (type == MIB_IF_TYPE_SLIP) {
name = "fddi"; name = "sl";
} else if (type == MIB_IF_TYPE_PPP) { } else if (type == MIB_IF_TYPE_TUNNEL) {
name = "ppp"; name = "tun";
} else if (type == MIB_IF_TYPE_LOOPBACK) { }
name = "lo"; return (name);
} else if (type == MIB_IF_TYPE_SLIP) { }
name = "sl";
} static int
return (name); _ifcombo_type(const char *device)
} {
int type = INTF_TYPE_OTHER;
/* Return a canonical internal interface type number for the given
* device string. */ if (strncmp(device, "eth", 3) == 0) {
static int type = INTF_TYPE_ETH;
_ifcombo_type(const char *device) } else if (strncmp(device, "tr", 2) == 0) {
{ type = INTF_TYPE_TOKENRING;
/* Unknown device names (like "net") get mapped to INTF_TYPE_OTHER. */ } else if (strncmp(device, "fd", 2) == 0) {
int type = INTF_TYPE_OTHER; type = INTF_TYPE_FDDI;
} else if (strncmp(device, "ppp", 3) == 0) {
if (strncmp(device, "eth", 3) == 0) { type = INTF_TYPE_PPP;
type = INTF_TYPE_ETH; } else if (strncmp(device, "lo", 2) == 0) {
} else if (strncmp(device, "tr", 2) == 0) { type = INTF_TYPE_LOOPBACK;
type = INTF_TYPE_TOKENRING; } else if (strncmp(device, "sl", 2) == 0) {
} else if (strncmp(device, "fd", 2) == 0) { type = INTF_TYPE_SLIP;
type = INTF_TYPE_FDDI; } else if (strncmp(device, "tun", 3) == 0) {
} else if (strncmp(device, "ppp", 3) == 0) { type = INTF_TYPE_TUN;
type = INTF_TYPE_PPP; }
} else if (strncmp(device, "lo", 2) == 0) { return (type);
type = INTF_TYPE_LOOPBACK; }
} else if (strncmp(device, "sl", 2) == 0) {
type = INTF_TYPE_SLIP; static void
} _ifcombo_add(struct ifcombo *ifc, DWORD idx)
return (type); {
} if (ifc->cnt == ifc->max) {
if (ifc->idx) {
/* Map an MIB_IFROW.dwType interface type into an internal interface ifc->max *= 2;
type. The internal types are never exposed to users of this library; ifc->idx = realloc(ifc->idx,
they exist only for the sake of ordering interface types within an sizeof(ifc->idx[0]) * ifc->max);
intf_handle, which has an array of ifcombo structures ordered by } else {
type. Entries in an intf_handle must not be stored or accessed by a ifc->max = 8;
raw MIB_IFROW.dwType number because they will not be able to be found ifc->idx = malloc(sizeof(ifc->idx[0]) * ifc->max);
by a device name such as "net0" if the device name does not map }
exactly to the dwType. */ }
static int ifc->idx[ifc->cnt++] = idx;
_if_type_canonicalize(int type) }
{
return _ifcombo_type(_ifcombo_name(type)); /* Map an MIB_IFROW.dwType interface type into an internal interface
} type. The internal types are never exposed to users of this library;
they exist only for the sake of ordering interface types within an
static void intf_handle, which has an array of ifcombo structures ordered by
_ifcombo_add(struct ifcombo *ifc, DWORD idx) type. Entries in an intf_handle must not be stored or accessed by a
{ raw MIB_IFROW.dwType number because they will not be able to be found
if (ifc->cnt == ifc->max) { by a device name such as "net0" if the device name does not map
if (ifc->idx) { exactly to the dwType. */
ifc->max *= 2; static int
ifc->idx = realloc(ifc->idx, _if_type_canonicalize(int type)
sizeof(ifc->idx[0]) * ifc->max); {
} else { return _ifcombo_type(_ifcombo_name(type));
ifc->max = 8; }
ifc->idx = malloc(sizeof(ifc->idx[0]) * ifc->max);
} static void
} _ifrow_to_entry(intf_t *intf, MIB_IFROW *ifrow, struct intf_entry *entry)
ifc->idx[ifc->cnt++] = idx; {
} struct addr *ap, *lap;
int i;
static void int type;
_ifrow_to_entry(intf_t *intf, MIB_IFROW *ifrow, struct intf_entry *entry)
{ /* The total length of the entry may be passed inside entry.
struct addr *ap, *lap; Remember it and clear the entry. */
int i; u_int intf_len = entry->intf_len;
int type; memset(entry, 0, sizeof(*entry));
entry->intf_len = intf_len;
/* The total length of the entry may be passed in inside entry.
Remember it and clear the entry. */ type = _if_type_canonicalize(ifrow->dwType);
u_int intf_len = entry->intf_len; for (i = 0; i < intf->ifcombo[type].cnt; i++) {
memset(entry, 0, sizeof(*entry)); if (intf->ifcombo[type].idx[i] == ifrow->dwIndex)
/* Restore the length. */ break;
entry->intf_len = intf_len; }
/* XXX - type matches MIB-II ifType. */
type = _if_type_canonicalize(ifrow->dwType); snprintf(entry->intf_name, sizeof(entry->intf_name), "%s%lu",
for (i = 0; i < intf->ifcombo[type].cnt; i++) { _ifcombo_name(type), i);
if (intf->ifcombo[type].idx[i] == ifrow->dwIndex) entry->intf_type = (uint16_t)type;
break;
} /* Get interface flags. */
/* XXX - type matches MIB-II ifType. */ entry->intf_flags = 0;
snprintf(entry->intf_name, sizeof(entry->intf_name), "%s%lu", if (ifrow->dwAdminStatus == MIB_IF_ADMIN_STATUS_UP &&
_ifcombo_name(type), i); (ifrow->dwOperStatus == MIB_IF_OPER_STATUS_OPERATIONAL ||
entry->intf_type = (uint16_t)type; ifrow->dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED))
entry->intf_flags |= INTF_FLAG_UP;
/* Get interface flags. */ if (ifrow->dwType == MIB_IF_TYPE_LOOPBACK)
entry->intf_flags = 0; entry->intf_flags |= INTF_FLAG_LOOPBACK;
if (ifrow->dwAdminStatus == MIB_IF_ADMIN_STATUS_UP && else
(ifrow->dwOperStatus == MIB_IF_OPER_STATUS_OPERATIONAL || entry->intf_flags |= INTF_FLAG_MULTICAST;
ifrow->dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED))
entry->intf_flags |= INTF_FLAG_UP; /* Get interface MTU. */
if (ifrow->dwType == MIB_IF_TYPE_LOOPBACK) entry->intf_mtu = ifrow->dwMtu;
entry->intf_flags |= INTF_FLAG_LOOPBACK;
else /* Get hardware address. */
entry->intf_flags |= INTF_FLAG_MULTICAST; if (ifrow->dwPhysAddrLen == ETH_ADDR_LEN) {
entry->intf_link_addr.addr_type = ADDR_TYPE_ETH;
/* Get interface MTU. */ entry->intf_link_addr.addr_bits = ETH_ADDR_BITS;
entry->intf_mtu = ifrow->dwMtu; memcpy(&entry->intf_link_addr.addr_eth, ifrow->bPhysAddr,
ETH_ADDR_LEN);
/* Get hardware address. */ }
if (ifrow->dwPhysAddrLen == ETH_ADDR_LEN) { /* Get addresses. */
entry->intf_link_addr.addr_type = ADDR_TYPE_ETH; ap = entry->intf_alias_addrs;
entry->intf_link_addr.addr_bits = ETH_ADDR_BITS; lap = ap + ((entry->intf_len - sizeof(*entry)) /
memcpy(&entry->intf_link_addr.addr_eth, ifrow->bPhysAddr, sizeof(entry->intf_alias_addrs[0]));
ETH_ADDR_LEN); for (i = 0; i < (int)intf->iptable->dwNumEntries; i++) {
} if (intf->iptable->table[i].dwIndex == ifrow->dwIndex &&
/* Get addresses. */ intf->iptable->table[i].dwAddr != 0) {
ap = entry->intf_alias_addrs; if (entry->intf_addr.addr_type == ADDR_TYPE_NONE) {
lap = ap + ((entry->intf_len - sizeof(*entry)) / /* Set primary address if unset. */
sizeof(entry->intf_alias_addrs[0])); entry->intf_addr.addr_type = ADDR_TYPE_IP;
for (i = 0; i < (int)intf->iptable->dwNumEntries; i++) { entry->intf_addr.addr_ip =
if (intf->iptable->table[i].dwIndex == ifrow->dwIndex && intf->iptable->table[i].dwAddr;
intf->iptable->table[i].dwAddr != 0) { addr_mtob(&intf->iptable->table[i].dwMask,
if (entry->intf_addr.addr_type == ADDR_TYPE_NONE) { IP_ADDR_LEN, &entry->intf_addr.addr_bits);
/* Set primary address if unset. */ } else if (ap < lap) {
entry->intf_addr.addr_type = ADDR_TYPE_IP; /* Set aliases. */
entry->intf_addr.addr_ip = ap->addr_type = ADDR_TYPE_IP;
intf->iptable->table[i].dwAddr; ap->addr_ip = intf->iptable->table[i].dwAddr;
addr_mtob(&intf->iptable->table[i].dwMask, addr_mtob(&intf->iptable->table[i].dwMask,
IP_ADDR_LEN, &entry->intf_addr.addr_bits); IP_ADDR_LEN, &ap->addr_bits);
} else if (ap < lap) { ap++, entry->intf_alias_num++;
/* Set aliases. */ }
ap->addr_type = ADDR_TYPE_IP; }
ap->addr_ip = intf->iptable->table[i].dwAddr; }
addr_mtob(&intf->iptable->table[i].dwMask, entry->intf_len = (u_int) ((u_char *)ap - (u_char *)entry);
IP_ADDR_LEN, &ap->addr_bits); }
ap++, entry->intf_alias_num++;
} static int
} _refresh_tables(intf_t *intf)
} {
entry->intf_len = (unsigned int) ((u_char *)ap - (u_char *)entry); MIB_IFROW *ifrow;
} ULONG len;
u_int i, ret;
static int
_refresh_tables(intf_t *intf) /* Get interface table. */
{ for (len = sizeof(intf->iftable[0]); ; ) {
MIB_IFROW *ifrow; if (intf->iftable)
ULONG len; free(intf->iftable);
u_int i, ret; intf->iftable = malloc(len);
ret = GetIfTable(intf->iftable, &len, FALSE);
/* Get interface table. */ if (ret == NO_ERROR)
for (len = sizeof(intf->iftable[0]); ; ) { break;
if (intf->iftable) else if (ret != ERROR_INSUFFICIENT_BUFFER)
free(intf->iftable); return (-1);
intf->iftable = malloc(len); }
ret = GetIfTable(intf->iftable, &len, FALSE); /* Get IP address table. */
if (ret == NO_ERROR) for (len = sizeof(intf->iptable[0]); ; ) {
break; if (intf->iptable)
else if (ret != ERROR_INSUFFICIENT_BUFFER) free(intf->iptable);
return (-1); intf->iptable = malloc(len);
} ret = GetIpAddrTable(intf->iptable, &len, FALSE);
/* Get IP address table. */ if (ret == NO_ERROR)
for (len = sizeof(intf->iptable[0]); ; ) { break;
if (intf->iptable) else if (ret != ERROR_INSUFFICIENT_BUFFER)
free(intf->iptable); return (-1);
intf->iptable = malloc(len); }
ret = GetIpAddrTable(intf->iptable, &len, FALSE); /*
if (ret == NO_ERROR) * Map "unfriendly" win32 interface indices to ours.
break; * XXX - like IP_ADAPTER_INFO ComboIndex
else if (ret != ERROR_INSUFFICIENT_BUFFER) */
return (-1); for (i = 0; i < intf->iftable->dwNumEntries; i++) {
} int type;
/* ifrow = &intf->iftable->table[i];
* Map "unfriendly" win32 interface indices to ours. type = _if_type_canonicalize(ifrow->dwType);
* XXX - like IP_ADAPTER_INFO ComboIndex if (type < MIB_IF_TYPE_MAX) {
*/ _ifcombo_add(&intf->ifcombo[type], ifrow->dwIndex);
for (i = 0; i < intf->iftable->dwNumEntries; i++) { } else
int type; return (-1);
ifrow = &intf->iftable->table[i]; }
type = _if_type_canonicalize(ifrow->dwType); return (0);
if (type < MIB_IF_TYPE_MAX) { }
_ifcombo_add(&intf->ifcombo[type],
ifrow->dwIndex); static int
} else _find_ifindex(intf_t *intf, const char *device)
return (-1); {
} char *p = (char *)device;
return (0); int n, type = _ifcombo_type(device);
}
while (isalpha(*p)) p++;
static int n = atoi(p);
_find_ifindex(intf_t *intf, const char *device)
{ return (intf->ifcombo[type].idx[n]);
char *p = (char *)device; }
int n, type = _ifcombo_type(device);
intf_t *
while (isalpha(*p)) p++; intf_open(void)
n = atoi(p); {
return (calloc(1, sizeof(intf_t)));
return (intf->ifcombo[type].idx[n]); }
}
int
intf_t * intf_get(intf_t *intf, struct intf_entry *entry)
intf_open(void) {
{ MIB_IFROW ifrow;
return (calloc(1, sizeof(intf_t)));
} if (_refresh_tables(intf) < 0)
return (-1);
int
intf_get(intf_t *intf, struct intf_entry *entry) ifrow.dwIndex = _find_ifindex(intf, entry->intf_name);
{
MIB_IFROW ifrow; if (GetIfEntry(&ifrow) != NO_ERROR)
return (-1);
if (_refresh_tables(intf) < 0)
return (-1); _ifrow_to_entry(intf, &ifrow, entry);
ifrow.dwIndex = _find_ifindex(intf, entry->intf_name); return (0);
}
if (GetIfEntry(&ifrow) != NO_ERROR)
return (-1); int
intf_get_src(intf_t *intf, struct intf_entry *entry, struct addr *src)
_ifrow_to_entry(intf, &ifrow, entry); {
MIB_IFROW ifrow;
return (0); MIB_IPADDRROW *iprow;
} int i;
if (src->addr_type != ADDR_TYPE_IP) {
int errno = EINVAL;
intf_get_src(intf_t *intf, struct intf_entry *entry, struct addr *src) return (-1);
{ }
MIB_IFROW ifrow; if (_refresh_tables(intf) < 0)
MIB_IPADDRROW *iprow; return (-1);
int i;
for (i = 0; i < (int)intf->iptable->dwNumEntries; i++) {
if (src->addr_type != ADDR_TYPE_IP) { iprow = &intf->iptable->table[i];
errno = EINVAL; if (iprow->dwAddr == src->addr_ip) {
return (-1); ifrow.dwIndex = iprow->dwIndex;
} if (GetIfEntry(&ifrow) != NO_ERROR)
if (_refresh_tables(intf) < 0) return (-1);
return (-1); _ifrow_to_entry(intf, &ifrow, entry);
return (0);
for (i = 0; i < (int)intf->iptable->dwNumEntries; i++) { }
iprow = &intf->iptable->table[i]; }
if (iprow->dwAddr == src->addr_ip) { errno = ENXIO;
ifrow.dwIndex = iprow->dwIndex; return (-1);
if (GetIfEntry(&ifrow) != NO_ERROR) }
return (-1);
_ifrow_to_entry(intf, &ifrow, entry); int
return (0); intf_get_dst(intf_t *intf, struct intf_entry *entry, struct addr *dst)
} {
} MIB_IFROW ifrow;
errno = ENXIO;
return (-1); if (dst->addr_type != ADDR_TYPE_IP) {
} errno = EINVAL;
return (-1);
int }
intf_get_dst(intf_t *intf, struct intf_entry *entry, struct addr *dst) if (GetBestInterface(dst->addr_ip, &ifrow.dwIndex) != NO_ERROR)
{ return (-1);
MIB_IFROW ifrow;
if (GetIfEntry(&ifrow) != NO_ERROR)
if (dst->addr_type != ADDR_TYPE_IP) { return (-1);
errno = EINVAL;
return (-1); if (_refresh_tables(intf) < 0)
} return (-1);
if (GetBestInterface(dst->addr_ip, &ifrow.dwIndex) != NO_ERROR)
return (-1); _ifrow_to_entry(intf, &ifrow, entry);
if (GetIfEntry(&ifrow) != NO_ERROR) return (0);
return (-1); }
if (_refresh_tables(intf) < 0) int
return (-1); intf_set(intf_t *intf, const struct intf_entry *entry)
{
_ifrow_to_entry(intf, &ifrow, entry); /*
* XXX - could set interface up/down via SetIfEntry(),
return (0); * but what about the rest of the configuration? :-(
} * {Add,Delete}IPAddress for 2000/XP only
*/
int #if 0
intf_set(intf_t *intf, const struct intf_entry *entry) /* Set interface address. XXX - 2000/XP only? */
{ if (entry->intf_addr.addr_type == ADDR_TYPE_IP) {
/* ULONG ctx = 0, inst = 0;
* XXX - could set interface up/down via SetIfEntry(), UINT ip, mask;
* but what about the rest of the configuration? :-(
* {Add,Delete}IPAddress for 2000/XP only memcpy(&ip, &entry->intf_addr.addr_ip, IP_ADDR_LEN);
*/ addr_btom(entry->intf_addr.addr_bits, &mask, IP_ADDR_LEN);
#if 0
/* Set interface address. XXX - 2000/XP only? */ if (AddIPAddress(ip, mask,
if (entry->intf_addr.addr_type == ADDR_TYPE_IP) { _find_ifindex(intf, entry->intf_name),
ULONG ctx = 0, inst = 0; &ctx, &inst) != NO_ERROR) {
UINT ip, mask; return (-1);
}
memcpy(&ip, &entry->intf_addr.addr_ip, IP_ADDR_LEN); return (0);
addr_btom(entry->intf_addr.addr_bits, &mask, IP_ADDR_LEN); }
#endif
if (AddIPAddress(ip, mask, errno = ENOSYS;
_find_ifindex(intf, entry->intf_name), SetLastError(ERROR_NOT_SUPPORTED);
&ctx, &inst) != NO_ERROR) { return (-1);
return (-1); }
}
return (0); int
} intf_loop(intf_t *intf, intf_handler callback, void *arg)
#endif {
errno = ENOSYS; struct intf_entry *entry;
SetLastError(ERROR_NOT_SUPPORTED); u_char ebuf[1024];
return (-1); int i, ret = 0;
}
if (_refresh_tables(intf) < 0)
int return (-1);
intf_loop(intf_t *intf, intf_handler callback, void *arg)
{ entry = (struct intf_entry *)ebuf;
struct intf_entry *entry;
u_char ebuf[1024]; for (i = 0; i < (int)intf->iftable->dwNumEntries; i++) {
int i, ret = 0; entry->intf_len = sizeof(ebuf);
_ifrow_to_entry(intf, &intf->iftable->table[i], entry);
if (_refresh_tables(intf) < 0) if ((ret = (*callback)(entry, arg)) != 0)
return (-1); break;
}
entry = (struct intf_entry *)ebuf; return (ret);
}
for (i = 0; i < (int)intf->iftable->dwNumEntries; i++) {
entry->intf_len = sizeof(ebuf); intf_t *
_ifrow_to_entry(intf, &intf->iftable->table[i], entry); intf_close(intf_t *intf)
if ((ret = (*callback)(entry, arg)) != 0) {
break; int i;
}
return (ret); if (intf != NULL) {
} for (i = 0; i < MIB_IF_TYPE_MAX; i++) {
if (intf->ifcombo[i].idx)
intf_t * free(intf->ifcombo[i].idx);
intf_close(intf_t *intf) }
{ if (intf->iftable)
int i; free(intf->iftable);
if (intf->iptable)
if (intf != NULL) { free(intf->iptable);
for (i = 0; i < MIB_IF_TYPE_MAX; i++) { free(intf);
if (intf->ifcombo[i].idx) }
free(intf->ifcombo[i].idx); return (NULL);
} }
if (intf->iftable)
free(intf->iftable);
if (intf->iptable)
free(intf->iptable);
free(intf);
}
return (NULL);
}

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: intf.c,v 1.55 2005/02/10 16:57:35 dugsong Exp $ * $Id: intf.c 616 2006-01-09 07:09:49Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -124,15 +124,16 @@ intf_open(void)
{ {
intf_t *intf; intf_t *intf;
int one = 1; int one = 1;
if ((intf = calloc(1, sizeof(*intf))) != NULL) { if ((intf = calloc(1, sizeof(*intf))) != NULL) {
intf->fd = intf->fd6 = -1; intf->fd = intf->fd6 = -1;
if ((intf->fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) if ((intf->fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
return (intf_close(intf)); return (intf_close(intf));
setsockopt(intf->fd, SOL_SOCKET, SO_BROADCAST, setsockopt(intf->fd, SOL_SOCKET, SO_BROADCAST,
(const char *) &one, sizeof(one)); (const char *) &one, sizeof(one));
#ifdef SIOCGIFNETMASK_IN6 #ifdef SIOCGIFNETMASK_IN6
if ((intf->fd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { if ((intf->fd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
# ifdef EPROTONOSUPPORT # ifdef EPROTONOSUPPORT
@@ -398,7 +399,7 @@ _intf_get_noalias(intf_t *intf, struct intf_entry *entry)
_intf_set_type(entry); _intf_set_type(entry);
/* Get interface MTU. */ /* Get interface MTU. */
#ifdef SIOCGIFMTU #ifdef SIOCSIFMTU
if (ioctl(intf->fd, SIOCGIFMTU, &ifr) < 0) if (ioctl(intf->fd, SIOCGIFMTU, &ifr) < 0)
#endif #endif
return (-1); return (-1);
@@ -506,14 +507,16 @@ _intf_get_aliases(intf_t *intf, struct intf_entry *entry)
*p = '\0'; *p = '\0';
if (strcmp(ifr->ifr_name, entry->intf_name) != 0) { if (strcmp(ifr->ifr_name, entry->intf_name) != 0) {
if (p) *p = ':'; if (p) *p = ':';
continue; continue;
} }
if (p) *p = ':'; /* Fix the name back up */ /* Fix the name back up */
if (p) *p = ':';
if (addr_ston(&ifr->ifr_addr, ap) < 0) if (addr_ston(&ifr->ifr_addr, ap) < 0)
continue; continue;
/* XXX */ /* XXX */
if (ap->addr_type == ADDR_TYPE_ETH) { if (ap->addr_type == ADDR_TYPE_ETH) {
memcpy(&entry->intf_link_addr, ap, sizeof(*ap)); memcpy(&entry->intf_link_addr, ap, sizeof(*ap));
@@ -522,11 +525,9 @@ _intf_get_aliases(intf_t *intf, struct intf_entry *entry)
if (ap->addr_ip == entry->intf_addr.addr_ip || if (ap->addr_ip == entry->intf_addr.addr_ip ||
ap->addr_ip == entry->intf_dst_addr.addr_ip) ap->addr_ip == entry->intf_dst_addr.addr_ip)
continue; continue;
strlcpy(tmpifr.ifr_name, ifr->ifr_name, strlcpy(tmpifr.ifr_name, ifr->ifr_name, sizeof(tmpifr.ifr_name));
sizeof(tmpifr.ifr_name));
if (ioctl(intf->fd, SIOCGIFNETMASK, &tmpifr) == 0) if (ioctl(intf->fd, SIOCGIFNETMASK, &tmpifr) == 0)
addr_stob(&tmpifr.ifr_addr, &ap->addr_bits); addr_stob(&tmpifr.ifr_addr, &ap->addr_bits);
} }
#ifdef SIOCGIFNETMASK_IN6 #ifdef SIOCGIFNETMASK_IN6
else if (ap->addr_type == ADDR_TYPE_IP6 && intf->fd6 != -1) { else if (ap->addr_type == ADDR_TYPE_IP6 && intf->fd6 != -1) {
@@ -544,6 +545,30 @@ _intf_get_aliases(intf_t *intf, struct intf_entry *entry)
#endif #endif
ap++, entry->intf_alias_num++; ap++, entry->intf_alias_num++;
} }
#ifdef HAVE_LINUX_PROCFS
#define PROC_INET6_FILE "/proc/net/if_inet6"
{
FILE *f;
char buf[256], s[8][5], name[INTF_NAME_LEN];
u_int idx, bits, scope, flags;
if ((f = fopen(PROC_INET6_FILE, "r")) != NULL) {
while (ap < lap &&
fgets(buf, sizeof(buf), f) != NULL) {
sscanf(buf, "%04s%04s%04s%04s%04s%04s%04s%04s %02x %02x %02x %02x %32s\n",
s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7],
&idx, &bits, &scope, &flags, name);
if (strcmp(name, entry->intf_name) == 0) {
snprintf(buf, sizeof(buf), "%s:%s:%s:%s:%s:%s:%s:%s/%d",
s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], bits);
addr_aton(buf, ap);
ap++, entry->intf_alias_num++;
}
}
fclose(f);
}
}
#endif
entry->intf_len = (u_char *)ap - (u_char *)entry; entry->intf_len = (u_char *)ap - (u_char *)entry;
return (0); return (0);
@@ -568,28 +593,27 @@ intf_get(intf_t *intf, struct intf_entry *entry)
static int static int
_match_intf_src(const struct intf_entry *entry, void *arg) _match_intf_src(const struct intf_entry *entry, void *arg)
{ {
int matched = 0;
int cnt;
struct intf_entry *save = (struct intf_entry *)arg; struct intf_entry *save = (struct intf_entry *)arg;
int matched = 0, cnt;
if (entry->intf_addr.addr_type == ADDR_TYPE_IP && if (entry->intf_addr.addr_type == ADDR_TYPE_IP &&
entry->intf_addr.addr_ip == save->intf_addr.addr_ip) entry->intf_addr.addr_ip == save->intf_addr.addr_ip)
matched = 1; matched = 1;
for (cnt = 0; !matched && cnt < (int) entry->intf_alias_num; cnt++) { for (cnt = 0; !matched && cnt < (int) entry->intf_alias_num; cnt++) {
if (entry->intf_alias_addrs[cnt].addr_type != ADDR_TYPE_IP) if (entry->intf_alias_addrs[cnt].addr_type != ADDR_TYPE_IP)
continue; continue;
if (entry->intf_alias_addrs[cnt].addr_ip == save->intf_addr.addr_ip) if (entry->intf_alias_addrs[cnt].addr_ip == save->intf_addr.addr_ip)
matched = 1; matched = 1;
} }
if (matched) { if (matched) {
/* XXX - truncated result if entry is too small. */ /* XXX - truncated result if entry is too small. */
if (save->intf_len < entry->intf_len) if (save->intf_len < entry->intf_len)
memcpy(save, entry, save->intf_len); memcpy(save, entry, save->intf_len);
else else
memcpy(save, entry, entry->intf_len); memcpy(save, entry, entry->intf_len);
return (1); return (1);
} }
return (0); return (0);
} }
@@ -712,7 +736,7 @@ intf_loop(intf_t *intf, intf_handler callback, void *arg)
*p = '\0'; *p = '\0';
if (pifr != NULL && strcmp(ifr->ifr_name, pifr->ifr_name) == 0) { if (pifr != NULL && strcmp(ifr->ifr_name, pifr->ifr_name) == 0) {
if (p) *p = ':'; if (p) *p = ':';
continue; continue;
} }
@@ -720,9 +744,10 @@ intf_loop(intf_t *intf, intf_handler callback, void *arg)
strlcpy(entry->intf_name, ifr->ifr_name, strlcpy(entry->intf_name, ifr->ifr_name,
sizeof(entry->intf_name)); sizeof(entry->intf_name));
entry->intf_len = sizeof(ebuf); entry->intf_len = sizeof(ebuf);
/* Repair the alias name back up. */ /* Repair the alias name back up */
if (p) *p = ':'; if (p) *p = ':';
if (_intf_get_noalias(intf, entry) < 0) if (_intf_get_noalias(intf, entry) < 0)
return (-1); return (-1);
if (_intf_get_aliases(intf, entry) < 0) if (_intf_get_aliases(intf, entry) < 0)

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: ip-cooked.c,v 1.17 2005/01/25 21:30:40 dugsong Exp $ * $Id: ip-cooked.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: ip-util.c,v 1.9 2005/02/17 02:55:56 dugsong Exp $ * $Id: ip-util.c 595 2005-02-17 02:55:56Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -40,10 +40,10 @@ ip_add_option(void *buf, size_t len, int proto,
hl = tcp->th_off << 2; hl = tcp->th_off << 2;
p = (u_char *)tcp + hl; p = (u_char *)tcp + hl;
} }
datalen = ntohs(ip->ip_len) - (int) (p - (u_char *)buf); datalen = (int) (ntohs(ip->ip_len) - (p - (u_char *)buf));
/* Compute padding to next word boundary. */ /* Compute padding to next word boundary. */
if ((padlen = (int) (4 - (optlen % 4))) == 4) if ((padlen = 4 - (optlen % 4)) == 4)
padlen = 0; padlen = 0;
/* XXX - IP_HDR_LEN_MAX == TCP_HDR_LEN_MAX */ /* XXX - IP_HDR_LEN_MAX == TCP_HDR_LEN_MAX */
@@ -70,13 +70,13 @@ ip_add_option(void *buf, size_t len, int proto,
optlen += padlen; optlen += padlen;
if (proto == IP_PROTO_IP) if (proto == IP_PROTO_IP)
ip->ip_hl = (uint8_t) (p - (u_char *)ip) >> 2; ip->ip_hl = (int) ((p - (u_char *)ip) >> 2);
else if (proto == IP_PROTO_TCP) else if (proto == IP_PROTO_TCP)
tcp->th_off = (uint8_t) (p - (u_char *)tcp) >> 2; tcp->th_off = (int) ((p - (u_char *)tcp) >> 2);
ip->ip_len = htons(ntohs(ip->ip_len) + (unsigned short) optlen); ip->ip_len = htons((u_short) (ntohs(ip->ip_len) + optlen));
return ((ssize_t) optlen); return (ssize_t)(optlen);
} }
void void
@@ -107,7 +107,7 @@ ip_checksum(void *buf, size_t len)
if (len >= TCP_HDR_LEN) { if (len >= TCP_HDR_LEN) {
tcp->th_sum = 0; tcp->th_sum = 0;
sum = ip_cksum_add(tcp, len, 0) + sum = ip_cksum_add(tcp, len, 0) +
htons(ip->ip_p + (unsigned short) len); htons((u_short)(ip->ip_p + len));
sum = ip_cksum_add(&ip->ip_src, 8, sum); sum = ip_cksum_add(&ip->ip_src, 8, sum);
tcp->th_sum = ip_cksum_carry(sum); tcp->th_sum = ip_cksum_carry(sum);
} }
@@ -117,7 +117,7 @@ ip_checksum(void *buf, size_t len)
if (len >= UDP_HDR_LEN) { if (len >= UDP_HDR_LEN) {
udp->uh_sum = 0; udp->uh_sum = 0;
sum = ip_cksum_add(udp, len, 0) + sum = ip_cksum_add(udp, len, 0) +
htons(ip->ip_p + (unsigned short) len); htons((u_short)(ip->ip_p + len));
sum = ip_cksum_add(&ip->ip_src, 8, sum); sum = ip_cksum_add(&ip->ip_src, 8, sum);
udp->uh_sum = ip_cksum_carry(sum); udp->uh_sum = ip_cksum_carry(sum);
if (!udp->uh_sum) if (!udp->uh_sum)

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: ip-win32.c,v 1.5 2005/01/25 21:30:40 dugsong Exp $ * $Id: ip-win32.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -12,7 +12,6 @@
#include "config.h" #include "config.h"
#endif #endif
#include <winsock2.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#include <errno.h> #include <errno.h>
@@ -60,9 +59,9 @@ ip_send(ip_t *ip, const void *buf, size_t len)
ip->sin.sin_addr.s_addr = hdr->ip_src; ip->sin.sin_addr.s_addr = hdr->ip_src;
if ((len = sendto(ip->fd, (const char *)buf, (int) len, 0, if ((len = sendto(ip->fd, (const char *)buf, (int)len, 0,
(struct sockaddr *)&ip->sin, sizeof(ip->sin))) != SOCKET_ERROR) (struct sockaddr *)&ip->sin, sizeof(ip->sin))) != SOCKET_ERROR)
return ((ssize_t) len); return (ssize_t)(len);
return (-1); return (-1);
} }

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: ip.c,v 1.29 2005/01/25 21:30:40 dugsong Exp $ * $Id: ip.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: ip6.c,v 1.2 2005/01/23 07:36:54 dugsong Exp $ * $Id: ip6.c 539 2005-01-23 07:36:54Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -41,7 +41,7 @@ ip6_checksum(void *buf, size_t len)
if (len >= TCP_HDR_LEN) { if (len >= TCP_HDR_LEN) {
tcp->th_sum = 0; tcp->th_sum = 0;
sum = ip_cksum_add(tcp, len, 0) + htons(nxt + (unsigned short) len); sum = ip_cksum_add(tcp, len, 0) + htons(nxt + (u_short)len);
sum = ip_cksum_add(&ip6->ip6_src, 32, sum); sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
tcp->th_sum = ip_cksum_carry(sum); tcp->th_sum = ip_cksum_carry(sum);
} }
@@ -50,7 +50,7 @@ ip6_checksum(void *buf, size_t len)
if (len >= UDP_HDR_LEN) { if (len >= UDP_HDR_LEN) {
udp->uh_sum = 0; udp->uh_sum = 0;
sum = ip_cksum_add(udp, len, 0) + htons(nxt + (unsigned short) len); sum = ip_cksum_add(udp, len, 0) + htons(nxt + (u_short)len);
sum = ip_cksum_add(&ip6->ip6_src, 32, sum); sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
if ((udp->uh_sum = ip_cksum_carry(sum)) == 0) if ((udp->uh_sum = ip_cksum_carry(sum)) == 0)
udp->uh_sum = 0xffff; udp->uh_sum = 0xffff;
@@ -60,7 +60,7 @@ ip6_checksum(void *buf, size_t len)
if (len >= ICMP_HDR_LEN) { if (len >= ICMP_HDR_LEN) {
icmp->icmp_cksum = 0; icmp->icmp_cksum = 0;
sum = ip_cksum_add(icmp, len, 0) + htons(nxt + (unsigned short) len); sum = ip_cksum_add(icmp, len, 0) + htons(nxt + (u_short)len);
sum = ip_cksum_add(&ip6->ip6_src, 32, sum); sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
icmp->icmp_cksum = ip_cksum_carry(sum); icmp->icmp_cksum = ip_cksum_carry(sum);
} }

View File

@@ -6,7 +6,7 @@
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* Copyright (c) 1996 David Mazieres <dm@lcs.mit.edu> * Copyright (c) 1996 David Mazieres <dm@lcs.mit.edu>
* *
* $Id: rand.c,v 1.15 2005/02/15 06:37:07 dugsong Exp $ * $Id: rand.c 587 2005-02-15 06:37:07Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -4,7 +4,7 @@
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* Copyright (c) 1999 Masaki Hirabaru <masaki@merit.edu> * Copyright (c) 1999 Masaki Hirabaru <masaki@merit.edu>
* *
* $Id: route-bsd.c,v 1.22 2005/02/10 05:18:38 dugsong Exp $ * $Id: route-bsd.c 555 2005-02-10 05:18:38Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: route-hpux.c,v 1.11 2004/01/14 04:52:11 dugsong Exp $ * $Id: route-hpux.c 483 2004-01-14 04:52:11Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: route-linux.c,v 1.15 2005/01/23 07:36:54 dugsong Exp $ * $Id: route-linux.c 619 2006-01-15 07:33:29Z dugsong $
*/ */
#include "config.h" #include "config.h"
@@ -14,6 +14,7 @@
#include <sys/uio.h> #include <sys/uio.h>
#include <asm/types.h> #include <asm/types.h>
#include <netinet/in.h>
#include <linux/netlink.h> #include <linux/netlink.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
@@ -33,7 +34,8 @@
((a)->addr_type == ADDR_TYPE_IP6 && \ ((a)->addr_type == ADDR_TYPE_IP6 && \
(a)->addr_bits == IP6_ADDR_BITS)) (a)->addr_bits == IP6_ADDR_BITS))
#define PROC_ROUTE_FILE "/proc/net/route" #define PROC_ROUTE_FILE "/proc/net/route"
#define PROC_IPV6_ROUTE_FILE "/proc/net/ipv6_route"
struct route_handle { struct route_handle {
int fd; int fd;
@@ -121,35 +123,43 @@ route_get(route_t *r, struct route_entry *entry)
struct iovec iov; struct iovec iov;
struct msghdr msg; struct msghdr msg;
u_char buf[512]; u_char buf[512];
int i; int i, af, alen;
if (entry->route_dst.addr_type != ADDR_TYPE_IP) { switch (entry->route_dst.addr_type) {
case ADDR_TYPE_IP:
af = AF_INET;
alen = IP_ADDR_LEN;
break;
case ADDR_TYPE_IP6:
af = AF_INET6;
alen = IP6_ADDR_LEN;
break;
default:
errno = EINVAL; errno = EINVAL;
return (-1); return (-1);
} }
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
nmsg = (struct nlmsghdr *)buf; nmsg = (struct nlmsghdr *)buf;
nmsg->nlmsg_len = NLMSG_LENGTH(sizeof(*nmsg)) + nmsg->nlmsg_len = NLMSG_LENGTH(sizeof(*nmsg)) + RTA_LENGTH(alen);
RTA_LENGTH(IP_ADDR_LEN);
nmsg->nlmsg_flags = NLM_F_REQUEST; nmsg->nlmsg_flags = NLM_F_REQUEST;
nmsg->nlmsg_type = RTM_GETROUTE; nmsg->nlmsg_type = RTM_GETROUTE;
nmsg->nlmsg_seq = ++seq; nmsg->nlmsg_seq = ++seq;
rmsg = (struct rtmsg *)(nmsg + 1); rmsg = (struct rtmsg *)(nmsg + 1);
rmsg->rtm_family = AF_INET; rmsg->rtm_family = af;
rmsg->rtm_dst_len = entry->route_dst.addr_bits; rmsg->rtm_dst_len = entry->route_dst.addr_bits;
rta = RTM_RTA(rmsg); rta = RTM_RTA(rmsg);
rta->rta_type = RTA_DST; rta->rta_type = RTA_DST;
rta->rta_len = RTA_LENGTH(IP_ADDR_LEN); rta->rta_len = RTA_LENGTH(alen);
/* XXX - gross hack for default route */ /* XXX - gross hack for default route */
if (entry->route_dst.addr_ip == IP_ADDR_ANY) { if (af == AF_INET && entry->route_dst.addr_ip == IP_ADDR_ANY) {
i = htonl(0x60060606); i = htonl(0x60060606);
memcpy(RTA_DATA(rta), &i, IP_ADDR_LEN); memcpy(RTA_DATA(rta), &i, alen);
} else } else
memcpy(RTA_DATA(rta), &entry->route_dst.addr_ip, IP_ADDR_LEN); memcpy(RTA_DATA(rta), entry->route_dst.addr_data8, alen);
memset(&snl, 0, sizeof(snl)); memset(&snl, 0, sizeof(snl));
snl.nl_family = AF_NETLINK; snl.nl_family = AF_NETLINK;
@@ -184,10 +194,9 @@ route_get(route_t *r, struct route_entry *entry)
while (RTA_OK(rta, i)) { while (RTA_OK(rta, i)) {
if (rta->rta_type == RTA_GATEWAY) { if (rta->rta_type == RTA_GATEWAY) {
entry->route_gw.addr_type = ADDR_TYPE_IP; entry->route_gw.addr_type = entry->route_dst.addr_type;
memcpy(&entry->route_gw.addr_ip, memcpy(entry->route_gw.addr_data8, RTA_DATA(rta), alen);
RTA_DATA(rta), IP_ADDR_LEN); entry->route_gw.addr_bits = alen * 8;
entry->route_gw.addr_bits = IP_ADDR_BITS;
return (0); return (0);
} }
rta = RTA_NEXT(rta, i); rta = RTA_NEXT(rta, i);
@@ -201,46 +210,65 @@ int
route_loop(route_t *r, route_handler callback, void *arg) route_loop(route_t *r, route_handler callback, void *arg)
{ {
FILE *fp; FILE *fp;
char buf[BUFSIZ], ifbuf[16];
int i, iflags, refcnt, use, metric, mss, win, irtt, ret;
struct route_entry entry; struct route_entry entry;
uint32_t mask; char buf[BUFSIZ];
int ret = 0;
entry.route_dst.addr_type = entry.route_gw.addr_type = ADDR_TYPE_IP; if ((fp = fopen(PROC_ROUTE_FILE, "r")) != NULL) {
entry.route_dst.addr_bits = entry.route_gw.addr_bits = IP_ADDR_BITS; char ifbuf[16];
int i, iflags, refcnt, use, metric, mss, win, irtt;
if ((fp = fopen(PROC_ROUTE_FILE, "r")) == NULL) uint32_t mask;
return (-1);
ret = 0;
while (fgets(buf, sizeof(buf), fp) != NULL) {
i = sscanf(buf,
"%16s %X %X %X %d %d %d %X %d %d %d\n",
ifbuf, &entry.route_dst.addr_ip, &entry.route_gw.addr_ip,
&iflags, &refcnt, &use, &metric, &mask, &mss, &win, &irtt);
if (i < 10 || !(iflags & RTF_UP)) while (fgets(buf, sizeof(buf), fp) != NULL) {
continue; i = sscanf(buf, "%16s %X %X %X %d %d %d %X %d %d %d\n",
ifbuf, &entry.route_dst.addr_ip,
&entry.route_gw.addr_ip, &iflags, &refcnt, &use,
&metric, &mask, &mss, &win, &irtt);
if (i < 10 || !(iflags & RTF_UP))
continue;
if (entry.route_gw.addr_ip == IP_ADDR_ANY) if (entry.route_gw.addr_ip == IP_ADDR_ANY)
continue; continue;
entry.route_dst.addr_type = entry.route_gw.addr_type = entry.route_dst.addr_type = entry.route_gw.addr_type =
ADDR_TYPE_IP; ADDR_TYPE_IP;
if (addr_mtob(&mask, IP_ADDR_LEN, if (addr_mtob(&mask, IP_ADDR_LEN,
&entry.route_dst.addr_bits) < 0) &entry.route_dst.addr_bits) < 0)
continue; continue;
if ((ret = callback(&entry, arg)) != 0) entry.route_gw.addr_bits = IP_ADDR_BITS;
break;
} if ((ret = callback(&entry, arg)) != 0)
if (ferror(fp)) { break;
}
fclose(fp);
}
if (ret == 0 && (fp = fopen(PROC_IPV6_ROUTE_FILE, "r")) != NULL) {
char s[33], d[8][5], n[8][5];
u_int slen, dlen;
while (fgets(buf, sizeof(buf), fp) != NULL) {
sscanf(buf, "%04s%04s%04s%04s%04s%04s%04s%04s %02x "
"%32s %02x %04s%04s%04s%04s%04s%04s%04s%04s ",
d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7],
&dlen, s, &slen,
n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7]);
snprintf(buf, sizeof(buf), "%s:%s:%s:%s:%s:%s:%s:%s/%d",
d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7],
dlen);
addr_aton(buf, &entry.route_dst);
snprintf(buf, sizeof(buf), "%s:%s:%s:%s:%s:%s:%s:%s/%d",
n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7],
IP6_ADDR_BITS);
addr_aton(buf, &entry.route_gw);
if ((ret = callback(&entry, arg)) != 0)
break;
}
fclose(fp); fclose(fp);
return (-1);
} }
fclose(fp);
return (ret); return (ret);
} }

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000 Dug Song <dugsong@monkey.org> * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
* *
* $Id: route-none.c,v 1.5 2002/02/04 03:59:45 dugsong Exp $ * $Id: route-none.c 260 2002-02-04 04:03:45Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2002 Dug Song <dugsong@monkey.org> * Copyright (c) 2002 Dug Song <dugsong@monkey.org>
* *
* $Id: route-win32.c,v 1.12 2005/02/15 07:11:32 dugsong Exp $ * $Id: route-win32.c 589 2005-02-15 07:11:32Z dugsong $
*/ */
#ifdef _WIN32 #ifdef _WIN32
@@ -12,8 +12,7 @@
#include "config.h" #include "config.h"
#endif #endif
#include <winsock2.h> #include <ws2tcpip.h>
#include <windows.h>
#include <iphlpapi.h> #include <iphlpapi.h>
#include <errno.h> #include <errno.h>

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: tun-bsd.c,v 1.3 2005/02/10 23:50:04 dugsong Exp $ * $Id: tun-bsd.c 573 2005-02-10 23:50:04Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -6,7 +6,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: tun-linux.c,v 1.3 2005/02/10 20:18:01 dugsong Exp $ * $Id: tun-linux.c 612 2005-09-12 02:18:06Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -3,7 +3,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: tun-none.c,v 1.2 2005/01/30 06:01:56 dugsong Exp $ * $Id: tun-none.c 548 2005-01-30 06:01:57Z dugsong $
*/ */
#include "config.h" #include "config.h"

View File

@@ -5,7 +5,7 @@
* *
* Copyright (c) 2001 Dug Song <dugsong@monkey.org> * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
* *
* $Id: tun-solaris.c,v 1.2 2005/01/25 21:30:40 dugsong Exp $ * $Id: tun-solaris.c 547 2005-01-25 21:30:40Z dugsong $
*/ */
#include "config.h" #include "config.h"