Version 2.7

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2008-05-18 00:00:00 +02:00
parent 4f000e7ab6
commit 625cde6b9c
26 changed files with 13445 additions and 1465 deletions

View file

@ -1,22 +0,0 @@
run ./src/dhcpd-pools
run ./src/dhcpd-pools
file ./src/dhcpd-pools
run
help
help options
quit
run gdb.run
quit
run
quit
run
quit
run
quit
run
quit
run
quit
run
quit
quit

View file

@ -1,4 +1,16 @@
2008-05-18 Sami Kerola <kerolasa@iki.fi>
* Some automake files to help make install pass without complains.
* Function names to error messages where they where missing.
* Some sort options where missing from help screen.
* Manual page update.
* Multi key sorting.
* Range flip to support reverse order printing.
* Output function & errno caused FreeBSD-7.0 to exit with error
when there was no trouble.
* Code cleanup.
2008-05-10 Sami Kerola <kerolasa@iki.fi>
* Release 2.6
* Last version did not follow include directives.
* The dhcpd.conf parser was still quite stupid.
* Touched IP counting.

View file

@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# Makefile.in generated by automake 1.6.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -13,176 +13,110 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_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@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
THANKS TODO depcomp install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
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@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
EXEEXT = @EXEEXT@
OBJEXT = @OBJEXT@
PATH_SEPARATOR = @PATH_SEPARATOR@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
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@
PERL = @PERL@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_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_alias = @build_alias@
datadir = @datadir@
dhcpd_conf = @dhcpd_conf@
dhcpd_leases = @dhcpd_leases@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
output_format = @output_format@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
output_limit = @output_limit@
AUTOMAKE_OPTIONS = 1.5 gnits
SUBDIRS = src man
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
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 AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS THANKS TODO aclocal.m4 config.h.in configure \
configure.in depcomp install-sh missing mkinstalldirs
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \
cd $(srcdir) && $(AUTOMAKE) --gnits \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnits Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@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;
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@ -194,10 +128,10 @@ config.h: stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
$(srcdir)/config.h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
touch $(srcdir)/config.h.in
distclean-hdr:
-rm -f config.h stamp-h1
@ -210,13 +144,7 @@ uninstall-info-am:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@ -228,7 +156,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@ -236,13 +164,7 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@ -263,16 +185,17 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ETAGS = etags
ETAGSFLAGS =
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@ -282,23 +205,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
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 \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
@ -307,24 +221,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(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) \
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique
GTAGS:
@ -333,29 +231,34 @@ GTAGS:
&& gtags -i $(GTAGS_ARGS) $$here
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)
@case `sed 15q $(srcdir)/NEWS` in \
*"$(VERSION)"*) : ;; \
*) \
@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" >/dev/null; \
then :; else \
echo "NEWS not updated; not releasing" 1>&2; \
exit 1;; \
esac
exit 1; \
fi
$(am__remove_distdir)
mkdir $(distdir)
@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; \
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
$(mkinstalldirs) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@ -370,17 +273,15 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(mkdir_p) "$(distdir)/$$subdir" \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
top_distdir="$(top_distdir)" \
distdir=../$(distdir)/$$subdir \
distdir) \
|| exit 1; \
fi; \
@ -391,54 +292,26 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(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)
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_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)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
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
$(am__remove_distdir)
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
&& cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@ -446,40 +319,23 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(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) \
&& (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
find $$dc_install_base -type f -print ; \
exit 1; } >&2 ) \
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
&& rm -f $(distdir).tar.gz \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
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
@echo "$(distdir).tar.gz is ready for distribution" | \
sed 'h;s/./=/g;p;x;p;x'
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
@ -487,6 +343,7 @@ check: check-recursive
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
@ -498,7 +355,7 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(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)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@ -506,7 +363,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -517,16 +374,12 @@ clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
-rm -rf autom4te.cache
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
info: info-recursive
info-am:
@ -543,40 +396,32 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
-rm -rf autom4te.cache
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-generic clean-recursive ctags \
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
dist-tarZ dist-zip distcheck distclean distclean-generic \
distclean-hdr distclean-recursive distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive \
mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
uninstall-info-am
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
clean-generic clean-recursive dist dist-all dist-gzip distcheck \
distclean distclean-generic distclean-hdr distclean-recursive \
distclean-tags distcleancheck distdir dvi dvi-am dvi-recursive \
info info-am info-recursive install install-am install-data \
install-data-am install-data-recursive install-exec \
install-exec-am install-exec-recursive install-info \
install-info-am install-info-recursive install-man \
install-recursive install-strip installcheck installcheck-am \
installdirs installdirs-am installdirs-recursive \
maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-recursive tags tags-recursive uninstall \
uninstall-am uninstall-info-am uninstall-info-recursive \
uninstall-recursive
# 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.

16
NEWS
View file

@ -1,10 +1,21 @@
dhcpd-pools -- History of visible changes.
Copyright (C) 2006, Sami Kerola <kerolasa@iki.fi>
Copyright (C) 2006- Sami Kerola <kerolasa@iki.fi>
See the end for copying conditions.
Please send dhcpd-pools bug reports to kerolasa@iki.fi.
Version 2.7
* Some automake files to help make install pass without complains.
* Function names to error messages where they where missing.
* Some sort options where missing from help screen.
* Manual page update.
* Multi key sorting.
* Range flip to support reverse order printing.
* Output function & errno caused FreeBSD-7.0 to exit with error
when there was no trouble.
* Code cleanup.
Version 2.6
* I forgot to follow include when I rewrote dhcpd.conf parser.
@ -16,7 +27,7 @@ Version 2.5
* Feature:
* Reverse order sorting
* Option parsing fixed.
* FreeBSD-7.0 output did not work.
* FreeBSD-7.0 output to file did not work.
* Completely new dhcpd.conf parser.
Version 2.4
@ -65,4 +76,3 @@ Copyright (C) 2006, Sami Kerola <kerolasa@iki.fi>
document, or of portions of it, under the above conditions,
provided also that they carry prominent notices stating who
last changed them.

15
TODO
View file

@ -3,17 +3,11 @@
* Memory allocations to such that recopilation is _never_ needed.
* Bad english to good english translation in all files that
author has touched. Help needed!
* Count of touched IPs IE the ones which are leased some time and
currently marked as free. Knowing number of these should
give idea about possible peak value of reservations. Highly
unscientific thou.
* Output sorting should sort also shared networks to in use, perscent
etc order.
* Check comments, variable names etc so that the code makes more sense.
* More ./configure options.
* Touched IP output sort.
* Shared network sorting. Actual data must not be sorted, but perhaps
sorting pointer array might work. That means writing sort
functions and rewrite ouput functions. Don't expect soon.
* All networks analyse.c semantics problem.
* Template based html page.
* More ./configure options.
@ version 3.x (not coming soon)
@ -21,5 +15,6 @@
* Convert program to snmp subagent daemon.
* Analysis caching.
* Threshold values -> alarming possibility by snmp traps.
* Template based html page.
</Todo>

1328
aclocal.m4 vendored

File diff suppressed because it is too large Load diff

5723
autom4te.cache/output.0 Normal file

File diff suppressed because it is too large Load diff

116
autom4te.cache/requests Normal file
View file

@ -0,0 +1,116 @@
# This file was generated.
# It contains the lists of macros which have been traced.
# It can be safely removed.
@request = (
bless( [
'0',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'aclocal.m4',
'configure.in'
],
{
'm4_pattern_forbid' => 1,
'AC_CONFIG_LIBOBJ_DIR' => 1,
'AC_TYPE_OFF_T' => 1,
'AC_C_VOLATILE' => 1,
'AC_FUNC_CLOSEDIR_VOID' => 1,
'AC_REPLACE_FNMATCH' => 1,
'AC_PROG_LIBTOOL' => 1,
'AC_FUNC_STAT' => 1,
'AC_HEADER_TIME' => 1,
'AC_FUNC_WAIT3' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'AC_STRUCT_TM' => 1,
'AC_FUNC_LSTAT' => 1,
'AC_TYPE_MODE_T' => 1,
'AC_FUNC_GETMNTENT' => 1,
'AC_FUNC_STRTOD' => 1,
'AC_CHECK_HEADERS' => 1,
'AC_FUNC_STRNLEN' => 1,
'm4_sinclude' => 1,
'AC_PROG_CXX' => 1,
'AC_PATH_X' => 1,
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
'AC_PROG_AWK' => 1,
'_m4_warn' => 1,
'AC_HEADER_STDC' => 1,
'AC_HEADER_MAJOR' => 1,
'AC_FUNC_ERROR_AT_LINE' => 1,
'AC_PROG_GCC_TRADITIONAL' => 1,
'AC_LIBSOURCE' => 1,
'AC_FUNC_MBRTOWC' => 1,
'AC_STRUCT_ST_BLOCKS' => 1,
'AC_TYPE_SIGNAL' => 1,
'AC_TYPE_UID_T' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'AC_PROG_MAKE_SET' => 1,
'sinclude' => 1,
'm4_pattern_allow' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AC_FUNC_STRERROR_R' => 1,
'AC_PROG_CC' => 1,
'AC_FUNC_FORK' => 1,
'AC_DECL_SYS_SIGLIST' => 1,
'AC_FUNC_VPRINTF' => 1,
'AC_FUNC_STRCOLL' => 1,
'AC_PROG_YACC' => 1,
'AC_INIT' => 1,
'AC_STRUCT_TIMEZONE' => 1,
'AC_FUNC_CHOWN' => 1,
'AC_SUBST' => 1,
'AC_FUNC_ALLOCA' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_FUNC_GETPGRP' => 1,
'AC_PROG_RANLIB' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AC_FUNC_SETPGRP' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AC_FUNC_MMAP' => 1,
'AC_FUNC_REALLOC' => 1,
'AC_TYPE_SIZE_T' => 1,
'AC_CONFIG_LINKS' => 1,
'AC_CHECK_TYPES' => 1,
'AC_CHECK_MEMBERS' => 1,
'AM_MAINTAINER_MODE' => 1,
'AC_FUNC_UTIME_NULL' => 1,
'AC_FUNC_SELECT_ARGTYPES' => 1,
'AC_FUNC_STRFTIME' => 1,
'AC_HEADER_STAT' => 1,
'AC_C_INLINE' => 1,
'AC_PROG_CPP' => 1,
'AC_TYPE_PID_T' => 1,
'AC_C_CONST' => 1,
'AC_PROG_LEX' => 1,
'AC_CONFIG_FILES' => 1,
'include' => 1,
'AC_FUNC_SETVBUF_REVERSED' => 1,
'AC_PROG_INSTALL' => 1,
'AM_GNU_GETTEXT' => 1,
'AC_FUNC_OBSTACK' => 1,
'AC_CHECK_LIB' => 1,
'AC_FUNC_MALLOC' => 1,
'AC_FUNC_GETGROUPS' => 1,
'AC_FUNC_GETLOADAVG' => 1,
'AH_OUTPUT' => 1,
'AC_FUNC_FSEEKO' => 1,
'AM_PROG_CC_C_O' => 1,
'AM_CONDITIONAL' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'AC_FUNC_MKTIME' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_HEADER_SYS_WAIT' => 1,
'AC_FUNC_MEMCMP' => 1,
'AC_PROG_LN_S' => 1,
'm4_include' => 1,
'AC_HEADER_DIRENT' => 1,
'AC_CHECK_FUNCS' => 1
}
], 'Autom4te::Request' )
);

214
autom4te.cache/traces.0 Normal file
View file

@ -0,0 +1,214 @@
m4trace:aclocal.m4:50: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
m4trace:configure.in:5: -1- AC_INIT([dhcpd-pools], [2.7], [kerolasa@iki.fi])
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
m4trace:configure.in:5: -1- m4_pattern_forbid([_AC_])
m4trace:configure.in:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
m4trace:configure.in:5: -1- m4_pattern_allow([^AS_FLAGS$])
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?m4_])
m4trace:configure.in:5: -1- m4_pattern_forbid([^dnl$])
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?AS_])
m4trace:configure.in:5: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
m4trace:configure.in:5: -1- AC_SUBST([PATH_SEPARATOR])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
m4trace:configure.in:5: -1- AC_SUBST([exec_prefix], [NONE])
m4trace:configure.in:5: -1- AC_SUBST([prefix], [NONE])
m4trace:configure.in:5: -1- AC_SUBST([program_transform_name], [s,x,x,])
m4trace:configure.in:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
m4trace:configure.in:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
m4trace:configure.in:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
m4trace:configure.in:5: -1- AC_SUBST([datadir], ['${prefix}/share'])
m4trace:configure.in:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
m4trace:configure.in:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
m4trace:configure.in:5: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
m4trace:configure.in:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
m4trace:configure.in:5: -1- AC_SUBST([includedir], ['${prefix}/include'])
m4trace:configure.in:5: -1- AC_SUBST([oldincludedir], ['/usr/include'])
m4trace:configure.in:5: -1- AC_SUBST([infodir], ['${prefix}/info'])
m4trace:configure.in:5: -1- AC_SUBST([mandir], ['${prefix}/man'])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
#undef PACKAGE_NAME])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
#undef PACKAGE_VERSION])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
#undef PACKAGE_STRING])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT])
m4trace:configure.in:5: -1- AC_SUBST([build_alias])
m4trace:configure.in:5: -1- AC_SUBST([host_alias])
m4trace:configure.in:5: -1- AC_SUBST([target_alias])
m4trace:configure.in:5: -1- AC_SUBST([DEFS])
m4trace:configure.in:5: -1- AC_SUBST([ECHO_C])
m4trace:configure.in:5: -1- AC_SUBST([ECHO_N])
m4trace:configure.in:5: -1- AC_SUBST([ECHO_T])
m4trace:configure.in:5: -1- AC_SUBST([LIBS])
m4trace:configure.in:7: -1- AM_INIT_AUTOMAKE([1.6 foreign])
m4trace:configure.in:7: -1- AM_AUTOMAKE_VERSION([1.6.3])
m4trace:configure.in:7: -1- AC_PROG_INSTALL
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_PROGRAM])
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_SCRIPT])
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_DATA])
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])
m4trace:configure.in:7: -1- AC_SUBST([VERSION], [AC_PACKAGE_VERSION])
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
#undef PACKAGE])
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
m4trace:configure.in:7: -1- AH_OUTPUT([VERSION], [/* Version number of package */
#undef VERSION])
m4trace:configure.in:7: -1- AC_SUBST([ACLOCAL])
m4trace:configure.in:7: -1- AC_SUBST([AUTOCONF])
m4trace:configure.in:7: -1- AC_SUBST([AUTOMAKE])
m4trace:configure.in:7: -1- AC_SUBST([AUTOHEADER])
m4trace:configure.in:7: -1- AC_SUBST([MAKEINFO])
m4trace:configure.in:7: -1- AC_SUBST([AMTAR])
m4trace:configure.in:7: -1- AC_SUBST([install_sh])
m4trace:configure.in:7: -1- AC_SUBST([STRIP])
m4trace:configure.in:7: -1- AC_SUBST([ac_ct_STRIP])
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
m4trace:configure.in:7: -1- AC_PROG_AWK
m4trace:configure.in:7: -1- AC_SUBST([AWK])
m4trace:configure.in:7: -1- AC_PROG_MAKE_SET
m4trace:configure.in:7: -1- AC_SUBST([SET_MAKE])
m4trace:configure.in:9: -1- AC_CONFIG_HEADERS([config.h], [# update the timestamp
echo 'timestamp for config.h' >"_AM_STAMP([config.h])"
], [])
m4trace:configure.in:10: -1- AC_PROG_CC
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([CFLAGS])
m4trace:configure.in:10: -1- AC_SUBST([LDFLAGS])
m4trace:configure.in:10: -1- AC_SUBST([CPPFLAGS])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_CC])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_CC])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_CC])
m4trace:configure.in:10: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
m4trace:configure.in:10: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
m4trace:configure.in:10: -1- AC_SUBST([DEPDIR])
m4trace:configure.in:10: -1- AC_SUBST([am__include])
m4trace:configure.in:10: -1- AC_SUBST([am__quote])
m4trace:configure.in:10: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
m4trace:configure.in:10: -1- AC_SUBST([AMDEP_TRUE])
m4trace:configure.in:10: -1- AC_SUBST([AMDEP_FALSE])
m4trace:configure.in:10: -1- AC_SUBST([AMDEPBACKSLASH])
m4trace:configure.in:10: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
m4trace:configure.in:25: -1- AC_SUBST([dhcpd_conf])
m4trace:configure.in:33: -1- AC_SUBST([dhcpd_leases])
m4trace:configure.in:41: -1- AC_SUBST([output_format])
m4trace:configure.in:49: -1- AC_SUBST([output_limit])
m4trace:configure.in:51: -1- AC_CHECK_FUNCS([getopt_long inet_aton inet_addr], [break])
m4trace:configure.in:51: -1- AH_OUTPUT([HAVE_GETOPT_LONG], [/* Define to 1 if you have the `getopt_long\' function. */
#undef HAVE_GETOPT_LONG])
m4trace:configure.in:51: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */
#undef HAVE_INET_ATON])
m4trace:configure.in:51: -1- AH_OUTPUT([HAVE_INET_ADDR], [/* Define to 1 if you have the `inet_addr\' function. */
#undef HAVE_INET_ADDR])
m4trace:configure.in:53: -1- AC_CHECK_LIB([resolv], [inet_ntoa])
m4trace:configure.in:53: -1- AH_OUTPUT([HAVE_LIBRESOLV], [/* Define to 1 if you have the `resolv\' library (-lresolv). */
#undef HAVE_LIBRESOLV])
m4trace:configure.in:53: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRESOLV])
m4trace:configure.in:56: -1- AC_CHECK_HEADERS([arpa/inet.h errno.h netinet/in.h stdio.h \
stdlib.h string.h sys/socket.h sys/stat.h sys/types.h unistd.h])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
#undef HAVE_ERRNO_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDIO_H], [/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H])
m4trace:configure.in:56: -1- AC_HEADER_STDC
m4trace:configure.in:56: -1- AC_PROG_CPP
m4trace:configure.in:56: -1- AC_SUBST([CPP])
m4trace:configure.in:56: -1- AC_SUBST([CPPFLAGS])
m4trace:configure.in:56: -1- AC_SUBST([CPP])
m4trace:configure.in:56: -1- AC_SUBST([EGREP])
m4trace:configure.in:56: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
m4trace:configure.in:56: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS])
m4trace:configure.in:56: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H])
m4trace:configure.in:59: -2- AC_DEFINE_TRACE_LITERAL([HAVE_GETOPT_H])
m4trace:configure.in:60: -1- AC_CHECK_HEADERS([getopt.h], [cat >>confdefs.h <<\_ACEOF
@%:@define HAVE_GETOPT_H 1
_ACEOF
], [import_sources="getopt.c getopt1.c $import_sources"])
m4trace:configure.in:60: -1- AH_OUTPUT([HAVE_GETOPT_H], [/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H])
m4trace:configure.in:63: -1- AC_FUNC_ALLOCA
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H])
m4trace:configure.in:63: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#undef HAVE_ALLOCA_H])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA])
m4trace:configure.in:63: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */
#undef HAVE_ALLOCA])
m4trace:configure.in:63: -1- AC_LIBSOURCE([alloca.c])
m4trace:configure.in:63: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA])
m4trace:configure.in:63: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */
#undef C_ALLOCA])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END])
m4trace:configure.in:63: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c\' support on those systems.
*/
#undef CRAY_STACKSEG_END])
m4trace:configure.in:63: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
@%:@undef STACK_DIRECTION])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION])
m4trace:configure.in:66: -1- AC_SUBST([PERL])
m4trace:configure.in:68: -1- AC_CONFIG_FILES([Makefile man/Makefile src/Makefile])
m4trace:configure.in:70: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
m4trace:configure.in:70: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
m4trace:configure.in:70: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally.], [])
m4trace:configure.in:70: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me: error: conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally.], [])

247
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for dhcpd-pools 2.6.
# Generated by GNU Autoconf 2.59 for dhcpd-pools 2.7.
#
# Report bugs to <kerolasa@iki.fi>.
#
@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='dhcpd-pools'
PACKAGE_TARNAME='dhcpd-pools'
PACKAGE_VERSION='2.6'
PACKAGE_STRING='dhcpd-pools 2.6'
PACKAGE_VERSION='2.7'
PACKAGE_STRING='dhcpd-pools 2.7'
PACKAGE_BUGREPORT='kerolasa@iki.fi'
# Factoring default headers for most tests.
@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE dhcpd_conf dhcpd_leases output_format output_limit CPP EGREP ALLOCA PERL LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE dhcpd_conf dhcpd_leases output_format output_limit CPP EGREP ALLOCA PERL LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -779,7 +779,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures dhcpd-pools 2.6 to adapt to many kinds of systems.
\`configure' configures dhcpd-pools 2.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -841,15 +841,15 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of dhcpd-pools 2.6:";;
short | recursive ) echo "Configuration of dhcpd-pools 2.7:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--disable-dependency-tracking Speeds up one-time builds
--enable-dependency-tracking Do not reject slow dependency extractors
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -967,7 +967,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
dhcpd-pools configure 2.6
dhcpd-pools configure 2.7
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@ -981,7 +981,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by dhcpd-pools $as_me 2.6, which was
It was created by dhcpd-pools $as_me 2.7, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@ -1318,7 +1318,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
am__api_version="1.9"
am__api_version="1.6"
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
@ -1481,6 +1481,7 @@ _ACEOF
program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
rm conftest.sed
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
@ -1494,39 +1495,6 @@ else
echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
# We used to keeping the `.' as first argument, in order to
# allow $(mkdir_p) to be used without argument. As in
# $(mkdir_p) $(somedir)
# where $(somedir) is conditionally defined. However this is wrong
# for two reasons:
# 1. if the package is installed by a user who cannot write `.'
# make install will fail,
# 2. the above comment should most certainly read
# $(mkdir_p) $(DESTDIR)$(somedir)
# so it does not work when $(somedir) is undefined and
# $(DESTDIR) is not.
# To support the latter case, we have to write
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
# so the `.' trick is pointless.
mkdir_p='mkdir -p --'
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
# directories to create, and then abort because `.' already
# exists.
for d in ./-p ./--version;
do
test -d $d && rmdir $d
done
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
if test -f "$ac_aux_dir/mkinstalldirs"; then
mkdir_p='$(mkinstalldirs)'
else
mkdir_p='$(install_sh) -d'
fi
fi
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@ -1596,16 +1564,7 @@ echo "${ECHO_T}no" >&6
SET_MAKE="MAKE=${MAKE-make}"
fi
rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
# test to see if srcdir already configured
# test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" &&
test -f $srcdir/config.status; then
{ { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
@ -1613,19 +1572,9 @@ echo "$as_me: error: source directory already configured; run \"make distclean\"
{ (exit 1); exit 1; }; }
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
# Define the identity of the package.
PACKAGE='dhcpd-pools'
VERSION='2.6'
PACKAGE=dhcpd-pools
VERSION=2.7
cat >>confdefs.h <<_ACEOF
@ -1653,6 +1602,9 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
AMTAR=${AMTAR-"${am_missing_run}tar"}
install_sh=${install_sh-"$am_aux_dir/install-sh"}
# Installed binaries are usually stripped using `strip' when the user
@ -1745,19 +1697,16 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
# Always define AMTAR for backward compatibility.
AMTAR=${AMTAR-"${am_missing_run}tar"}
am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
# Add the stamp file to the list of files AC keeps track of,
# along with our hook.
ac_config_headers="$ac_config_headers config.h"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@ -2687,16 +2636,24 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
DEPDIR="${am__leading_dot}deps"
rm -f .deps 2>/dev/null
mkdir .deps 2>/dev/null
if test -d .deps; then
DEPDIR=.deps
else
# MS-DOS does not allow filenames that begin with a dot.
DEPDIR=_deps
fi
rmdir .deps 2>/dev/null
ac_config_commands="$ac_config_commands depfiles"
am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
doit:
@echo done
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
@ -2711,7 +2668,7 @@ echo "include confinc" > confmf
# In particular we don't look at `^make:' because GNU make might
# be invoked under some other name (usually "gmake"), in which
# case it prints its new name instead of `make'.
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
am__include=include
am__quote=
_am_result=GNU
@ -2771,34 +2728,18 @@ else
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
echo '#include "conftest.h"' > conftest.c
echo 'int i;' > conftest.h
echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
@ -2816,25 +2757,13 @@ else
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
source=conftest.c object=conftest.o \
depfile=conftest.Po tmpdepfile=conftest.TPo \
$SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
grep conftest.h conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
done
@ -2851,18 +2780,6 @@ CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
echo "$as_me:$LINENO: checking for library containing strerror" >&5
echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
if test "${ac_cv_search_strerror+set}" = set; then
@ -4524,13 +4441,6 @@ echo "$as_me: error: conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
@ -4802,7 +4712,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
This file was extended by dhcpd-pools $as_me 2.6, which was
This file was extended by dhcpd-pools $as_me 2.7, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -4865,7 +4775,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
dhcpd-pools config.status 2.6
dhcpd-pools config.status 2.7
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@ -5068,7 +4978,6 @@ s,@LIBS@,$LIBS,;t t
s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t
s,@CYGPATH_W@,$CYGPATH_W,;t t
s,@PACKAGE@,$PACKAGE,;t t
s,@VERSION@,$VERSION,;t t
s,@ACLOCAL@,$ACLOCAL,;t t
@ -5076,17 +4985,13 @@ s,@AUTOCONF@,$AUTOCONF,;t t
s,@AUTOMAKE@,$AUTOMAKE,;t t
s,@AUTOHEADER@,$AUTOHEADER,;t t
s,@MAKEINFO@,$MAKEINFO,;t t
s,@AMTAR@,$AMTAR,;t t
s,@install_sh@,$install_sh,;t t
s,@STRIP@,$STRIP,;t t
s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
s,@mkdir_p@,$mkdir_p,;t t
s,@AWK@,$AWK,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
s,@am__leading_dot@,$am__leading_dot,;t t
s,@AMTAR@,$AMTAR,;t t
s,@am__tar@,$am__tar,;t t
s,@am__untar@,$am__untar,;t t
s,@CC@,$CC,;t t
s,@CFLAGS@,$CFLAGS,;t t
s,@LDFLAGS@,$LDFLAGS,;t t
@ -5101,8 +5006,6 @@ s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
s,@CCDEPMODE@,$CCDEPMODE,;t t
s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
s,@dhcpd_conf@,$dhcpd_conf,;t t
s,@dhcpd_leases@,$dhcpd_leases,;t t
s,@output_format@,$output_format,;t t
@ -5572,29 +5475,13 @@ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
cat $tmp/config.h
rm -f $tmp/config.h
fi
# Compute $ac_file's index in $config_headers.
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$ac_file | $ac_file:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
# Run the commands associated with the file.
case $ac_file in
config.h ) # update the timestamp
echo 'timestamp for config.h' >"./stamp-h1"
;;
esac
done
echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X$ac_file : 'X\(//\)[^/]' \| \
X$ac_file : 'X\(//\)$' \| \
X$ac_file : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X$ac_file |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`/stamp-h$_am_stamp_count
done
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF
@ -5735,21 +5622,27 @@ echo X"$mf" |
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
# Extract the definition of DEP_FILES from the Makefile without
# running `make'.
DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
U=`sed -n -e '/^U = / s///p' < "$mf"`
test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
# We invoke sed twice because it is the simplest approach to
# changing $(DEPDIR) to its actual value in the expansion.
for file in `sed -n -e '
/^DEP_FILES = .*\\\\$/ {
s/^DEP_FILES = //
:loop
s/\\\\$//
p
n
/\\\\$/ b loop
p
}
/^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue

View file

@ -2,9 +2,9 @@ dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT([dhcpd-pools], [2.6], [kerolasa@iki.fi])
AC_INIT([dhcpd-pools], [2.7], [kerolasa@iki.fi])
AM_INIT_AUTOMAKE([1.9 foreign])
AM_INIT_AUTOMAKE([1.6 foreign])
AM_CONFIG_HEADER(config.h)
AC_PROG_CC

View file

@ -66,8 +66,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
AMTAR = @AMTAR@
AWK = @AWK@
CC = @CC@
CXX = @CXX@
CYGPATH_W = @CYGPATH_W@
DEPDIR = @DEPDIR@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
PACKAGE = @PACKAGE@
@ -75,14 +73,10 @@ PERL = @PERL@
STRIP = @STRIP@
VERSION = @VERSION@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
dhcpd_conf = @dhcpd_conf@
dhcpd_leases = @dhcpd_leases@
install_sh = @install_sh@
mkdir_p = @mkdir_p@
output_format = @output_format@
output_limit = @output_limit@
@ -95,7 +89,7 @@ EXTRA_DIST = $(man_MANS) $(noinst_SCRIPTS) # $(man_aux)
MAINTAINERCLEANFILES = $(man_MANS)
subdir = man
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/$@)]
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SCRIPTS = $(noinst_SCRIPTS)

View file

@ -2,12 +2,12 @@
.\" http://www.iki.fi/kerolasa/
.\" kerolasa@iki.fi
.\"
.TH DHCPD-POOLS 1 "May 10 2008 - version 2.6"
.TH DHCPD-POOLS 1 "May 18 2008 - version 2.7"
.SH NAME
dhcpd-pools \- ISC dhcp pools usage analysis
.SH SYNOPSIS
.B dhcpd-pools
[-c file] [-l file] [-f thc] [-o file] [-v] [-h]
[-c file] [-l file] [-f thc] [-s nimcptTe] [-r] [-o file] [-L nr] [-v] [-h]
.SH DESCRIPTION
The program counts ISC dhcp shared network and pool usage
analysis and outputs it in selected format.
@ -49,8 +49,10 @@ Path to the dhcpd.conf file.
Path to the dhcpd.leases file.
.TP
.I "\-s, \-\-sort"
Sort ranges by IP, name, maximum, currently in use or percent.
The IP is default.
Sort ranges by chosen fields as a sorting keys. Maximum of five
sort keys can be defined. Keys weight from left to right IE if
more weighting keys are equal next one is used. The IP field is
default sort key.
.TP
.I "\-r, \-\-reverse"
Sort results in reverse order.
@ -64,9 +66,9 @@ File where output is written. Default is stdout.
.TP
.I "\-L, \-\-limit"
Limit what will be printed. Syntax is similar to chmod permission
string. The limit string uses two digits which vary between 0 and
7. First digit will effect on headers and second one to numeric
analysis tables.
string. The limit string uses two digits which vary between 0 to
7. First digit will cause on headers and second numeric analysis
tables to included or dropped from output.
.TP
.I "\-v, \-\-version"
Print version information to standard output and exit successfully.
@ -84,8 +86,6 @@ Print help to standard output and exit successfully.
/var/lib/dhcp/dhcpd.leases
.br
ISC dhcpd lease file.
.SH BUGS
Not known.
.SH AUTHOR
Sami Kerola <kerolasa@iki.fi>
.br

1
mkinstalldirs Symbolic link
View file

@ -0,0 +1 @@
/usr/share/automake-1.6/mkinstalldirs

5830
output.0 Normal file

File diff suppressed because it is too large Load diff

116
requests Normal file
View file

@ -0,0 +1,116 @@
# This file was generated.
# It contains the lists of macros which have been traced.
# It can be safely removed.
@request = (
bless( [
'0',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'aclocal.m4',
'configure.in'
],
{
'm4_pattern_forbid' => 1,
'AC_CONFIG_LIBOBJ_DIR' => 1,
'AC_C_VOLATILE' => 1,
'AC_TYPE_OFF_T' => 1,
'AC_FUNC_CLOSEDIR_VOID' => 1,
'AC_REPLACE_FNMATCH' => 1,
'AC_PROG_LIBTOOL' => 1,
'AC_FUNC_STAT' => 1,
'AC_FUNC_WAIT3' => 1,
'AC_HEADER_TIME' => 1,
'AC_FUNC_LSTAT' => 1,
'AC_STRUCT_TM' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'AC_FUNC_GETMNTENT' => 1,
'AC_TYPE_MODE_T' => 1,
'AC_FUNC_STRTOD' => 1,
'AC_CHECK_HEADERS' => 1,
'AC_FUNC_STRNLEN' => 1,
'm4_sinclude' => 1,
'AC_PROG_CXX' => 1,
'AC_PATH_X' => 1,
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
'AC_PROG_AWK' => 1,
'_m4_warn' => 1,
'AC_HEADER_STDC' => 1,
'AC_HEADER_MAJOR' => 1,
'AC_FUNC_ERROR_AT_LINE' => 1,
'AC_PROG_GCC_TRADITIONAL' => 1,
'AC_LIBSOURCE' => 1,
'AC_FUNC_MBRTOWC' => 1,
'AC_STRUCT_ST_BLOCKS' => 1,
'AC_TYPE_SIGNAL' => 1,
'AC_TYPE_UID_T' => 1,
'AC_PROG_MAKE_SET' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'm4_pattern_allow' => 1,
'sinclude' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AC_FUNC_STRERROR_R' => 1,
'AC_PROG_CC' => 1,
'AC_DECL_SYS_SIGLIST' => 1,
'AC_FUNC_FORK' => 1,
'AC_FUNC_STRCOLL' => 1,
'AC_FUNC_VPRINTF' => 1,
'AC_PROG_YACC' => 1,
'AC_INIT' => 1,
'AC_STRUCT_TIMEZONE' => 1,
'AC_FUNC_CHOWN' => 1,
'AC_SUBST' => 1,
'AC_FUNC_ALLOCA' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_FUNC_GETPGRP' => 1,
'AC_PROG_RANLIB' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AC_FUNC_SETPGRP' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AC_FUNC_MMAP' => 1,
'AC_FUNC_REALLOC' => 1,
'AC_TYPE_SIZE_T' => 1,
'AC_CONFIG_LINKS' => 1,
'AC_CHECK_TYPES' => 1,
'AC_CHECK_MEMBERS' => 1,
'AM_MAINTAINER_MODE' => 1,
'AC_FUNC_UTIME_NULL' => 1,
'AC_FUNC_SELECT_ARGTYPES' => 1,
'AC_HEADER_STAT' => 1,
'AC_FUNC_STRFTIME' => 1,
'AC_PROG_CPP' => 1,
'AC_C_INLINE' => 1,
'AC_PROG_LEX' => 1,
'AC_C_CONST' => 1,
'AC_TYPE_PID_T' => 1,
'AC_CONFIG_FILES' => 1,
'include' => 1,
'AC_FUNC_SETVBUF_REVERSED' => 1,
'AC_PROG_INSTALL' => 1,
'AM_GNU_GETTEXT' => 1,
'AC_CHECK_LIB' => 1,
'AC_FUNC_OBSTACK' => 1,
'AC_FUNC_MALLOC' => 1,
'AC_FUNC_GETGROUPS' => 1,
'AC_FUNC_GETLOADAVG' => 1,
'AH_OUTPUT' => 1,
'AC_FUNC_FSEEKO' => 1,
'AM_PROG_CC_C_O' => 1,
'AC_FUNC_MKTIME' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'AM_CONDITIONAL' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_HEADER_SYS_WAIT' => 1,
'AC_PROG_LN_S' => 1,
'AC_FUNC_MEMCMP' => 1,
'm4_include' => 1,
'AC_HEADER_DIRENT' => 1,
'AC_CHECK_FUNCS' => 1
}
], 'Autom4te::Request' )
);

View file

@ -66,8 +66,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
AMTAR = @AMTAR@
AWK = @AWK@
CC = @CC@
CXX = @CXX@
CYGPATH_W = @CYGPATH_W@
DEPDIR = @DEPDIR@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
PACKAGE = @PACKAGE@
@ -75,14 +73,10 @@ PERL = @PERL@
STRIP = @STRIP@
VERSION = @VERSION@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
dhcpd_conf = @dhcpd_conf@
dhcpd_leases = @dhcpd_leases@
install_sh = @install_sh@
mkdir_p = @mkdir_p@
output_format = @output_format@
output_limit = @output_limit@
@ -94,7 +88,7 @@ dhcpd_pools_SOURCES = dhcpd-pools.c analyze.c getdata.c getopt1.c getopt.c other
INCLUDES = -I.
subdir = src
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/$@)]
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
bin_PROGRAMS = dhcpd-pools$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
@ -108,7 +102,7 @@ dhcpd_pools_DEPENDENCIES =
dhcpd_pools_LDFLAGS =
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@

View file

@ -34,7 +34,7 @@ prepare_data (void)
/* Sort leases */
qsort (leases, (size_t) num_leases, sizeof (long int), &intcomp);
/* Get rid of dublicates */
/* Get rid of lease dublicates */
for (k = j = i = 0; i < num_leases; i++)
{
if (j != leases[i])
@ -46,12 +46,12 @@ prepare_data (void)
}
num_leases = k;
/* Delete touched IPs that are in use */
/* Delete touched IPs that are in use. */
j = 0;
for (i = 0; i < num_touches; i++)
{
if (bsearch
(&touches[i], leases, num_leases, sizeof (long int),
(&touches[i], leases, (size_t) num_leases, sizeof (long int),
&intcomp) == NULL)
{
touches[j] = touches[i];
@ -77,10 +77,12 @@ do_counting (void)
i = j = 0;
range_p = ranges;
/* Walk through ranges */
for (k = 0; k < num_ranges; k++)
{
/* Count IPs in use */
for (; range_p->last_ip > leases[i] && i < num_leases; i++)
for (; range_p->last_ip > leases[i] && (unsigned long) i < num_leases;
i++)
{
if (range_p->first_ip > leases[i])
{
@ -94,9 +96,9 @@ do_counting (void)
}
}
/* Count touched IPs */
for (; range_p->last_ip > touches[j] && j < num_touches; j++)
for (; range_p->last_ip > touches[j] && (unsigned long) j < num_touches;
j++)
{
if (range_p->first_ip > touches[j])
{
@ -111,7 +113,7 @@ do_counting (void)
}
/* Size of range, shared net & all networks */
block_size = range_p->last_ip - range_p->first_ip - 1;
block_size = (unsigned int) (range_p->last_ip - range_p->first_ip - 1);
if (range_p->shared_net)
{
range_p->shared_net->available += block_size;

View file

@ -51,4 +51,7 @@ static const int SHARED_NETWORKS = 1024;
/* Maximum number of ranges */
static const int RANGES = 65536;
/* Merge sort split size */
static const int MIN_MERGE_SIZE = 8;
#endif /* DEFAULTS_H */

View file

@ -43,9 +43,10 @@ extern char *malloc ();
int
main (int argc, char **argv)
{
int c;
int c, i, sorts = 1;
int option_index = 0;
char *tmp;
struct range_t *tmp_ranges;
/* Options for getopt_long */
static struct option const long_options[] = {
@ -63,6 +64,8 @@ main (int argc, char **argv)
program_name = argv[0];
/* TODO: make either dynamic or find out max path lenght that auto config
* provides */
config.dhcpdconf_file = safe_malloc (sizeof (char) * MAXLEN);
config.dhcpdlease_file = safe_malloc (sizeof (char) * MAXLEN);
config.output_file = safe_malloc (sizeof (char) * MAXLEN);
@ -71,15 +74,16 @@ main (int argc, char **argv)
* option */
config.output_file[0] = '\0';
strncpy (config.dhcpdconf_file, DHCPDCONF_FILE, MAXLEN - 1);
strncpy (config.dhcpdlease_file, DHCPDLEASE_FILE, MAXLEN - 1);
/* File location defaults */
strncpy (config.dhcpdconf_file, DHCPDCONF_FILE, (size_t) MAXLEN - 1);
strncpy (config.dhcpdlease_file, DHCPDLEASE_FILE, (size_t) MAXLEN - 1);
tmp = OUTPUT_LIMIT;
config.output_limit[0] = (int) (*tmp - '0');
tmp++;
config.output_limit[1] = (int) (*tmp - '0');
/* Make sure some output format is selected by default */
strncpy (config.output_format, OUTPUT_FORMAT, 1);
strncpy (config.output_format, OUTPUT_FORMAT, (size_t) 1);
/* Default sort order is by IPs small to big */
config.sort[0] = OUTPUT_ORDER;
@ -100,9 +104,10 @@ main (int argc, char **argv)
case 0:
break;
case 'c':
/* config file */
if (optarg != NULL)
{
strncpy (config.dhcpdconf_file, optarg, MAXLEN - 1);
strncpy (config.dhcpdconf_file, optarg, (size_t) MAXLEN - 1);
}
else
{
@ -113,9 +118,10 @@ main (int argc, char **argv)
}
break;
case 'l':
/* lease file */
if (optarg != NULL)
{
strncpy (config.dhcpdlease_file, optarg, MAXLEN - 1);
strncpy (config.dhcpdlease_file, optarg, (size_t) MAXLEN - 1);
}
else
{
@ -125,9 +131,10 @@ main (int argc, char **argv)
}
break;
case 'f':
/* Output format */
if (optarg != NULL)
{
strncpy (config.output_format, optarg, 1);
strncpy (config.output_format, optarg, (size_t) 1);
}
else
{
@ -137,9 +144,20 @@ main (int argc, char **argv)
}
break;
case 's':
/* Output sorting option */
if (optarg != NULL)
{
strncpy (config.sort, optarg, 1);
sorts = strlen (optarg);
if (sorts > 5)
{
eprintf ("main: only 5 first sort orders will be used");
strncpy (config.sort, optarg, (size_t) 5);
sorts = 5;
}
else
{
strncpy (config.sort, optarg, (size_t) sorts);
}
}
else
{
@ -149,9 +167,11 @@ main (int argc, char **argv)
}
break;
case 'r':
/* What ever sort in reverse order */
config.reverse_order = true;
break;
case 'o':
/* Output file */
if (optarg != NULL)
{
strncpy (config.output_file, optarg, (size_t) MAXLEN - 1);
@ -164,6 +184,7 @@ main (int argc, char **argv)
}
break;
case 'L':
/* Specification what will be printed */
if (optarg != NULL)
{
if (optarg[0] >= '0' && optarg[0] < '8')
@ -195,9 +216,11 @@ main (int argc, char **argv)
}
break;
case 'v':
/* Print version */
print_version ();
exit (EXIT_SUCCESS);
case 'h':
/* Print help */
print_help ();
exit (EXIT_SUCCESS);
default:
@ -206,29 +229,6 @@ main (int argc, char **argv)
}
}
/* Sort function selection */
switch (config.sort[0])
{
case 'i':
sort_results = sort_ip;
break;
case 'n':
sort_results = sort_name;
break;
case 'm':
sort_results = sort_max;
break;
case 'c':
sort_results = sort_cur;
break;
case 'p':
sort_results = sort_percent;
break;
default:
eprintf ("main: unknown sort order: %c", config.sort[0]);
print_help ();
exit (EXIT_FAILURE);
}
/* Output function selection */
switch (config.output_format[0])
{
@ -251,13 +251,20 @@ main (int argc, char **argv)
exit (EXIT_FAILURE);
}
/* Do actual job */
/* Do the job */
prepare_memory ();
parse_config (config.dhcpdconf_file, shared_net_names, shared_net_names + strlen (shared_net_names) + 1, shared_networks);
parse_config (config.dhcpdconf_file, shared_net_names,
shared_net_names + strlen (shared_net_names) + 1,
shared_networks);
parse_leases ();
prepare_data ();
do_counting ();
sort_results ();
tmp_ranges = safe_malloc (sizeof (struct range_t) * num_ranges);
mergesort_ranges (ranges, num_ranges, tmp_ranges);
if (config.reverse_order == true) {
flip_ranges(ranges, tmp_ranges);
}
free (tmp_ranges);
output_analysis ();
clean_up ();

View file

@ -36,7 +36,7 @@ struct configuration_t
char *dhcpdconf_file;
char *dhcpdlease_file;
char output_format[2];
char sort[2];
char sort[6];
int reverse_order;
char *output_file;
int output_limit[2];
@ -61,7 +61,6 @@ static int true = 1;
static int false = 0;
char *program_name;
static const float version_number = 2.6;
struct configuration_t config;
static int output_limit_bit_1 = 1;
@ -88,26 +87,29 @@ int parse_config (char *, char *, char *, struct shared_network_t *);
int nth_field (int n, char *dest, const char *src);
int prepare_data (void);
int do_counting (void);
void flip_ranges(struct range_t *ranges, struct range_t *tmp_ranges);
/* General support functions */
void *safe_malloc (size_t size);
void eprintf (char *, ...);
void print_version (void);
void print_help (void);
/* qsort requires comp functions */
/* qsort required functions... */
/* ...for ranges and... */
int intcomp (const void *x, const void *y);
int rangecomp (const void *r1, const void *r2);
int reverserangecomp (const void *r1, const void *r2);
int namecomp (const void *n1, const void *n2);
int maxcomp (const void *m1, const void *m2);
int curcomp (const void *c1, const void *c2);
int percentcomp (const void *p1, const void *p2);
/* sort function pointer and functions */
int (*sort_results) (void);
int sort_ip (void);
int sort_name (void);
int sort_cur (void);
int sort_max (void);
int sort_percent (void);
unsigned long int (*returner) (struct range_t r);
unsigned long int ret_ip(struct range_t r);
unsigned long int ret_cur(struct range_t r);
unsigned long int ret_max(struct range_t r);
unsigned long int ret_percent(struct range_t r);
unsigned long int ret_touched(struct range_t r);
unsigned long int ret_tc(struct range_t r);
unsigned long int ret_tcperc(struct range_t r);
void field_selector(char c);
int get_order(struct range_t *left, struct range_t *right);
void mergesort_ranges (struct range_t *orig, int size, struct range_t *temp);
/* output function pointer and functions */
int (*output_analysis) (void);
int output_txt (void);

View file

@ -58,6 +58,7 @@ parse_leases (void)
char *line, *ipstring;
struct in_addr inp;
struct stat lease_file_stats;
num_touches = num_leases = 0;
dhcpd_leases = fopen (config.dhcpdlease_file, "r");
@ -81,7 +82,7 @@ parse_leases (void)
safe_malloc (sizeof (long int) *
((lease_file_stats.st_size / 250) + MAXLEN));
touches =
safe_malloc (sizeof (long int) *
safe_malloc ((size_t) sizeof (long int) *
((lease_file_stats.st_size / 250) + MAXLEN));
line = safe_malloc (sizeof (long int) * MAXLEN);
@ -93,7 +94,7 @@ parse_leases (void)
/* It's a lease */
if (strstr (line, "lease") == line)
{
strncpy (ipstring, line, MAXLEN - 1);
strncpy (ipstring, line, (size_t) MAXLEN - 1);
}
/* And this is lease state which we are interested about */
if (strstr (line, "binding state active"))
@ -120,34 +121,36 @@ parse_leases (void)
* have. Question of semantics, send mail to author if this
* annoys. All performance boosts for this function are well
* come. */
int
nth_field (int n, char *dest, const char *src)
{
int i, j, k, th;
i = j = k = th = 0;
int i, j = 0, wordn = 0;
for (; i < MAXLEN && th < n; i++)
for (i = 0; i < MAXLEN; i++)
{
if (src[i] == ' ' || src[i] == '\t')
if (isspace (src[i]))
{
if (j == 0 && i != 0)
if (!(wordn < n))
{
th++;
dest[j] = '\0';
break;
}
j = 1;
}
else if (th + 1 == n)
{
dest[k] = src[i];
k++;
j = 0;
}
else
{
j = 0;
if (j == 0)
{
wordn++;
}
if (wordn == n)
{
dest[j] = src[i];
}
j++;
}
}
dest[k] = '\0';
return 0;
}
@ -191,9 +194,6 @@ parse_config (char *config_file, char *current_shared_name,
/* Default place holder for ranges "All networks".
* If this is include file basicly nothing happens. */
shared_p->name = current_shared_name;
shared_p->available = 0;
shared_p->used = 0;
shared_p->touched = 0;
/* Open configuration file */
dhcpd_config = fopen (config_file, "r");
@ -267,6 +267,7 @@ parse_config (char *config_file, char *current_shared_name,
if (braces_shared == braces)
{
current_shared_name = shared_net_names;
/* TODO: Using 1000 is lame, but works. */
braces_shared = 1000;
shared_p = shared_networks;
}
@ -289,7 +290,8 @@ parse_config (char *config_file, char *current_shared_name,
continue;
}
/* Save to word which clause this is. */
if ((newclause == true || argument != 0) && (!isspace (c) || quote == true))
if ((newclause == true || argument != 0)
&& (!isspace (c) || quote == true))
{
word[i] = c;
i++;
@ -345,7 +347,7 @@ parse_config (char *config_file, char *current_shared_name,
{
/* TODO: make this go away by reallocationg more space. */
eprintf
("End of shared-network space, increase SHARED_NETWORKS_NAMES and recompile");
("parse_config: End of shared-network space, increase SHARED_NETWORKS_NAMES and recompile");
}
argument = 0;
break;
@ -382,7 +384,7 @@ parse_config (char *config_file, char *current_shared_name,
newclause = true;
break;
default:
eprintf ("This cannot happpen, report a bug!");
eprintf ("parse_config: This cannot happen, report a bug!");
exit (EXIT_FAILURE);
}
}

View file

@ -72,10 +72,24 @@ eprintf (char *fmt, ...)
fprintf (stderr, "\n");
}
void flip_ranges(struct range_t *ranges, struct range_t *tmp_ranges)
{
int i = num_ranges - 1, j;
for (j = 0; j < num_ranges; j++) {
*(tmp_ranges + j) = *(ranges + i);
i--;
}
memcpy (ranges, tmp_ranges, num_ranges * sizeof (struct range_t));
}
/* Free memory, flush buffers etc*/
void
clean_up (void)
{
int ret;
free (config.dhcpdconf_file);
free (config.dhcpdlease_file);
free (config.output_file);
@ -83,14 +97,14 @@ clean_up (void)
free (shared_net_names);
free (shared_networks);
/* Just in case there something in buffers */
fclose (stdout);
if (errno)
ret = fclose (stdout);
if (errno || ret)
{
eprintf ("clean_up: stdout:");
exit (EXIT_FAILURE);
}
fclose (stderr);
if (errno)
ret = fclose (stderr);
if (errno || ret)
{
eprintf ("clean_up: stderr:");
exit (EXIT_FAILURE);
@ -100,13 +114,11 @@ clean_up (void)
void
print_version (void)
{
fprintf (stdout, "%s version %.1f\n", program_name, version_number);
fprintf (stdout, "Written by Sami Kerola.\n\n");
fprintf (stdout, "%s version 2.7\n", program_name);
fprintf (stdout,
"%s may be copied only under the terms of GNU General Public\n",
program_name);
"Program may be copied only under the terms of GNU General Public\n");
fprintf (stdout,
"License, which may be found in the dhcpd-pools source kit.\n");
"License, which may be found in the dhcpd-pools source distribution.\n");
}
void
@ -128,12 +140,15 @@ This is ISC dhcpd pools usage analyzer.\n\
s is snmp\n");
*/
fprintf (stdout, "\
-s --sort [inmcp] sort ranges by\n\
i IP\n\
-s --sort [nimcptTe] sort ranges by\n\
n name\n\
i IP\n\
m maxium\n\
c current\n\
p percent\n");
p percent\n\
t touched\n\
T t+c\n\
e t+c perc\n");
fprintf (stdout, "\
-r --reverse reverse order sort\n\
-o --output file output into a file\n\

View file

@ -24,7 +24,6 @@
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include "dhcpd-pools.h"
@ -35,6 +34,7 @@ output_txt (void)
struct in_addr first, last;
struct range_t *range_p;
struct shared_network_t *shared_p;
int ret;
FILE *outfile;
if (config.output_file[0])
@ -145,26 +145,21 @@ output_txt (void)
}
if (outfile == stdout)
{
fflush (stdout);
ret = fflush (stdout);
if (ret)
{
eprintf ("output_txt: fflush:");
}
}
else
{
fclose (outfile);
}
if (errno)
{
if (config.output_file[0])
ret = fclose (outfile);
if (ret)
{
eprintf ("output_txt: %s:", config.output_file);
eprintf ("output_txt: fclose:");
}
else
{
eprintf ("output_txt: stdout:");
}
exit (EXIT_FAILURE);
}
return 0;
}
@ -175,6 +170,7 @@ output_html (void)
struct in_addr first, last;
struct range_t *range_p;
struct shared_network_t *shared_p;
int ret;
FILE *outfile;
if (config.output_file[0])
@ -277,25 +273,21 @@ output_html (void)
fprintf (outfile, "</table>\n");
if (outfile == stdout)
{
fflush (stdout);
ret = fflush (stdout);
if (ret)
{
eprintf ("output_html: fflush:");
}
}
else
{
fclose (outfile);
}
if (errno)
{
if (config.output_file[0])
ret = fclose (outfile);
if (ret)
{
eprintf ("output_html: %s:", config.output_file);
eprintf ("output_html: fclose:");
}
else
{
eprintf ("output_html: stdout:");
}
exit (EXIT_FAILURE);
}
}
return 0;
}
@ -307,6 +299,7 @@ output_csv (void)
struct range_t *range_p;
struct shared_network_t *shared_p;
FILE *outfile;
int ret;
if (config.output_file[0])
{
@ -406,23 +399,21 @@ output_csv (void)
}
if (outfile == stdout)
{
fflush (stdout);
ret = fflush (stdout);
if (ret)
{
eprintf ("output_cvs: fflush:");
}
}
else
{
fclose (outfile);
}
if (errno)
{
if (config.output_file[0])
ret = fclose (outfile);
if (ret)
{
eprintf ("output_csv: %s:", config.output_file);
}
else
{
eprintf ("output_csv: stdout:");
exit (EXIT_FAILURE);
eprintf ("output_cvs: fclose:");
}
}
return 0;
}

View file

@ -1,4 +1,3 @@
/*
** Copyright (C) 2006- Sami Kerola <kerolasa@iki.fi>
**
@ -23,10 +22,12 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "dhcpd-pools.h"
#include "defaults.h"
/* qsort predicate-like functions */
/* Sort functions for range sorting */
int
intcomp (const void *x, const void *y)
{
@ -51,152 +52,193 @@ rangecomp (const void *r1, const void *r2)
return 0;
}
int
reverserangecomp (const void *r1, const void *r2)
unsigned long int
ret_ip (struct range_t r)
{
if ((((struct range_t *) r1)->first_ip) <
(((struct range_t *) r2)->first_ip))
return 1;
else if ((((struct range_t *) r2)->first_ip) <
(((struct range_t *) r1)->first_ip))
return -1;
else
return 0;
return (r.first_ip);
}
int
namecomp (const void *n1, const void *n2)
unsigned long int
ret_cur (struct range_t r)
{
int ret;
ret = strcmp ((((struct range_t *) n1)->shared_net->name),
(((struct range_t *) n2)->shared_net->name));
if (config.reverse_order == true)
return (r.count);
}
unsigned long int
ret_max (struct range_t r)
{
return (r.last_ip - r.first_ip);
}
unsigned long int
ret_percent (struct range_t r)
{
float f;
f = (float) r.count / (r.last_ip - r.first_ip - 1);
return ((unsigned long int) (f * 100000));
}
unsigned long int
ret_touched (struct range_t r)
{
return (r.touched);
}
unsigned long int
ret_tc (struct range_t r)
{
return (r.count + r.touched);
}
unsigned long int
ret_tcperc (struct range_t r)
{
float f;
f = (float) (r.count + r.touched) / (r.last_ip - r.first_ip - 1);
return ((unsigned long int) (f * 10000));
}
void
field_selector (char c)
{
switch (c)
{
return ret * -1;
}
else
{
return ret;
case 'n':
break;
case 'i':
returner = ret_ip;
break;
case 'm':
returner = ret_max;
break;
case 'c':
returner = ret_cur;
break;
case 'p':
returner = ret_percent;
break;
case 't':
returner = ret_touched;
break;
case 'T':
returner = ret_tc;
break;
case 'e':
returner = ret_tcperc;
break;
default:
eprintf ("field_selector: unknown sort order: %c", config.sort[0]);
print_help;
exit (EXIT_FAILURE);
}
}
/* Needed to support multiple key sorting. */
int
maxcomp (const void *m1, const void *m2)
get_order (struct range_t *left, struct range_t *right)
{
int ret;
if ((((struct range_t *) m1)->last_ip - ((struct range_t *) m1)->first_ip -
1) <
(((struct range_t *) m2)->last_ip - ((struct range_t *) m2)->first_ip -
1))
ret = -1;
else
if ((((struct range_t *) m2)->last_ip -
((struct range_t *) m2)->first_ip - 1) <
(((struct range_t *) m1)->last_ip -
((struct range_t *) m1)->first_ip - 1))
ret = 1;
else
ret = 0;
if (config.reverse_order == true)
int i, len, ret;
unsigned long int lint, rint;
len = strlen (config.sort);
for (i = 0; i < len; i++)
{
return ret * -1;
/* Handling strings is case of it's own */
if (config.sort[i] == 'n')
{
ret = strcmp (left->shared_net->name, right->shared_net->name);
if (ret > 0)
{
return (0);
}
else if (ret < 0)
{
return (1);
}
else
{
continue;
}
}
/* Select which function is pointed by returner */
field_selector (config.sort[i]);
lint = returner (*left);
rint = returner (*right);
/* If fields are equal use next sort method */
if (lint == rint)
{
continue;
}
if (lint < rint)
{
return (1);
}
return (0);
}
else
/* If all returners where equal */
return (0);
}
void
mergesort_ranges (struct range_t *orig, int size, struct range_t *temp)
{
int left, right, i;
long int val;
struct range_t hold;
if (size < MIN_MERGE_SIZE)
{
return ret;
for (left = 0; left < size; left++)
{
hold = *(orig + left);
for (right = left - 1; right >= 0; right--)
{
if (get_order ((orig + right), &hold))
{
break;
}
*(orig + right + 1) = *(orig + right);
}
*(orig + right + 1) = hold;
}
return;
}
}
int
curcomp (const void *c1, const void *c2)
{
int ret;
if ((((struct range_t *) c1)->count) < (((struct range_t *) c2)->count))
ret = -1;
else if ((((struct range_t *) c2)->count) <
(((struct range_t *) c1)->count))
ret = 1;
else
ret = 0;
if (config.reverse_order == true)
mergesort_ranges (orig, size / 2, temp);
mergesort_ranges (orig + size / 2, size - size / 2, temp);
left = 0;
right = size / 2;
i = 0;
while (left < size / 2 && right < size)
{
return ret * -1;
if (get_order ((orig + left), (orig + right)))
{
*(temp + i) = *(orig + left);
left++;
}
else
{
*(temp + i) = *(orig + right);
right++;
}
i++;
}
else
while (left < size / 2)
{
return ret;
*(temp + i) = *(orig + left);
left++;
i++;
}
}
int
percentcomp (const void *p1, const void *p2)
{
float f1, f2;
int ret;
f1 = (float) (((struct range_t *) p1)->count) /
(((struct range_t *) p1)->last_ip -
((struct range_t *) p1)->first_ip - 1);
f2 =
(float) (((struct range_t *) p2)->count) /
(((struct range_t *) p2)->last_ip - ((struct range_t *) p2)->first_ip -
1);
if (f1 < f2)
ret = -1;
else if (f1 > f2)
ret = 1;
else
ret = 0;
if (config.reverse_order == true)
while (right < size)
{
return ret * -1;
*(temp + i) = *(orig + right);
right++;
i++;
}
else
{
return ret;
}
}
/* Function pointer functions for output sorting */
int
sort_ip (void)
{
/* There is no need to order results in forward order since ranges are in
* that order by default */
if (config.reverse_order == true)
{
qsort (ranges, (size_t) num_ranges, sizeof (struct range_t),
&reverserangecomp);
}
return 0;
}
int
sort_name (void)
{
/* code here */
qsort (ranges, (size_t) num_ranges, sizeof (struct range_t), &namecomp);
return 0;
}
int
sort_cur (void)
{
qsort (ranges, (size_t) num_ranges, sizeof (struct range_t), &curcomp);
return 0;
}
int
sort_max (void)
{
qsort (ranges, (size_t) num_ranges, sizeof (struct range_t), &maxcomp);
return 0;
}
int
sort_percent (void)
{
qsort (ranges, (size_t) num_ranges, sizeof (struct range_t), &percentcomp);
return 0;
memcpy (orig, temp, size * sizeof (struct range_t));
}

221
traces.0 Normal file
View file

@ -0,0 +1,221 @@
m4trace:configure.in:5: -1- AC_INIT([dhcpd-pools], [2.4], [kerolasa@iki.fi])
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
m4trace:configure.in:5: -1- m4_pattern_forbid([_AC_])
m4trace:configure.in:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
m4trace:configure.in:5: -1- m4_pattern_allow([^AS_FLAGS$])
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?m4_])
m4trace:configure.in:5: -1- m4_pattern_forbid([^dnl$])
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?AS_])
m4trace:configure.in:5: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
m4trace:configure.in:5: -1- AC_SUBST([PATH_SEPARATOR])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
m4trace:configure.in:5: -1- AC_SUBST([exec_prefix], [NONE])
m4trace:configure.in:5: -1- AC_SUBST([prefix], [NONE])
m4trace:configure.in:5: -1- AC_SUBST([program_transform_name], [s,x,x,])
m4trace:configure.in:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
m4trace:configure.in:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
m4trace:configure.in:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
m4trace:configure.in:5: -1- AC_SUBST([datadir], ['${prefix}/share'])
m4trace:configure.in:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
m4trace:configure.in:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
m4trace:configure.in:5: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
m4trace:configure.in:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
m4trace:configure.in:5: -1- AC_SUBST([includedir], ['${prefix}/include'])
m4trace:configure.in:5: -1- AC_SUBST([oldincludedir], ['/usr/include'])
m4trace:configure.in:5: -1- AC_SUBST([infodir], ['${prefix}/info'])
m4trace:configure.in:5: -1- AC_SUBST([mandir], ['${prefix}/man'])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
#undef PACKAGE_NAME])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
#undef PACKAGE_VERSION])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
#undef PACKAGE_STRING])
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT])
m4trace:configure.in:5: -1- AC_SUBST([build_alias])
m4trace:configure.in:5: -1- AC_SUBST([host_alias])
m4trace:configure.in:5: -1- AC_SUBST([target_alias])
m4trace:configure.in:5: -1- AC_SUBST([DEFS])
m4trace:configure.in:5: -1- AC_SUBST([ECHO_C])
m4trace:configure.in:5: -1- AC_SUBST([ECHO_N])
m4trace:configure.in:5: -1- AC_SUBST([ECHO_T])
m4trace:configure.in:5: -1- AC_SUBST([LIBS])
m4trace:configure.in:7: -1- AM_INIT_AUTOMAKE([1.9 foreign])
m4trace:configure.in:7: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
m4trace:configure.in:7: -1- AM_AUTOMAKE_VERSION([1.9.6])
m4trace:configure.in:7: -1- AC_PROG_INSTALL
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_PROGRAM])
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_SCRIPT])
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_DATA])
m4trace:configure.in:7: -1- AC_SUBST([CYGPATH_W])
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
m4trace:configure.in:7: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
#undef PACKAGE])
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
m4trace:configure.in:7: -1- AH_OUTPUT([VERSION], [/* Version number of package */
#undef VERSION])
m4trace:configure.in:7: -1- AC_SUBST([ACLOCAL])
m4trace:configure.in:7: -1- AC_SUBST([AUTOCONF])
m4trace:configure.in:7: -1- AC_SUBST([AUTOMAKE])
m4trace:configure.in:7: -1- AC_SUBST([AUTOHEADER])
m4trace:configure.in:7: -1- AC_SUBST([MAKEINFO])
m4trace:configure.in:7: -1- AC_SUBST([install_sh])
m4trace:configure.in:7: -1- AC_SUBST([STRIP])
m4trace:configure.in:7: -1- AC_SUBST([ac_ct_STRIP])
m4trace:configure.in:7: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
m4trace:configure.in:7: -1- AC_SUBST([mkdir_p])
m4trace:configure.in:7: -1- AC_PROG_AWK
m4trace:configure.in:7: -1- AC_SUBST([AWK])
m4trace:configure.in:7: -1- AC_PROG_MAKE_SET
m4trace:configure.in:7: -1- AC_SUBST([SET_MAKE])
m4trace:configure.in:7: -1- AC_SUBST([am__leading_dot])
m4trace:configure.in:7: -1- AC_SUBST([AMTAR])
m4trace:configure.in:7: -1- AC_SUBST([am__tar])
m4trace:configure.in:7: -1- AC_SUBST([am__untar])
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AM_CONFIG_HEADER' is obsolete.
You should run autoupdate.], [aclocal.m4:353: AM_CONFIG_HEADER is expanded from...
configure.in:9: the top level])
m4trace:configure.in:9: -1- AC_CONFIG_HEADERS([config.h])
m4trace:configure.in:10: -1- AC_PROG_CC
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([CFLAGS])
m4trace:configure.in:10: -1- AC_SUBST([LDFLAGS])
m4trace:configure.in:10: -1- AC_SUBST([CPPFLAGS])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_CC])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_CC])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([CC])
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_CC])
m4trace:configure.in:10: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
m4trace:configure.in:10: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
m4trace:configure.in:10: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
m4trace:configure.in:10: -1- AC_SUBST([am__include])
m4trace:configure.in:10: -1- AC_SUBST([am__quote])
m4trace:configure.in:10: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
m4trace:configure.in:10: -1- AC_SUBST([AMDEP_TRUE])
m4trace:configure.in:10: -1- AC_SUBST([AMDEP_FALSE])
m4trace:configure.in:10: -1- AC_SUBST([AMDEPBACKSLASH])
m4trace:configure.in:10: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
m4trace:configure.in:10: -1- AM_CONDITIONAL([am__fastdepCC], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
m4trace:configure.in:10: -1- AC_SUBST([am__fastdepCC_TRUE])
m4trace:configure.in:10: -1- AC_SUBST([am__fastdepCC_FALSE])
m4trace:configure.in:25: -1- AC_SUBST([dhcpd_conf])
m4trace:configure.in:33: -1- AC_SUBST([dhcpd_leases])
m4trace:configure.in:41: -1- AC_SUBST([output_format])
m4trace:configure.in:49: -1- AC_SUBST([output_limit])
m4trace:configure.in:51: -1- AC_CHECK_FUNCS([getopt_long inet_aton inet_addr], [break])
m4trace:configure.in:51: -1- AH_OUTPUT([HAVE_GETOPT_LONG], [/* Define to 1 if you have the `getopt_long\' function. */
#undef HAVE_GETOPT_LONG])
m4trace:configure.in:51: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */
#undef HAVE_INET_ATON])
m4trace:configure.in:51: -1- AH_OUTPUT([HAVE_INET_ADDR], [/* Define to 1 if you have the `inet_addr\' function. */
#undef HAVE_INET_ADDR])
m4trace:configure.in:53: -1- AC_CHECK_LIB([resolv], [inet_ntoa])
m4trace:configure.in:53: -1- AH_OUTPUT([HAVE_LIBRESOLV], [/* Define to 1 if you have the `resolv\' library (-lresolv). */
#undef HAVE_LIBRESOLV])
m4trace:configure.in:53: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRESOLV])
m4trace:configure.in:56: -1- AC_CHECK_HEADERS([arpa/inet.h errno.h netinet/in.h stdio.h \
stdlib.h string.h sys/socket.h sys/stat.h sys/types.h unistd.h])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
#undef HAVE_ERRNO_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDIO_H], [/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H])
m4trace:configure.in:56: -1- AC_HEADER_STDC
m4trace:configure.in:56: -1- AC_PROG_CPP
m4trace:configure.in:56: -1- AC_SUBST([CPP])
m4trace:configure.in:56: -1- AC_SUBST([CPPFLAGS])
m4trace:configure.in:56: -1- AC_SUBST([CPP])
m4trace:configure.in:56: -1- AC_SUBST([EGREP])
m4trace:configure.in:56: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
m4trace:configure.in:56: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS])
m4trace:configure.in:56: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H])
m4trace:configure.in:56: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H])
m4trace:configure.in:59: -2- AC_DEFINE_TRACE_LITERAL([HAVE_GETOPT_H])
m4trace:configure.in:60: -1- AC_CHECK_HEADERS([getopt.h], [cat >>confdefs.h <<\_ACEOF
@%:@define HAVE_GETOPT_H 1
_ACEOF
], [import_sources="getopt.c getopt1.c $import_sources"])
m4trace:configure.in:60: -1- AH_OUTPUT([HAVE_GETOPT_H], [/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H])
m4trace:configure.in:63: -1- AC_FUNC_ALLOCA
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H])
m4trace:configure.in:63: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#undef HAVE_ALLOCA_H])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA])
m4trace:configure.in:63: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */
#undef HAVE_ALLOCA])
m4trace:configure.in:63: -1- AC_LIBSOURCE([alloca.c])
m4trace:configure.in:63: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA])
m4trace:configure.in:63: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */
#undef C_ALLOCA])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END])
m4trace:configure.in:63: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c\' support on those systems.
*/
#undef CRAY_STACKSEG_END])
m4trace:configure.in:63: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
@%:@undef STACK_DIRECTION])
m4trace:configure.in:63: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION])
m4trace:configure.in:66: -1- AC_SUBST([PERL])
m4trace:configure.in:68: -1- AC_CONFIG_FILES([Makefile man/Makefile src/Makefile])
m4trace:configure.in:70: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
m4trace:configure.in:70: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])