diff --git a/.gitignore b/.gitignore index 24f1410..d63edb6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # Wildcard + in any subdir. *.o +*.gcno +*.gcda +*.[ch].gcov # Exact filename in any subdir. .deps diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..7f7f47f --- /dev/null +++ b/.mailmap @@ -0,0 +1,2 @@ +Sami Kerola +Sami Kerola diff --git a/Makefile.am b/Makefile.am index b1f14be..65b6ba2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,6 @@ ## Makefile.am -- Process this file with automake to produce Makefile.in AUTOMAKE_OPTIONS = gnu -ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ .version \ @@ -40,7 +39,7 @@ edit_cmd = sed \ $(PATHFILES): Makefile @ rm -f $@ $@.tmp - $(AM_V_at) test -d $(dir $@) || mkdir -p $(dir $@) + $(AM_V_at) mkdir -p $$(dirname $@) $(AM_V_GEN) srcdir=''; \ test -f ./$@.in || srcdir=$(srcdir)/; \ $(edit_cmd) $${srcdir}$@.in >$@.tmp diff --git a/NEWS b/NEWS index 7022464..624e0f2 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,77 @@ Please send dhcpd-pools bug reports to kerolasa@iki.fi. gpg: Signature is crated using RSA key ID 8ED396E37E38D471A00530D3A9553245FDE9B739. + +Version 3.3 +Belkacem Daheb (2): + add start, end and hostname printing support for xml and json + getdata output: add start, end and hostname printing support for xml and json + +M. van Brummelen (1): + docs: fix manual page groff warning + +Sami Kerola (9): + update project web page + website: use https + chore: update web links + getdata: only emit warning when config include file cannot be read + gnulib: update bootstrap and gitignore files + build-sys: quote subshell execution in the autotools file + build-sys: update bootstrap from gnulib + output: update html javascripts + release: 3.3 + +luisδμ (1): + fix: avoid generation of unvalid JSON in summary + +Version 3.2 +Jean Benoit (1): + contrib: snmptest.pl SNMPwalk can't access to all variables/wrong sort + +Sami Kerola (5): + contrib: point out where one can find zabbix template + build-sys: update .gitignore files + config: remove unnecessary padding + build-sys: autotools and gnulib related updates + build-sys: routine update + release: 3.2 + +Version 3.1 +Mark Sangster (1): + output: fix warn and crit counts on shared networks + +Sami Kerola (31): + webpage: add instructions how to get output you need + build-sys: add coverage files to .gitignore + tests: improve coverage + docs: fix peoples name in THANKS file to have correct characters + add .mailmap + output: fix implicit conversion + main: simplify option parsing + fix typo + main: move print_mac_addreses to state structure + main: move output_format to state, and rename color_format + webpages: use html sample output + fix switch missing default case warnings + sort: ensure NaN will not trip over comp_double() + drop images, java scripts, and such from web sitemap file + getdata: remote dead code + other: use strftime() to generate date-time string + lib: update .gitignore + fix typos + various: fix few warnings + warnings: ensure optimal packing in structures + other: use IP string lengths from netinet/in.h + mustach: sync with most recent mustach upstream changes + various: tidy up variable scopes, and one name mismatch + build-sys: update .gitignore files + output: add warning and critical threshold counts to mustach + samples: make prometheus template less klunky + misc: fix spelling issues + output: add ethernet address priting support to --mustach + build-sys: update bootstrap from gnulib + output: update javascripts + release: 3.1 Version 3.0 Sami Kerola (56): diff --git a/README b/README index 6a9ae41..5953fba 100644 --- a/README +++ b/README @@ -28,7 +28,7 @@ Quick start. Dependencies to other projects. - http://www.gnu.org/software/gnulib/ + https://www.gnu.org/software/gnulib/ You can avoid repeated gnulib downloads by setting GNULIB_SRCDIR environment variable. For example: @@ -39,7 +39,7 @@ Dependencies to other projects. Assumign detached gnulib please remember to git pull the latest updates before building dhcpd-pools. - http://uthash.sourceforge.net/ + https://troydhanson.github.io/uthash/ See quick start. diff --git a/THANKS b/THANKS index badafec..2aec631 100644 --- a/THANKS +++ b/THANKS @@ -5,23 +5,23 @@ Project is maintained by Sami Kerola People who reported problems, give improvement suggestions or even contributed code. -Otto J. Mäkelä +Otto J. Mäkelä Mika Paananen Frank Bulk Roar Pettersen Jeff Wieland Rusty -Fredrik Vöcks +Fredrik Vöcks Dan Thorson -Stian Øvrevåge +Stian ØvrevÃ¥ge Dominic Germain -Anders Låstad +Anders LÃ¥stad Thor Eivind Brantzeg Ahmed AL Dakhil Adam Ciarcinski -Rezso Gajdóczy +RezsÅ‘ Gajdóczy Robert Viou -Enno Gröper +Enno Gröper Troy D. Hanson Ryan Malek Cheer Xiao @@ -30,7 +30,7 @@ Helmut Grohne Joey D. Ryan Steinmetz Dan Pritts -Fredrik Lysén +Fredrik Lysén Conor McCarthy Wolfgang Steudel Aaron Paetznick @@ -44,4 +44,11 @@ Klaus Slott Boris Lytochkin Jeff Bailey José Bollo -Sebastián Cramatte +Sebastián Cramatte +Mark Sangster +Brent Swingle +Mathieu Morier +Jean Benoit +Belkacem Daheb +Björn Lässig +Luisδμ diff --git a/bootstrap b/bootstrap index 43c8545..6f289d7 100755 --- a/bootstrap +++ b/bootstrap @@ -1,34 +1,67 @@ #! /bin/sh -# Print a version string. -scriptversion=2017-09-13.06; # UTC +# DO NOT EDIT! GENERATED AUTOMATICALLY! # Bootstrap this package from checked-out sources. -# Copyright (C) 2003-2017 Free Software Foundation, Inc. +scriptversion=2024-07-04.10; # UTC +# Copyright (C) 2003-2025 Free Software Foundation, Inc. +# # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. - +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. - +# # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Originally written by Paul Eggert. The canonical version of this -# script is maintained as build-aux/bootstrap in gnulib, however, to -# be useful to your project, you should place a copy of it under -# version control in the top-level directory of your project. The +# script is maintained as top/bootstrap in gnulib. However, to be +# useful to your package, you should place a copy of it under version +# control in the top-level directory of your package. The intent is +# that all customization can be done with a bootstrap.conf file also +# maintained in your version control; gnulib comes with a template +# build-aux/bootstrap.conf to get you started. + +# Please report bugs or propose patches to bug-gnulib@gnu.org. + +me="$0" +medir=`dirname "$me"` + +# Read the function library and the configuration. + +# A library of shell functions for autopull.sh, autogen.sh, and bootstrap. + +scriptlibversion=2025-02-16.12; # UTC + +# Copyright (C) 2003-2025 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Originally written by Paul Eggert. The canonical version of this +# script is maintained as top/bootstrap-funclib.sh in gnulib. However, +# to be useful to your package, you should place a copy of it under +# version control in the top-level directory of your package. The # intent is that all customization can be done with a bootstrap.conf # file also maintained in your version control; gnulib comes with a # template build-aux/bootstrap.conf to get you started. -# Please report bugs or propose patches to bug-gnulib@gnu.org. - nl=' ' @@ -36,49 +69,17 @@ nl=' LC_ALL=C export LC_ALL -# Ensure that CDPATH is not set. Otherwise, the output from cd -# would cause trouble in at least one use below. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -local_gl_dir=gl - # Honor $PERL, but work even if there is none. PERL="${PERL-perl}" -me=$0 +default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git -usage() { - cat </dev/null) +if test -z "$package"; then + package=$(sed -n "$extract_package_name" configure.ac) \ + || die 'cannot find package name in configure.ac' +fi +package=$(echo "$package" | sed "$normalize_package_name") gnulib_name=lib$package build_aux=build-aux @@ -171,7 +187,15 @@ source_base=lib m4_base=m4 doc_base=doc tests_base=tests -gnulib_extra_files='' +gnulib_extra_files=" + build-aux/install-sh + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/depcomp + build-aux/config.guess + build-aux/config.sub + doc/INSTALL +" # Additional gnulib-tool options to use. Use "\newline" to break lines. gnulib_tool_option_extras= @@ -191,14 +215,12 @@ COPYRIGHT_HOLDER='Free Software Foundation, Inc.' MSGID_BUGS_ADDRESS=bug-$package@gnu.org # Files we don't want to import. +# XXX Not used. excluded_files= # File that should exist in the top directory of a checked out hierarchy, # but not in a distribution tarball. -checkout_only_file=TODO - -# Whether to use copies instead of symlinks. -copy=false +checkout_only_file=project.doap # Set this to '.cvsignore .gitignore' in bootstrap.conf if you want # those files to be generated in directories like lib/, m4/, and po/. @@ -210,8 +232,13 @@ vc_ignore=auto # default. bootstrap_sync=false -# Use git to update gnulib sources -use_git=true +# Override the default configuration, if necessary. +# Make sure that bootstrap.conf is sourced from the current directory +# if we were invoked as "sh bootstrap". +conffile=`dirname "$me"`/bootstrap.conf +test -r "$conffile" && . "$conffile" + +# ------------------------- Build-time prerequisites ------------------------- check_exists() { if test "$1" = "--verbose"; then @@ -228,157 +255,6 @@ check_exists() { test $? -lt 126 } -# find_tool ENVVAR NAMES... -# ------------------------- -# Search for a required program. Use the value of ENVVAR, if set, -# otherwise find the first of the NAMES that can be run. -# If found, set ENVVAR to the program name, die otherwise. -# -# FIXME: code duplication, see also gnu-web-doc-update. -find_tool () -{ - find_tool_envvar=$1 - shift - find_tool_names=$@ - eval "find_tool_res=\$$find_tool_envvar" - if test x"$find_tool_res" = x; then - for i; do - if check_exists $i; then - find_tool_res=$i - break - fi - done - fi - if test x"$find_tool_res" = x; then - warn_ "one of these is required: $find_tool_names;" - die "alternatively set $find_tool_envvar to a compatible tool" - fi - eval "$find_tool_envvar=\$find_tool_res" - eval "export $find_tool_envvar" -} - -# Override the default configuration, if necessary. -# Make sure that bootstrap.conf is sourced from the current directory -# if we were invoked as "sh bootstrap". -case "$0" in - */*) test -r "$0.conf" && . "$0.conf" ;; - *) test -r "$0.conf" && . ./"$0.conf" ;; -esac - -# Extra files from gnulib, which override files from other sources. -test -z "${gnulib_extra_files}" && \ - gnulib_extra_files=" - build-aux/install-sh - build-aux/mdate-sh - build-aux/texinfo.tex - build-aux/depcomp - build-aux/config.guess - build-aux/config.sub - doc/INSTALL -" - -if test "$vc_ignore" = auto; then - vc_ignore= - test -d .git && vc_ignore=.gitignore - test -d CVS && vc_ignore="$vc_ignore .cvsignore" -fi - -# Translate configuration into internal form. - -# Parse options. - -for option -do - case $option in - --help) - usage - exit;; - --gnulib-srcdir=*) - GNULIB_SRCDIR=${option#--gnulib-srcdir=};; - --skip-po) - SKIP_PO=t;; - --force) - checkout_only_file=;; - --copy) - copy=true;; - --bootstrap-sync) - bootstrap_sync=true;; - --no-bootstrap-sync) - bootstrap_sync=false;; - --no-git) - use_git=false;; - *) - die "$option: unknown option";; - esac -done - -$use_git || test -d "$GNULIB_SRCDIR" \ - || die "Error: --no-git requires --gnulib-srcdir" - -if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then - die "Bootstrapping from a non-checked-out distribution is risky." -fi - -# Strip blank and comment lines to leave significant entries. -gitignore_entries() { - sed '/^#/d; /^$/d' "$@" -} - -# If $STR is not already on a line by itself in $FILE, insert it at the start. -# Entries are inserted at the start of the ignore list to ensure existing -# entries starting with ! are not overridden. Such entries support -# whitelisting exceptions after a more generic blacklist pattern. -insert_if_absent() { - file=$1 - str=$2 - test -f $file || touch $file - test -r $file || die "Error: failed to read ignore file: $file" - duplicate_entries=$(gitignore_entries $file | sort | uniq -d) - if [ "$duplicate_entries" ] ; then - die "Error: Duplicate entries in $file: " $duplicate_entries - fi - linesold=$(gitignore_entries $file | wc -l) - linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l) - if [ $linesold != $linesnew ] ; then - { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \ - || die "insert_if_absent $file $str: failed" - fi -} - -# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with -# insert_if_absent. -insert_vc_ignore() { - vc_ignore_file="$1" - pattern="$2" - case $vc_ignore_file in - *.gitignore) - # A .gitignore entry that does not start with '/' applies - # recursively to subdirectories, so prepend '/' to every - # .gitignore entry. - pattern=$(echo "$pattern" | sed s,^,/,);; - esac - insert_if_absent "$vc_ignore_file" "$pattern" -} - -# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. -found_aux_dir=no -grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ - >/dev/null && found_aux_dir=yes -grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ - >/dev/null && found_aux_dir=yes -test $found_aux_dir = yes \ - || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" - -# If $build_aux doesn't exist, create it now, otherwise some bits -# below will malfunction. If creating it, also mark it as ignored. -if test ! -d $build_aux; then - mkdir $build_aux - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - insert_vc_ignore $dot_ig $build_aux - done -fi - # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old @@ -406,7 +282,7 @@ sort_ver() { # sort -V is not generally available elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison echo "$1 $2" else # numeric, then lexicographic comparison - lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) + lp=$(printf "%s\n%s\n" "$p1" "$p2" | LANG=C sort -n | tail -n1) if [ "$lp" = "$p2" ]; then echo "$1 $2" else @@ -453,9 +329,9 @@ check_versions() { if test "$app" = libtool; then app=libtoolize fi - # Exempt git if --no-git is in effect. + # Exempt git if git is not needed. if test "$app" = git; then - $use_git || continue + $check_git || continue fi # Honor $APP variables ($TAR, $AUTOCONF, etc.) appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_') @@ -469,7 +345,7 @@ check_versions() { # Handle the still-experimental Automake-NG programs specially. # They remain named as the mainstream Automake programs ("automake", # and "aclocal") to avoid gratuitous incompatibilities with - # pre-existing usages (by, say, autoreconf, or custom autogen.sh + # preexisting usages (by, say, autoreconf, or custom autogen.sh # scripts), but correctly identify themselves (as being part of # "GNU automake-ng") when asked their version. case $app in @@ -528,81 +404,86 @@ print_versions() { # can't depend on column -t } -# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. -# Also find the compatible sha1 utility on the BSDs -if test x"$SKIP_PO" = x; then - find_tool SHA1SUM sha1sum gsha1sum shasum sha1 -fi +# check_build_prerequisites check_git +check_build_prerequisites() +{ + check_git="$1" -use_libtool=0 -# We'd like to use grep -E, to see if any of LT_INIT, -# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, -# but that's not portable enough (e.g., for Solaris). -grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ - && use_libtool=1 -grep '^[ ]*LT_INIT' configure.ac >/dev/null \ - && use_libtool=1 -if test $use_libtool = 1; then - find_tool LIBTOOLIZE glibtoolize libtoolize -fi - -# gnulib-tool requires at least automake and autoconf. -# If either is not listed, add it (with minimum version) as a prerequisite. -case $buildreq in - *automake*) ;; - *) buildreq="automake 1.9 -$buildreq" ;; -esac -case $buildreq in - *autoconf*) ;; - *) buildreq="autoconf 2.59 -$buildreq" ;; -esac - -# When we can deduce that gnulib-tool will require patch, -# and when patch is not already listed as a prerequisite, add it, too. -if test -d "$local_gl_dir" \ - && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then + # gnulib-tool requires at least automake and autoconf. + # If either is not listed, add it (with minimum version) as a prerequisite. case $buildreq in - *patch*) ;; - *) buildreq="patch - + *automake*) ;; + *) buildreq="automake 1.9 +$buildreq" ;; + esac + case $buildreq in + *autoconf*) ;; + *) buildreq="autoconf 2.59 $buildreq" ;; esac -fi -if ! printf "$buildreq" | check_versions; then - echo >&2 - if test -f README-prereq; then - die "See README-prereq for how to get the prerequisite programs" - else - die "Please install the prerequisite programs" + # When we can deduce that gnulib-tool will require patch, + # and when patch is not already listed as a prerequisite, add it, too. + if test -d "$local_gl_dir" \ + && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then + case $buildreq in + *patch*) ;; + *) buildreq="patch - +$buildreq" ;; + esac fi -fi -# Warn the user if autom4te appears to be broken; this causes known -# issues with at least gettext 0.18.3. -probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -) -if test "x$probe" != xhi; then - warn_ "WARNING: your autom4te wrapper eats stdin;" - warn_ "if bootstrap fails, consider upgrading your autotools" -fi - -echo "$0: Bootstrapping from checked-out $package sources..." - -# See if we can use gnulib's git-merge-changelog merge driver. -if $use_git && test -d .git && check_exists git; then - if git config merge.merge-changelog.driver >/dev/null ; then - : - elif check_exists git-merge-changelog; then - echo "$0: initializing git-merge-changelog driver" - git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' - git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' - else - echo "$0: consider installing git-merge-changelog from gnulib" + if ! printf '%s' "$buildreq" | check_versions; then + echo >&2 + if test -f README-prereq; then + die "See README-prereq for how to get the prerequisite programs" + else + die "Please install the prerequisite programs" + fi fi -fi + # Warn the user if autom4te appears to be broken; this causes known + # issues with at least gettext 0.18.3. + probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -) + if test "x$probe" != xhi; then + warn_ "WARNING: your autom4te wrapper eats stdin;" + warn_ "if bootstrap fails, consider upgrading your autotools" + fi +} +# find_tool ENVVAR NAMES... +# ------------------------- +# Search for a required program. Use the value of ENVVAR, if set, +# otherwise find the first of the NAMES that can be run. +# If found, set ENVVAR to the program name, die otherwise. +# +# FIXME: code duplication, see also gnu-web-doc-update. +find_tool () +{ + find_tool_envvar=$1 + shift + find_tool_names=$@ + eval "find_tool_res=\$$find_tool_envvar" + if test x"$find_tool_res" = x; then + for i; do + if check_exists $i; then + find_tool_res=$i + break + fi + done + fi + if test x"$find_tool_res" = x; then + warn_ "one of these is required: $find_tool_names;" + die "alternatively set $find_tool_envvar to a compatible tool" + fi + eval "$find_tool_envvar=\$find_tool_res" + eval "export $find_tool_envvar" +} + +# --------------------- Preparing GNULIB_SRCDIR for use. --------------------- +# This is part of autopull.sh, but bootstrap needs it too, for self-upgrading. + +# cleanup_gnulib fails, removing the directory $gnulib_path first. cleanup_gnulib() { status=$? rm -fr "$gnulib_path" @@ -613,95 +494,427 @@ git_modules_config () { test -f .gitmodules && git config --file .gitmodules "$@" } -if $use_git; then - gnulib_path=$(git_modules_config submodule.gnulib.path) - test -z "$gnulib_path" && gnulib_path=gnulib -fi - -# Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a -# submodule, for use in the rest of the script. - -case ${GNULIB_SRCDIR--} in --) - # Note that $use_git is necessarily true in this case. - if git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - git submodule init -- "$gnulib_path" || exit $? - git submodule update -- "$gnulib_path" || exit $? - - elif [ ! -d "$gnulib_path" ]; then - echo "$0: getting gnulib files..." - - trap cleanup_gnulib 1 2 13 15 - - shallow= - git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' - git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || - cleanup_gnulib - - trap - 1 2 13 15 - fi - GNULIB_SRCDIR=$gnulib_path - ;; -*) - # Use GNULIB_SRCDIR directly or as a reference. - if $use_git && test -d "$GNULIB_SRCDIR"/.git && \ - git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - if git submodule -h|grep -- --reference > /dev/null; then - # Prefer the one-liner available in git 1.6.4 or newer. - git submodule update --init --reference "$GNULIB_SRCDIR" \ - "$gnulib_path" || exit $? +prepare_GNULIB_SRCDIR () +{ + if test -n "$GNULIB_SRCDIR"; then + # Use GNULIB_SRCDIR directly. + # We already checked that $GNULIB_SRCDIR references a directory. + # Verify that it contains a gnulib checkout. + test -f "$GNULIB_SRCDIR/gnulib-tool" \ + || die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified," \ + "but does not contain gnulib-tool" + if test -n "$GNULIB_REVISION" && $use_git; then + # The 'git checkout "$GNULIB_REVISION"' command succeeds if the + # GNULIB_REVISION is a commit hash that exists locally, or if it is + # branch name that can be fetched from origin. It fails, however, + # if the GNULIB_REVISION is a commit hash that only exists in + # origin. In this case, we need a 'git fetch' and then retry + # 'git checkout "$GNULIB_REVISION"'. + git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION" 2>/dev/null \ + || { git -C "$GNULIB_SRCDIR" fetch origin \ + && git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION"; } \ + || exit $? + fi + else + if ! $use_git; then + die "Error: --no-git is specified," \ + "but neither --gnulib-srcdir nor \$GNULIB_SRCDIR is specified" + fi + if git submodule -h | grep -- --reference > /dev/null; then + : else - # This fallback allows at least git 1.5.5. - if test -f "$gnulib_path"/gnulib-tool; then - # Since file already exists, assume submodule init already complete. - git submodule update -- "$gnulib_path" || exit $? - else - # Older git can't clone into an empty directory. - rmdir "$gnulib_path" 2>/dev/null - git clone --reference "$GNULIB_SRCDIR" \ - "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ - && git submodule init -- "$gnulib_path" \ - && git submodule update -- "$gnulib_path" \ + die "git version is too old, git >= 1.6.4 is required" + fi + gnulib_path=$(git_modules_config submodule.gnulib.path) + if test -n "$gnulib_path"; then + # A submodule 'gnulib' is configured. + # Get gnulib files. Populate $gnulib_path, updating the submodule. + if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then + # Use GNULIB_REFDIR as a reference. + echo "$0: getting gnulib files..." + git submodule update --init --reference "$GNULIB_REFDIR" "$gnulib_path"\ || exit $? + else + # GNULIB_REFDIR is not set or not usable. Ignore it. + if git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + git submodule init -- "$gnulib_path" || exit $? + git submodule update -- "$gnulib_path" || exit $? + else + die "Error: submodule 'gnulib' has no configured url" + fi + fi + else + gnulib_path='gnulib' + if test ! -d "$gnulib_path"; then + # The subdirectory 'gnulib' does not yet exist. Clone into it. + echo "$0: getting gnulib files..." + trap cleanup_gnulib HUP INT PIPE TERM + gnulib_url=${GNULIB_URL:-$default_gnulib_url} + if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then + # Use GNULIB_REFDIR as a reference. + git clone "$GNULIB_REFDIR" "$gnulib_path" \ + && git -C "$gnulib_path" remote set-url origin "$gnulib_url" \ + && if test -z "$GNULIB_REVISION"; then + git -C "$gnulib_path" pull origin \ + && { + # We want the default branch of "$gnulib_url" (since that's + # the behaviour if GNULIB_REFDIR is not specified), not the + # current branch of "$GNULIB_REFDIR". + default_branch=`LC_ALL=C git -C "$gnulib_path" \ + remote show origin \ + | sed -n -e 's/^ *HEAD branch: //p'` + test -n "$default_branch" || default_branch='master' + git -C "$gnulib_path" checkout "$default_branch" + } + else + # The 'git checkout "$GNULIB_REVISION"' command succeeds if the + # GNULIB_REVISION is a commit hash that exists locally, or if it + # is a branch name that can be fetched from origin. It fails, + # however, if the GNULIB_REVISION is a commit hash that only + # exists in origin. In this case, we need a 'git fetch' and then + # retry 'git checkout "$GNULIB_REVISION"'. + git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \ + || { git -C "$gnulib_path" fetch origin \ + && git -C "$gnulib_path" checkout "$GNULIB_REVISION"; } + fi \ + || cleanup_gnulib + else + # GNULIB_REFDIR is not set or not usable. Ignore it. + shallow='--depth 2' + if test -z "$GNULIB_REVISION"; then + git clone $shallow "$gnulib_url" "$gnulib_path" \ + || cleanup_gnulib + else + # Only want a shallow checkout of $GNULIB_REVISION, but git does not + # support cloning by commit hash. So attempt a shallow fetch by + # commit hash to minimize the amount of data downloaded and changes + # needed to be processed, which can drastically reduce download and + # processing time for checkout. If the fetch by commit fails, a + # shallow fetch cannot be performed because we do not know what the + # depth of the commit is without fetching all commits. So fall back + # to fetching all commits. + # $GNULIB_REVISION can be a commit id, a tag name, or a branch name. + mkdir -p "$gnulib_path" + # Use a -c option to silence an annoying message + # "hint: Using 'master' as the name for the initial branch." + # (cf. ). + git -C "$gnulib_path" -c init.defaultBranch=master init + git -C "$gnulib_path" remote add origin "$gnulib_url" + if git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" + then + # "git fetch" of the specific commit succeeded. + git -C "$gnulib_path" reset --hard FETCH_HEAD \ + || cleanup_gnulib + # "git fetch" does not fetch tags (at least in git version 2.43). + # If $GNULIB_REVISION is a tag (not a commit id or branch name), + # add the tag explicitly. + revision=`git -C "$gnulib_path" log -1 --pretty=format:%H` + branch=`LC_ALL=C git -C "$gnulib_path" remote show origin \ + | sed -n -e 's/^ \([^ ]*\) * tracked$/\1/p'` + test "$revision" = "$GNULIB_REVISION" \ + || test "$branch" = "$GNULIB_REVISION" \ + || git -C "$gnulib_path" tag "$GNULIB_REVISION" + else + # Fetch the entire repository. + git -C "$gnulib_path" fetch origin \ + || cleanup_gnulib + git -C "$gnulib_path" checkout "$GNULIB_REVISION" \ + || cleanup_gnulib + fi + fi + fi + trap - HUP INT PIPE TERM + else + # The subdirectory 'gnulib' already exists. + if test -n "$GNULIB_REVISION"; then + if test -d "$gnulib_path/.git"; then + # The 'git checkout "$GNULIB_REVISION"' command succeeds if the + # GNULIB_REVISION is a commit hash that exists locally, or if it + # is a branch name that can be fetched from origin. It fails, + # however, if the GNULIB_REVISION is a commit hash that only + # exists in origin. In this case, we need a 'git fetch' and then + # retry 'git checkout "$GNULIB_REVISION"'. + git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \ + || { git -C "$gnulib_path" fetch origin \ + && git -C "$gnulib_path" checkout "$GNULIB_REVISION"; } \ + || exit $? + else + die "Error: GNULIB_REVISION is specified in bootstrap.conf," \ + "but '$gnulib_path' contains no git history" + fi + fi fi fi + # Verify that $gnulib_path contains a gnulib checkout. + test -f "$gnulib_path/gnulib-tool" \ + || die "Error: '$gnulib_path' is supposed to contain a gnulib checkout," \ + "but does not contain gnulib-tool" GNULIB_SRCDIR=$gnulib_path fi - ;; -esac + # $GNULIB_SRCDIR now points to the version of gnulib to use, and + # we no longer need to use git or $gnulib_path below here. +} -# $GNULIB_SRCDIR now points to the version of gnulib to use, and -# we no longer need to use git or $gnulib_path below here. +# -------- Upgrading bootstrap to the version found in GNULIB_SRCDIR. -------- -if $bootstrap_sync; then - cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { - echo "$0: updating bootstrap and restarting..." +upgrade_bootstrap () +{ + if test -f "$medir"/bootstrap-funclib.sh; then + update_lib=true + { cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \ + && cmp -s "$medir"/bootstrap-funclib.sh \ + "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \ + && cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \ + && cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \ + } + else + update_lib=false + cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/build-aux/bootstrap" + fi || { + if $update_lib; then + echo "$0: updating bootstrap & companions and restarting..." + else + echo "$0: updating bootstrap and restarting..." + fi case $(sh -c 'echo "$1"' -- a) in a) ignored=--;; *) ignored=ignored;; esac + u=$update_lib exec sh -c \ - 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ - $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \ + '{ if '$u' && test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } && + { if '$u' && test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } && + { if '$u' && test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } && + { if '$u' && test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } && + shift && shift && shift && shift && shift && + shift && shift && shift && shift && + exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ + $ignored \ + "$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" \ + "$medir/bootstrap" \ + "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \ + "$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \ + "$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \ "$0" "$@" --no-bootstrap-sync } +} + +# ---------------------------------------------------------------------------- + +if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then + use_gnulib=false +else + use_gnulib=true fi -gnulib_tool=$GNULIB_SRCDIR/gnulib-tool -<$gnulib_tool || exit $? +# -------- Fetch auxiliary files from the network. -------------------------- -# Get translations. +autopull_usage() { + cat </dev/null 2>&1 && unset CDPATH + + # Parse options. + + # Use git to update gnulib sources + use_git=true + + for option + do + case $option in + --help) + autopull_usage + return;; + --version) + set -e + echo "autopull.sh $scriptlibversion" + echo "$copyright" + return 0 + ;; + --skip-po) + SKIP_PO=t;; + --force) + checkout_only_file=;; + --bootstrap-sync) + bootstrap_sync=true;; + --no-bootstrap-sync) + bootstrap_sync=false;; + --no-git) + use_git=false;; + *) + bootstrap_option_hook $option || die "$option: unknown option";; + esac + done + + $use_git || test -n "$GNULIB_SRCDIR" \ + || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable" \ + "or --gnulib-srcdir option" + test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \ + || die "Error: \$GNULIB_SRCDIR environment variable" \ + "or --gnulib-srcdir option is specified," \ + "but does not denote a directory" + + if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then + die "Running this script from a non-checked-out distribution is risky." + fi + + check_build_prerequisites $use_git + + if $use_gnulib || $bootstrap_sync; then + prepare_GNULIB_SRCDIR + if $bootstrap_sync; then + upgrade_bootstrap "$@" + fi + fi + + # Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. + # Also find the compatible sha1 utility on the BSDs + if test x"$SKIP_PO" = x; then + find_tool SHA1SUM sha1sum gsha1sum shasum sha1 + fi + + # See if we can use gnulib's git-merge-changelog merge driver. + if $use_git && test -d .git && check_exists git; then + if git config merge.merge-changelog.driver >/dev/null ; then + : + elif check_exists git-merge-changelog; then + echo "$0: initializing git-merge-changelog driver" + git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' + git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' + else + echo "$0: consider installing git-merge-changelog from gnulib" + fi + fi + + case $SKIP_PO in + '') + if test -d po; then + update_po_files po $package || return + fi + + if test -d runtime-po; then + update_po_files runtime-po $package-runtime || return + fi;; + esac + + # --------------------------------------------------------------------------- + + bootstrap_post_pull_hook \ + || die "bootstrap_post_pull_hook failed" + + # Don't proceed if there are uninitialized submodules. In particular, + # autogen.sh will remove dangling links, which might be links into + # uninitialized submodules. + # But it's OK if the 'gnulib' submodule is uninitialized, as long as + # GNULIB_SRCDIR is set. + if $use_git; then + # Uninitialized submodules are listed with an initial dash. + uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'` + if test -n "$GNULIB_SRCDIR"; then + uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'` + fi + if test -n "$uninitialized"; then + uninit_comma=`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'` + die "Some git submodules are not initialized: "$uninit_comma \ + "Either use option '--no-git'," \ + "or run 'git submodule update --init' and bootstrap again." + fi + fi + + if test -f "$medir"/autogen.sh; then + echo "$0: done. Now you can run '$medir/autogen.sh'." + fi +} + +# ----------------------------- Get translations. ----------------------------- download_po_files() { subdir=$1 domain=$2 echo "$me: getting translations into $subdir for $domain..." - cmd=$(printf "$po_download_command_format" "$domain" "$subdir") - eval "$cmd" && return - # Fallback to HTTP. - cmd=$(printf "$po_download_command_format2" "$subdir" "$domain") + cmd=$(printf "$po_download_command_format" "$subdir" "$domain") eval "$cmd" } @@ -724,9 +937,7 @@ update_po_files() { && ls "$ref_po_dir"/*.po 2>/dev/null | sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return - langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') - test "$langs" = '*' && langs=x - for po in $langs; do + for po in x $(ls $ref_po_dir | sed -n 's/\.po$//p'); do case $po in x) continue;; esac new_po="$ref_po_dir/$po.po" cksum_file="$ref_po_dir/$po.s1" @@ -740,16 +951,99 @@ update_po_files() { done } -case $SKIP_PO in -'') - if test -d po; then - update_po_files po $package || exit - fi +# -------- Generate files automatically from existing sources. -------------- - if test -d runtime-po; then - update_po_files runtime-po $package-runtime || exit - fi;; -esac +autogen_usage() { + cat < /dev/null 2>&1 + elif test -d .svn; then + svn log -r HEAD "$file" > /dev/null 2>&1 + elif test -d CVS; then + grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | + grep '^/[^/]*/[0-9]' > /dev/null + else + warn_ "no version control for $file?" + false + fi +} + +# Strip blank and comment lines to leave significant entries. +gitignore_entries() { + sed '/^#/d; /^$/d' "$@" +} + +# If $STR is not already on a line by itself in $FILE, insert it at the start. +# Entries are inserted at the start of the ignore list to ensure existing +# entries starting with ! are not overridden. Such entries support +# whitelisting exceptions after a more generic blacklist pattern. +insert_if_absent() { + file=$1 + str=$2 + test -f $file || touch $file + test -r $file || die "Error: failed to read ignore file: $file" + duplicate_entries=$(gitignore_entries $file | sort | uniq -d) + if [ "$duplicate_entries" ] ; then + die "Error: Duplicate entries in $file: " $duplicate_entries + fi + linesold=$(gitignore_entries $file | wc -l) + linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l) + if [ $linesold != $linesnew ] ; then + { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \ + || die "insert_if_absent $file $str: failed" + fi +} + +# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with +# insert_if_absent. +insert_vc_ignore() { + vc_ignore_file="$1" + pattern="$2" + case $vc_ignore_file in + *.gitignore) + # A .gitignore entry that does not start with '/' applies + # recursively to subdirectories, so prepend '/' to every + # .gitignore entry. + pattern=$(echo "$pattern" | sed s,^,/,);; + esac + insert_if_absent "$vc_ignore_file" "$pattern" +} symlink_to_dir() { @@ -771,7 +1065,7 @@ symlink_to_dir() for dot_ig in x $vc_ignore; do test $dot_ig = x && continue ig=$parent/$dot_ig - insert_vc_ignore $ig "${dst_dir##*/}" + insert_vc_ignore $ig "${dst_dir##*/}/" done fi @@ -793,7 +1087,7 @@ symlink_to_dir() # aren't confused into doing unnecessary builds. Conversely, if the # existing symlink's timestamp is older than the source, make it afresh, # so that broken tools aren't confused into skipping needed builds. See - # . + # . test -h "$dst" && src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && @@ -820,208 +1114,516 @@ symlink_to_dir() } } -version_controlled_file() { - parent=$1 - file=$2 - if test -d .git; then - git rm -n "$file" > /dev/null 2>&1 - elif test -d .svn; then - svn log -r HEAD "$file" > /dev/null 2>&1 - elif test -d CVS; then - grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | - grep '^/[^/]*/[0-9]' > /dev/null - else - warn_ "no version control for $file?" - false +# Regenerate all autogeneratable files that are omitted from the +# version control repository. In particular, regenerate all +# aclocal.m4, config.h.in, Makefile.in, configure files with new +# versions of autoconf or automake. +autogen() +{ + # Ensure that CDPATH is not set. Otherwise, the output from cd + # would cause trouble in at least one use below. + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + # Environment variables that may be set by the user. + : "${AUTOPOINT=autopoint}" + : "${AUTORECONF=autoreconf}" + + if test "$vc_ignore" = auto; then + vc_ignore= + test -d .git && vc_ignore=.gitignore + test -d CVS && vc_ignore="$vc_ignore .cvsignore" fi -} -# NOTE: we have to be careful to run both autopoint and libtoolize -# before gnulib-tool, since gnulib-tool is likely to provide newer -# versions of files "installed" by these two programs. -# Then, *after* gnulib-tool (see below), we have to be careful to -# run autoreconf in such a way that it does not run either of these -# two just-pre-run programs. -# Import from gettext. -with_gettext=yes -grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ - with_gettext=no + # Parse options. -if test $with_gettext = yes || test $use_libtool = 1; then + # Whether to use copies instead of symlinks. + copy=false - tempbase=.bootstrap$$ - trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15 + for option + do + case $option in + --help) + autogen_usage + return;; + --version) + set -e + echo "autogen.sh $scriptlibversion" + echo "$copyright" + return 0 + ;; + --force) + checkout_only_file=;; + --copy) + copy=true;; + *) + bootstrap_option_hook $option || die "$option: unknown option";; + esac + done - > $tempbase.0 > $tempbase.1 && - find . ! -type d -print | sort > $tempbase.0 || exit + test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \ + || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir" \ + "option is specified, but does not denote a directory" + + if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then + die "Running this script from a non-checked-out distribution is risky." + fi + + if $use_gnulib; then + if test -z "$GNULIB_SRCDIR"; then + gnulib_path=$(test -f .gitmodules && + git config --file .gitmodules submodule.gnulib.path) + test -z "$gnulib_path" && gnulib_path=gnulib + GNULIB_SRCDIR=$gnulib_path + fi + fi + + # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. + found_aux_dir=no + grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'])' configure.ac \ + >/dev/null && found_aux_dir=yes + grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ + >/dev/null && found_aux_dir=yes + test $found_aux_dir = yes \ + || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" + + # If $build_aux doesn't exist, create it now, otherwise some bits + # below will malfunction. If creating it, also mark it as ignored. + if test ! -d $build_aux; then + mkdir $build_aux + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + insert_vc_ignore $dot_ig $build_aux/ + done + fi + + check_build_prerequisites false + + use_libtool=0 + # We'd like to use grep -E, to see if any of LT_INIT, + # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, + # but that's not portable enough (e.g., for Solaris). + grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ + && use_libtool=1 + grep '^[ ]*LT_INIT' configure.ac >/dev/null \ + && use_libtool=1 + if test $use_libtool = 1; then + find_tool LIBTOOLIZE glibtoolize libtoolize + fi + + if $use_gnulib; then + gnulib_tool=$GNULIB_SRCDIR/gnulib-tool + <$gnulib_tool || return + fi + + # NOTE: we have to be careful to run both autopoint and libtoolize + # before gnulib-tool, since gnulib-tool is likely to provide newer + # versions of files "installed" by these two programs. + # Then, *after* gnulib-tool (see below), we have to be careful to + # run autoreconf in such a way that it does not run either of these + # two just-pre-run programs. + + # Import from gettext. + with_gettext=yes + grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ + with_gettext=no + + if test $with_gettext = yes || test $use_libtool = 1; then + + tempbase=.bootstrap$$ + trap "rm -f $tempbase.0 $tempbase.1" HUP INT PIPE TERM + + > $tempbase.0 > $tempbase.1 && + find . ! -type d -print | sort > $tempbase.0 || return + + if test $with_gettext = yes; then + # Released autopoint has the tendency to install macros that have been + # obsoleted in current gnulib, so run this before gnulib-tool. + echo "$0: $AUTOPOINT --force" + $AUTOPOINT --force || return + fi + + # Autoreconf runs aclocal before libtoolize, which causes spurious + # warnings if the initial aclocal is confused by the libtoolized + # (or worse out-of-date) macro directory. + # libtoolize 1.9b added the --install option; but we support back + # to libtoolize 1.5.22, where the install action was default. + if test $use_libtool = 1; then + install= + case $($LIBTOOLIZE --help) in + *--install*) install=--install ;; + esac + echo "running: $LIBTOOLIZE $install --copy" + $LIBTOOLIZE $install --copy + fi + + find . ! -type d -print | sort >$tempbase.1 + old_IFS=$IFS + IFS=$nl + for file in $(comm -13 $tempbase.0 $tempbase.1); do + IFS=$old_IFS + parent=${file%/*} + version_controlled_file "$parent" "$file" || { + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore "$ig" "${file##*/}" + done + } + done + IFS=$old_IFS + + rm -f $tempbase.0 $tempbase.1 + trap - HUP INT PIPE TERM + fi + + # Import from gnulib. + + if $use_gnulib; then + gnulib_tool_options="\ + --no-changelog\ + --aux-dir=$build_aux\ + --doc-base=$doc_base\ + --lib=$gnulib_name\ + --m4-base=$m4_base/\ + --source-base=$source_base/\ + --tests-base=$tests_base\ + --local-dir=$local_gl_dir\ + $gnulib_tool_option_extras\ + " + if test $use_libtool = 1; then + case "$gnulib_tool_options " in + *' --libtool '*) ;; + *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; + esac + fi + echo "$0: $gnulib_tool $gnulib_tool_options --import ..." + $gnulib_tool $gnulib_tool_options --import $gnulib_modules \ + || die "gnulib-tool failed" + + if test $with_gettext = yes && test ! -f $m4_base/gettext.m4; then + # The gnulib-tool invocation has removed $m4_base/gettext.m4, that the + # AUTOPOINT invocation had installed. This can occur when the gnulib + # module 'gettext' was previously present but is now not present any more. + # Repeat the AUTOPOINT invocation and the gnulib-tool invocation. + + echo "$0: $AUTOPOINT --force" + $AUTOPOINT --force || return + + echo "$0: $gnulib_tool $gnulib_tool_options --import ..." + $gnulib_tool $gnulib_tool_options --import $gnulib_modules \ + || die "gnulib-tool failed" + fi + + for file in $gnulib_files; do + symlink_to_dir "$GNULIB_SRCDIR" $file \ + || die "failed to symlink $file" + done + fi + + bootstrap_post_import_hook \ + || die "bootstrap_post_import_hook failed" + + # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some + # gnulib-populated directories. Such .m4 files would cause aclocal to fail. + # The following requires GNU find 4.2.3 or newer. Considering the usual + # portability constraints of this script, that may seem a very demanding + # requirement, but it should be ok. Ignore any failure, which is fine, + # since this is only a convenience to help developers avoid the relatively + # unusual case in which a symlinked-to .m4 file is git-removed from gnulib + # between successive runs of this script. + find "$m4_base" "$source_base" \ + -depth \( -name '*.m4' -o -name '*.[ch]' \) \ + -type l -xtype l -delete > /dev/null 2>&1 + + # Invoke autoreconf with --force --install to ensure upgrades of tools + # such as ylwrap. + AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS" + AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive" + + # Tell autoreconf not to invoke autopoint or libtoolize; they were run above. + echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS" + AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \ + || die "autoreconf failed" + + # Get some extra files from gnulib, overriding existing files. + for file in $gnulib_extra_files; do + case $file in + */INSTALL) dst=INSTALL;; + build-aux/*) dst=$build_aux/${file#build-aux/};; + *) dst=$file;; + esac + symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ + || die "failed to symlink $file" + done if test $with_gettext = yes; then - # Released autopoint has the tendency to install macros that have been - # obsoleted in current gnulib, so run this before gnulib-tool. - echo "$0: $AUTOPOINT --force" - $AUTOPOINT --force || exit - fi - - # Autoreconf runs aclocal before libtoolize, which causes spurious - # warnings if the initial aclocal is confused by the libtoolized - # (or worse out-of-date) macro directory. - # libtoolize 1.9b added the --install option; but we support back - # to libtoolize 1.5.22, where the install action was default. - if test $use_libtool = 1; then - install= - case $($LIBTOOLIZE --help) in - *--install*) install=--install ;; - esac - echo "running: $LIBTOOLIZE $install --copy" - $LIBTOOLIZE $install --copy - fi - - find . ! -type d -print | sort >$tempbase.1 - old_IFS=$IFS - IFS=$nl - for file in $(comm -13 $tempbase.0 $tempbase.1); do - IFS=$old_IFS - parent=${file%/*} - version_controlled_file "$parent" "$file" || { - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$parent/$dot_ig - insert_vc_ignore "$ig" "${file##*/}" - done - } - done - IFS=$old_IFS - - rm -f $tempbase.0 $tempbase.1 - trap - 1 2 13 15 -fi - -# Import from gnulib. - -gnulib_tool_options="\ - --import\ - --no-changelog\ - --aux-dir $build_aux\ - --doc-base $doc_base\ - --lib $gnulib_name\ - --m4-base $m4_base/\ - --source-base $source_base/\ - --tests-base $tests_base\ - --local-dir $local_gl_dir\ - $gnulib_tool_option_extras\ -" -if test $use_libtool = 1; then - case "$gnulib_tool_options " in - *' --libtool '*) ;; - *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; - esac -fi -echo "$0: $gnulib_tool $gnulib_tool_options --import ..." -$gnulib_tool $gnulib_tool_options --import $gnulib_modules \ - || die "gnulib-tool failed" - -for file in $gnulib_files; do - symlink_to_dir "$GNULIB_SRCDIR" $file \ - || die "failed to symlink $file" -done - -bootstrap_post_import_hook \ - || die "bootstrap_post_import_hook failed" - -# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some -# gnulib-populated directories. Such .m4 files would cause aclocal to fail. -# The following requires GNU find 4.2.3 or newer. Considering the usual -# portability constraints of this script, that may seem a very demanding -# requirement, but it should be ok. Ignore any failure, which is fine, -# since this is only a convenience to help developers avoid the relatively -# unusual case in which a symlinked-to .m4 file is git-removed from gnulib -# between successive runs of this script. -find "$m4_base" "$source_base" \ - -depth \( -name '*.m4' -o -name '*.[ch]' \) \ - -type l -xtype l -delete > /dev/null 2>&1 - -# Invoke autoreconf with --force --install to ensure upgrades of tools -# such as ylwrap. -AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS" - -# Some systems (RHEL 5) are using ancient autotools, for which the -# --no-recursive option had not been invented. Detect that lack and -# omit the option when it's not supported. FIXME in 2017: remove this -# hack when RHEL 5 autotools are updated, or when they become irrelevant. -case $($AUTORECONF --help) in - *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";; -esac - -# Tell autoreconf not to invoke autopoint or libtoolize; they were run above. -echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS" -AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \ - || die "autoreconf failed" - -# Get some extra files from gnulib, overriding existing files. -for file in $gnulib_extra_files; do - case $file in - */INSTALL) dst=INSTALL;; - build-aux/*) dst=$build_aux/${file#build-aux/};; - *) dst=$file;; - esac - symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ - || die "failed to symlink $file" -done - -if test $with_gettext = yes; then - # Create gettext configuration. - echo "$0: Creating po/Makevars from po/Makevars.template ..." - rm -f po/Makevars - sed ' - /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ - /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ - /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >po/Makevars \ - || die 'cannot generate po/Makevars' - - # If the 'gettext' module is in use, grab the latest Makefile.in.in. - # If only the 'gettext-h' module is in use, assume autopoint already - # put the correct version of this file into place. - case $gnulib_modules in - *gettext-h*) ;; - *gettext*) - cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ - || die "cannot create po/Makefile.in.in" - ;; - esac - - if test -d runtime-po; then - # Similarly for runtime-po/Makevars, but not quite the same. - rm -f runtime-po/Makevars + # Create gettext configuration. + echo "$0: Creating po/Makevars from po/Makevars.template ..." + rm -f po/Makevars sed ' - /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ - /^subdir *=.*/s/=.*/= runtime-po/ - /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ + /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| /^XGETTEXT_OPTIONS *=/{ s/$/ \\/ a\ - '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} } - ' po/Makevars.template >runtime-po/Makevars \ - || die 'cannot generate runtime-po/Makevars' + ' po/Makevars.template >po/Makevars \ + || die 'cannot generate po/Makevars' - # Copy identical files from po to runtime-po. - (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) + # If the 'gettext' module is in use, grab the latest Makefile.in.in. + # If only the 'gettext-h' module is in use, assume autopoint already + # put the correct version of this file into place. + case $gnulib_modules in + *gettext-h*) ;; + *gettext*) + cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ + || die "cannot create po/Makefile.in.in" + ;; + esac + + if test -d runtime-po; then + # Similarly for runtime-po/Makevars, but not quite the same. + rm -f runtime-po/Makevars + sed ' + /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ + /^subdir *=.*/s/=.*/= runtime-po/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >runtime-po/Makevars \ + || die 'cannot generate runtime-po/Makevars' + + # Copy identical files from po to runtime-po. + cp -p po/Makefile.in.in po/*-quot po/*.header po/*.sed po/*.sin runtime-po + fi fi + + bootstrap_epilogue + + echo "$0: done. Now you can run './configure'." +} + +# ---------------------------------------------------------------------------- + +# Local Variables: +# eval: (add-hook 'before-save-hook 'time-stamp nil t) +# time-stamp-start: "scriptlibversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: + +usage() { + cat <. +# along with this program. If not, see . # gnulib modules used by this package. @@ -64,7 +64,7 @@ XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ gettext_external=0 grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && gettext_external=1 -grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && +grep '^[ ]*AM_GNU_GETTEXT(\[external]' configure.ac > /dev/null && gettext_external=1 if test $gettext_external = 1; then diff --git a/build-aux/.gitignore b/build-aux/.gitignore index a85ce13..1d51c02 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -1,6 +1,7 @@ /ar-lib /compile /config.guess +/config.rpath /config.sub /depcomp /install-sh diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen index 3468247..a44f5d5 100755 --- a/build-aux/git-version-gen +++ b/build-aux/git-version-gen @@ -1,12 +1,12 @@ #!/bin/sh # Print a version string. -scriptversion=2012-12-31.23; # UTC +scriptversion=2022-01-27.18; # UTC -# Copyright (C) 2007-2013 Free Software Foundation, Inc. +# Copyright (C) 2007-2022 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, @@ -15,9 +15,9 @@ scriptversion=2012-12-31.23; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . -# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. +# This script is derived from GIT-VERSION-GEN from GIT: https://git-scm.com/. # It may be run two ways: # - from a git repository in which the "git describe" command below # produces useful output (thus requiring at least one signed tag) @@ -65,19 +65,21 @@ scriptversion=2012-12-31.23; # UTC # EXTRA_DIST = $(top_srcdir)/.version # BUILT_SOURCES = $(top_srcdir)/.version # $(top_srcdir)/.version: -# echo $(VERSION) > $@-t && mv $@-t $@ +# echo '$(VERSION)' > $@-t +# mv $@-t $@ # dist-hook: -# echo $(VERSION) > $(distdir)/.tarball-version +# echo '$(VERSION)' > $(distdir)/.tarball-version me=$0 +year=`expr "$scriptversion" : '\([^-]*\)'` version="git-version-gen $scriptversion -Copyright 2011 Free Software Foundation, Inc. -There is NO warranty. You may redistribute this software -under the terms of the GNU General Public License. -For more information about these matters, see the files named COPYING." +Copyright (C) ${year} Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later . +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." usage="\ Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT] @@ -85,8 +87,9 @@ Print a version string. Options: - --prefix prefix of git tags (default 'v') - --fallback fallback version to use if \"git --version\" fails + --prefix PREFIX prefix of git tags (default 'v') + --fallback VERSION + fallback version to use if \"git --version\" fails --help display this help and exit --version output version information and exit @@ -100,8 +103,8 @@ while test $# -gt 0; do case $1 in --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; - --prefix) shift; prefix="$1";; - --fallback) shift; fallback="$1";; + --prefix) shift; prefix=${1?};; + --fallback) shift; fallback=${1?};; -*) echo "$0: Unknown option '$1'." >&2 echo "$0: Try '--help' for more information." >&2 @@ -140,11 +143,9 @@ then v=`cat $tarball_version_file` || v= case $v in *$nl*) v= ;; # reject multi-line output - [0-9]*) ;; - *) v= ;; esac test "x$v" = x \ - && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2 + && echo "$0: WARNING: $tarball_version_file is damaged" 1>&2 fi if test "x$v" != x @@ -166,9 +167,10 @@ then # tag or the previous older version that did not? # Newer: v6.10-77-g0f8faeb # Older: v6.10-g0f8faeb - case $v in - *-*-*) : git describe is okay three part flavor ;; - *-*) + vprefix=`expr "X$v" : 'X\(.*\)-g[^-]*$'` || vprefix=$v + case $vprefix in + *-*) : git describe is probably okay three part flavor ;; + *) : git describe is older two part flavor # Recreate the number of commits and rewrite such that the # result is the same as if we were using the newer version @@ -183,9 +185,9 @@ then ;; esac - # Change the first '-' to a '.', so version-comparing tools work properly. - # Remove the "g" in git describe's output string, to save a byte. - v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; + # Change the penultimate "-" to ".", for version-comparing tools. + # Remove the "g" to save a byte. + v=`echo "$v" | sed 's/-\([^-]*\)-g\([^-]*\)$/.\1-\2/'`; v_from_git=1 elif test "x$fallback" = x || git --version >/dev/null 2>&1; then v=UNKNOWN @@ -199,7 +201,7 @@ v=`echo "$v" |sed "s/^$prefix//"` # string we're using came from git. I.e., skip the test if it's "UNKNOWN" # or if it came from .tarball-version. if test "x$v_from_git" != x; then - # Don't declare a version "dirty" merely because a time stamp has changed. + # Don't declare a version "dirty" merely because a timestamp has changed. git update-index --refresh > /dev/null 2>&1 dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty= @@ -214,12 +216,12 @@ if test "x$v_from_git" != x; then fi # Omit the trailing newline, so that m4_esyscmd can use the result directly. -echo "$v" | tr -d "$nl" +printf %s "$v" # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/configure.ac b/configure.ac index 92ff82c..818bee9 100644 --- a/configure.ac +++ b/configure.ac @@ -2,11 +2,11 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_MACRO_DIRS([m4]) AC_INIT([dhcpd-pools], [m4_esyscmd([build-aux/git-version-gen .tarball-version])], [kerolasa@iki.fi],[], - [http://dhcpd-pools.sourceforge.net/]) + [https://dhcpd-pools.sourceforge.net/]) PACKAGE_MAINTAINER="Sami Kerola" AC_SUBST([PACKAGE_MAINTAINER]) AC_CONFIG_AUX_DIR([build-aux]) diff --git a/contrib/PKGBUILD b/contrib/PKGBUILD index 6fbb5cf..08770a4 100644 --- a/contrib/PKGBUILD +++ b/contrib/PKGBUILD @@ -7,7 +7,7 @@ pkgver=0 pkgrel=1 pkgdesc="ISC dhcpd lease status utility" arch=('i686' 'x86_64') -url=http://dhcpd-pools.sourceforge.net/ +url=https://dhcpd-pools.sourceforge.net/ license=('BSD') depends=('pacman') makedepends=('uthash' 'git') diff --git a/contrib/snmptest.pl b/contrib/snmptest.pl index c77b882..54093c7 100644 --- a/contrib/snmptest.pl +++ b/contrib/snmptest.pl @@ -23,9 +23,10 @@ # you set $dbg to 1 then output will be generated in /tmp. use strict; +use NetSNMP::OID; # Version info: -my $SNMPver = "snmp1.0"; +my $SNMPver = "snmp1.1"; my $DHCPver = "dhcp1.0"; my $VERSION = "$SNMPver/$DHCPver"; # @@ -193,7 +194,7 @@ sub ParseDataFile () { } close IN; if ($dbg) { - foreach (sort @validoidlist) { print DBG "ValidOID: $_\n"; } + foreach (sort Oidcmp @validoidlist) { print DBG "ValidOID: $_\n"; } } if ($dbg) { @@ -370,7 +371,7 @@ sub GetData ($) { @userquery = split (/\./, $userqueryoid); my $found = 0; - foreach (sort @validoidlist) { + foreach (sort Oidcmp @validoidlist) { $next = $_; print DBG "Comparing $userqueryoid vs. $_\n" if $dbg; @validoid = split (/\./, $_); @@ -432,6 +433,12 @@ sub Pong { $line = 0; } +sub Oidcmp { + my $oida = new NetSNMP::OID($a); + my $oidb = new NetSNMP::OID($b); + snmp_oid_compare($oida, $oidb); +} + ################################## START ################################## # # Main diff --git a/contrib/zabbix.txt b/contrib/zabbix.txt new file mode 100644 index 0000000..9ea279a --- /dev/null +++ b/contrib/zabbix.txt @@ -0,0 +1,4 @@ +Zabbix 5 template, and instructions how to use it, can be found from +Mathieu's repository. + +https://github.com/mmorier86/dhcpd-pools-zabbix-template diff --git a/lib/.gitignore b/lib/.gitignore index 0de1e31..e2e741c 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -1,37 +1,40 @@ -/*.lo -/.libs/ -/Makefile.am -/_Noreturn.h /alloca.h /alloca.in.h /arg-nonnull.h -/arpa/inet.h +/arpa/ +/arpa_inet.c /arpa_inet.in.h +/assert.in.h +/attribute.h /basename-lgpl.c -/c++defs.h +/basename-lgpl.h +/c32is-impl.h +/c32isprint.c +/calloc.c /c-ctype.c /c-ctype.h -/c-strcase.h -/c-strcasecmp.c -/c-strcaseeq.h -/c-strncasecmp.c -/charset.alias -/close-stream.c -/close-stream.h +/c++defs.h +/cdefs.h +/cloexec.c +/cloexec.h /close.c /closeout.c /closeout.h -/config.charset -/configmake.h -/dirname-lgpl.c -/dirname.h -/dosname.h +/close-stream.c +/close-stream.h +/c-strcasecmp.c +/c-strcaseeq.h +/c-strcase.h +/c-strncasecmp.c +/dup2.c /errno.in.h /error.c /error.h +/error.in.h /exitfail.c /exitfail.h /fclose.c +/fcntl.c /fcntl.h /fcntl.in.h /fd-hook.c @@ -40,8 +43,9 @@ /fflush.c /filename.h /flexmember.h -/float+.h /float.c +/float+.h +/float.h /float.in.h /fopen.c /fpending.c @@ -49,126 +53,210 @@ /fpurge.c /freading.c /freading.h +/free.c /fseek.c /fseeko.c /fstat.c /ftell.c /ftello.c +/getdtablesize.c +/getlocalename_l-unsafe.c +/getlocalename_l-unsafe.h +/getopt1.c +/getopt.c /getopt-cdefs.in.h /getopt-core.h /getopt-ext.h +/getopt.in.h +/getopt_int.h /getopt-pfx-core.h /getopt-pfx-ext.h -/getopt.c -/getopt.in.h -/getopt1.c -/getopt_int.h /getprogname.c /getprogname.h /gettext.h /hard-locale.c /hard-locale.h +/ialloc.c +/ialloc.h +/idx.h /inet_pton.c /intprops.h +/intprops-internal.h +/inttypes.h +/inttypes.in.h /isnan.c /isnand.c /isnanf.c /isnanl.c /itold.c +/lc-charset-dispatch.c +/lc-charset-dispatch.h +/libc-config.h /libdhcpd_pools.la +/libdhcpd_pools_la-arpa_inet.lo +/libdhcpd_pools_la-basename-lgpl.lo +/libdhcpd_pools_la-c32isprint.lo +/libdhcpd_pools_la-c-ctype.lo +/libdhcpd_pools_la-cloexec.lo +/libdhcpd_pools_la-closeout.lo +/libdhcpd_pools_la-close-stream.lo +/libdhcpd_pools_la-c-strcasecmp.lo +/libdhcpd_pools_la-exitfail.lo +/libdhcpd_pools_la-fclose.lo +/libdhcpd_pools_la-fcntl.lo +/libdhcpd_pools_la-fd-hook.lo +/libdhcpd_pools_la-fflush.lo +/libdhcpd_pools_la-float.lo +/libdhcpd_pools_la-fopen.lo +/libdhcpd_pools_la-fpurge.lo +/libdhcpd_pools_la-freading.lo +/libdhcpd_pools_la-fseek.lo +/libdhcpd_pools_la-fseeko.lo +/libdhcpd_pools_la-getprogname.lo +/libdhcpd_pools_la-hard-locale.lo +/libdhcpd_pools_la-ialloc.lo +/libdhcpd_pools_la-localcharset.lo +/libdhcpd_pools_la-malloca.lo +/libdhcpd_pools_la-math.lo +/libdhcpd_pools_la-mbrtoc32.lo +/libdhcpd_pools_la-mbrtowc.lo +/libdhcpd_pools_la-mbszero.lo +/libdhcpd_pools_la-mktime.lo +/libdhcpd_pools_la-nstrftime.lo +/libdhcpd_pools_la-progname.lo +/libdhcpd_pools_la-quotearg.lo +/libdhcpd_pools_la-reallocarray.lo +/libdhcpd_pools_la-realloc.lo +/libdhcpd_pools_la-setlocale_null.lo +/libdhcpd_pools_la-setlocale_null-unlocked.lo +/libdhcpd_pools_la-stat-time.lo +/libdhcpd_pools_la-stdlib.lo +/libdhcpd_pools_la-sys_socket.lo +/libdhcpd_pools_la-timegm.lo +/libdhcpd_pools_la-time_rz.lo +/libdhcpd_pools_la-unistd.lo +/libdhcpd_pools_la-wctype-h.lo +/libdhcpd_pools_la-xalloc-die.lo +/libdhcpd_pools_la-xmalloc.lo +/.libs/ /limits.h /limits.in.h /localcharset.c /localcharset.h -/localtime-buffer.c -/localtime-buffer.h +/locale.h +/locale.in.h +/localename.h +/localename-unsafe.c /lseek.c -/malloc.c +/Makefile.am /malloca.c /malloca.h -/malloca.valgrind +/malloc.c /math.c /math.h /math.in.h +/mbrtoc32.c /mbrtowc.c +/mbrtowc-impl.h +/mbrtowc-impl-utf8.h /mbsinit.c +/mbszero.c +/mbtowc-lock.c +/mbtowc-lock.h /memchr.c /memchr.valgrind /minmax.h -/mktime-internal.h /mktime.c +/mktime-internal.h /msvc-inval.c /msvc-inval.h /msvc-nothrow.c /msvc-nothrow.h /netinet_in.in.h +/_Noreturn.h /nstrftime.c +/open.c /pathmax.h /progname.c /progname.h -/quote.h /quotearg.c /quotearg.h +/quote.h +/reallocarray.c /realloc.c -/ref-add.sed -/ref-add.sin -/ref-del.sed -/ref-del.sin /setenv.c +/setlocale-lock.c +/setlocale_null.c +/setlocale_null.h +/setlocale_null-unlocked.c +/stat.c +/stat-time.c +/stat-time.h /stat-w32.c /stat-w32.h -/stat.c -/stdalign.in.h -/stdbool.in.h +/stdckdint.h +/stdckdint.in.h +/stddef.h /stddef.in.h /stdint.in.h -/stdio-impl.h /stdio.h +/stdio-impl.h /stdio.in.h +/stdio-read.c +/stdio-write.c +/stdlib.c /stdlib.h /stdlib.in.h /stpncpy.c -/str-two-way.h /strdup.c /streq.h +/strerror.c /strerror-override.c /strerror-override.h -/strerror.c +/strftime.c /strftime.h /string.h /string.in.h -/stripslash.c /strstr.c /strtod.c -/sys/socket.h -/sys/stat.h -/sys/types.h -/sys/uio.h +/str-two-way.h +/sys/ /sys_socket.c /sys_socket.in.h /sys_stat.in.h /sys_types.in.h /sys_uio.in.h -/time-internal.h +/timegm.c /time.h /time.in.h +/time-internal.h /time_r.c /time_rz.c -/timegm.c /tzset.c +/uchar.h +/uchar.in.h +/unictype/ +/unictype/bitmap.h +/unictype/ctype_print.c +/unictype/ctype_print.h +/unictype/.gitignore +/unictype.h +/unictype.in.h /unistd.c /unistd.h /unistd.in.h +/unitypes.h +/unitypes.in.h /unsetenv.c -/unused-parameter.h /verify.h /warn-on-use.h /wchar.h /wchar.in.h -/wctype-h.c /wctype.h +/wctype-h.c /wctype.in.h +/windows-initguard.h /xalloc-die.c -/xalloc-oversized.h /xalloc.h +/xalloc-oversized.h /xmalloc.c diff --git a/man/dhcpd-pools.1.in b/man/dhcpd-pools.1.in index 91bc53a..5001e24 100644 --- a/man/dhcpd-pools.1.in +++ b/man/dhcpd-pools.1.in @@ -1,4 +1,5 @@ -.TH DHCPD-POOLS "1" "2017-11-15" "@VERSION@" "User Commands" +'\" t +.TH DHCPD-POOLS "1" "2024-08-09" "@VERSION@" "User Commands" .SH NAME dhcpd-pools \- ISC dhcpd pools usage analysis .SH SYNOPSIS @@ -156,7 +157,7 @@ printed. .TP \fB\-\-color\fR=\fIwhen\fR Use yellow for warning, red for critical, green for suppressed by \-\-minsize -and blue when \-\-snet\-alarms is the cause of supression or shared network +and blue when \-\-snet\-alarms is the cause of suppression or shared network does not have any ranges. The .I when string can be @@ -183,7 +184,7 @@ can be one of the following: .IR minsize , or .IR suppressed . -The skipping criterias are exact match with colors in \-\-color option. +The skipping criteria is exact match with colors in \-\-color option. .TP \fB\-\-warning\fR=\fIpercent\fR Turn on alarm output format, and specify percentage number which will diff --git a/project.doap b/project.doap index e3cf0f6..b9f0a8a 100644 --- a/project.doap +++ b/project.doap @@ -3,9 +3,9 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> - + dhcpd-pools - + This is dhcpd-pools ISC dhcp shared network and pool range usage analysis tool. Purpose of command is to count usage ratio of each diff --git a/samples/mustach.template b/samples/mustach.template index 3c0db39..ed4561e 100644 --- a/samples/mustach.template +++ b/samples/mustach.template @@ -1,3 +1,6 @@ +Ethernets:{{#active_lease}} + macaddress: {{macaddress}} ip: {{ip}}{{/active_lease}} + Subnets:{{#subnets}} location: {{location}} range: {{range}} @@ -65,3 +68,9 @@ lease_file_epoch_mtime: {{lease_file_epoch_mtime}} template_file_path: {{template_file_path}} template_file_local_mtime: {{template_file_local_mtime}} template_file_epoch_mtime: {{template_file_epoch_mtime}} + +number_of_ranges_warning: {{number_of_ranges_warning}} +number_of_ranges_critical: {{number_of_ranges_critical}} +number_of_shared_networks: {{number_of_shared_networks}} +number_of_shared_networks_warning: {{number_of_shared_networks_warning}} +number_of_shared_networks_critical: {{number_of_shared_networks_critical}} diff --git a/samples/prometheus.template b/samples/prometheus.template index f8a5726..d48f959 100644 --- a/samples/prometheus.template +++ b/samples/prometheus.template @@ -1,30 +1,11 @@ # This mustach template can be used as Prometheus text file. # https://prometheus.io/ - -# HELP dhcpd_pools_ranges The range statistics. -# TYPE dhcpd_pools_ranges gauge -{{#subnets}}dhcpd_pools_ranges{range="{{first_ip}}",used="1"} {{used}} {{gettimeofday}}000 -dhcpd_pools_ranges{range="{{first_ip}}",touched="1"} {{touched}} {{gettimeofday}}000 -dhcpd_pools_ranges{range="{{first_ip}}",defined="1"} {{defined}} {{gettimeofday}}000 -dhcpd_pools_ranges{range="{{first_ip}}",free="1"} {{free}} {{gettimeofday}}000 -dhcpd_pools_ranges{range="{{first_ip}}",touch_count="1"} {{touch_count}} {{gettimeofday}}000 -dhcpd_pools_ranges{range="{{first_ip}}",status="1"} {{status}} {{gettimeofday}}000 +# HELP dhcpd_pools ISC dhcpd statistics +# TYPE dhcpd_pools gauge +{{#subnets}}dhcpd_pools{location="{{location}}",range="{{first_ip}}",used="1"} {{used}} {{gettimeofday}}000 +dhcpd_pools{location="{{location}}",range="{{first_ip}}",touched="1"} {{touched}} {{gettimeofday}}000 +dhcpd_pools{location="{{location}}",range="{{first_ip}}",defined="1"} {{defined}} {{gettimeofday}}000 +dhcpd_pools{location="{{location}}",range="{{first_ip}}",free="1"} {{free}} {{gettimeofday}}000 +dhcpd_pools{location="{{location}}",range="{{first_ip}}",touch_count="1"} {{touch_count}} {{gettimeofday}}000 +dhcpd_pools{location="{{location}}",range="{{first_ip}}",status="1"} {{status}} {{gettimeofday}}000 {{/subnets}} -# HELP dhcpd_pools_shared_nets The shared networks statistics. -# TYPE dhcpd_pools_shared_nets gauge -{{#shared-networks}}dhcpd_pools_shared_nets{location="{{location}}",defined="1"} {{defined}} {{gettimeofday}}000 -dhcpd_pools_shared_nets{location="{{location}}",used="1"} {{used}} {{gettimeofday}}000 -dhcpd_pools_shared_nets{location="{{location}}",touched="1"} {{touched}} {{gettimeofday}}000 -dhcpd_pools_shared_nets{location="{{location}}",free="1"} {{free}} {{gettimeofday}}000 -dhcpd_pools_shared_nets{location="{{location}}",touch_count="1"} {{touch_count}} {{gettimeofday}}000 -dhcpd_pools_shared_nets{location="{{location}}",status="1"} {{status}} {{gettimeofday}}000 -{{/shared-networks}} -# HELP dhcpd_pools_summary Statistics of the all networks. -# TYPE dhcpd_pools_summary gauge -{{#summary}}dhcpd_pools_summary{location="{{location}}",defined="1"} {{defined}} {{gettimeofday}}000 -dhcpd_pools_summary{location="{{location}}",used="1"} {{used}} {{gettimeofday}}000 -dhcpd_pools_summary{location="{{location}}",touched="1"} {{touched}} {{gettimeofday}}000 -dhcpd_pools_summary{location="{{location}}",free="1"} {{free}} {{gettimeofday}}000 -dhcpd_pools_summary{location="{{location}}",touch_count="1"} {{touch_count}} {{gettimeofday}}000 -dhcpd_pools_summary{location="{{location}}",status="1"} {{status}} {{gettimeofday}}000 -{{/summary}} diff --git a/src/analyze.c b/src/analyze.c index 7d7ac72..6721761 100644 --- a/src/analyze.c +++ b/src/analyze.c @@ -84,6 +84,8 @@ void do_counting(struct conf_t *state) case BACKUP: range_p->backups++; break; + default: + abort(); } } /* Size of range size. */ diff --git a/src/dhcpd-pools.c b/src/dhcpd-pools.c index 79afc21..1373053 100644 --- a/src/dhcpd-pools.c +++ b/src/dhcpd-pools.c @@ -89,14 +89,14 @@ static void prepare_memory(struct conf_t *state) } /*! \brief The --skip option argument parser. */ -static void skip_arg_parse(struct conf_t *state, char *optarg) +static void skip_arg_parse(struct conf_t *state, char *arg) { enum { OPT_ARG_OK = 0, OPT_ARG_WARNING, OPT_ARG_CRITICAL, OPT_ARG_MINSIZE, - OPT_ARG_SUPRESSED + OPT_ARG_SUPPRESSED }; char *const tokens[] = { @@ -104,13 +104,13 @@ static void skip_arg_parse(struct conf_t *state, char *optarg) [OPT_ARG_WARNING] = "warning", [OPT_ARG_CRITICAL] = "critical", [OPT_ARG_MINSIZE] = "minsize", - [OPT_ARG_SUPRESSED] = "suppressed", + [OPT_ARG_SUPPRESSED] = "suppressed", NULL }; char *value; - while (*optarg != '\0') { - switch (getsubopt(&optarg, tokens, &value)) { + while (*arg != '\0') { + switch (getsubopt(&arg, tokens, &value)) { case OPT_ARG_OK: state->skip_ok = 1; break; @@ -123,7 +123,7 @@ static void skip_arg_parse(struct conf_t *state, char *optarg) case OPT_ARG_MINSIZE: state->skip_minsize = 1; break; - case OPT_ARG_SUPRESSED: + case OPT_ARG_SUPPRESSED: state->skip_suppressed = 1; break; default: @@ -133,7 +133,7 @@ static void skip_arg_parse(struct conf_t *state, char *optarg) } /*! \brief Command line options parser. */ -static char parse_command_line_opts(struct conf_t *state, int argc, char **argv) +static void parse_command_line_opts(struct conf_t *state, int argc, char **argv) { enum { OPT_SNET_ALARMS = CHAR_MAX + 1, @@ -172,7 +172,6 @@ static char parse_command_line_opts(struct conf_t *state, int argc, char **argv) {"ip-version", required_argument, NULL, OPT_SET_IPV}, {NULL, 0, NULL, 0} }; - char output_format = '\0'; int alarming = 0; while (1) { @@ -192,17 +191,17 @@ static char parse_command_line_opts(struct conf_t *state, int argc, char **argv) break; case 'f': /* Output format */ - output_format = optarg[0]; + state->output_format = optarg[0]; break; case 's': { /* Output sorting option */ struct output_sort *p = state->sorts; - size_t len; + char *ptr = optarg; while (p && p->next) p = p->next; - for (len = 0; len < strlen(optarg); len++) { + while (*ptr) { if (state->sorts == NULL) { state->sorts = xcalloc(1, sizeof(struct output_sort)); @@ -211,7 +210,7 @@ static char parse_command_line_opts(struct conf_t *state, int argc, char **argv) p->next = xcalloc(1, sizeof(struct output_sort)); p = p->next; } - p->func = field_selector(optarg[len]); + p->func = field_selector(*ptr++); } } break; @@ -231,7 +230,8 @@ static char parse_command_line_opts(struct conf_t *state, int argc, char **argv) case OPT_MUSTACH: #ifdef BUILD_MUSTACH state->mustach_template = optarg; - output_format = 'm'; + state->output_format = 'm'; + state->print_mac_addreses = 1; #else error(EXIT_FAILURE, 0, "compiled without mustach support"); #endif @@ -312,16 +312,18 @@ static char parse_command_line_opts(struct conf_t *state, int argc, char **argv) } /* Output format is not defined, if alarm thresholds are then it's alarming, else use the * default. */ - if (output_format == '\0') { + if (state->output_format == '\0') { if (alarming == 1) - output_format = 'a'; + state->output_format = 'a'; else { const char *const default_format = OUTPUT_FORMAT; - output_format = default_format[0]; + state->output_format = default_format[0]; } } - return output_format; + if (state->output_format == 'X' || state->output_format == 'J') { + state->print_mac_addreses = 1; + } } /*!\brief Start of execution. This will mostly call other functions one @@ -339,33 +341,28 @@ int main(int argc, char **argv) .warn_count = 0x100000000, /* == 2^32 that is the entire IPv4 space */ .crit_count = 0x100000000, /* basically turns off the count criteria */ .header_limit = 8, - .color_mode = color_auto, .ranges_size = 64, .ip_version = IPvUNKNOWN, - 0 + .color_mode = color_auto }; - char output_format; int ret_val; atexit(close_stdout); set_program_name(argv[0]); prepare_memory(&state); set_ipv_functions(&state, IPvUNKNOWN); - output_format = parse_command_line_opts(&state, argc, argv); + parse_command_line_opts(&state, argc, argv); /* Do the job */ parse_config(&state, 1, state.dhcpdconf_file, state.shared_net_root); - if (output_format == 'X' || output_format == 'J') - parse_leases(&state, 1); - else - parse_leases(&state, 0); + parse_leases(&state); prepare_data(&state); do_counting(&state); if (state.sorts != NULL) mergesort_ranges(&state, state.ranges, state.num_ranges, NULL, 1); if (state.reverse_order == 1) flip_ranges(&state); - ret_val = output_analysis(&state, output_format); + ret_val = output_analysis(&state); clean_up(&state); return (ret_val); } diff --git a/src/dhcpd-pools.h b/src/dhcpd-pools.h index a2715f3..aff6b6a 100644 --- a/src/dhcpd-pools.h +++ b/src/dhcpd-pools.h @@ -102,6 +102,9 @@ enum prefix_t { PREFIX_BINDING_STATE_ACTIVE, PREFIX_BINDING_STATE_BACKUP, PREFIX_HARDWARE_ETHERNET, + PREFIX_STARTS, + PREFIX_ENDS, + PREFIX_HOSTNAME, NUM_OF_PREFIX }; @@ -125,8 +128,8 @@ struct shared_network_t { double used; double touched; double backups; - int netmask; struct shared_network_t *next; + int netmask; }; /*! \struct range_t @@ -145,12 +148,22 @@ struct range_t { * \brief Various per range and shared net temporary calculation results. */ struct output_helper_t { - int status; double range_size; double percent; double tc; double tcp; double bup; + int status; +}; + +/*! \struct status_counts_t + * \brief Range and shared network alarming status counts. + */ +struct status_counts_t { + unsigned int warning; + unsigned int critical; + unsigned int ok; + unsigned int ignored; }; /*! \enum ltype @@ -167,9 +180,12 @@ enum ltype { */ struct leases_t { union ipaddr_t ip; /* ip as key */ - enum ltype type; char *ethernet; UT_hash_handle hh; + enum ltype type; + char *ends; + char *starts; + char *hostname; }; /*! \enum limbits @@ -209,12 +225,11 @@ struct conf_t { struct shared_network_t *shared_net_head; /*!< Last entry in shared network linked list. */ struct range_t *ranges; /*!< Array of ranges. */ unsigned int num_ranges; /*!< Number of ranges in the ranges array. */ + enum dhcp_version ip_version; /*!< Designator if the dhcpd is running in IPv4 or IPv6 mode. */ size_t ranges_size; /*!< Size of the ranges array. */ struct leases_t *leases; /*!< An array of individual leases from dhcpd.leases file. */ - enum dhcp_version ip_version; /*!< Designator if the dhcpd is running in IPv4 or IPv6 mode. */ const char *dhcpdconf_file; /*!< Path to dhcpd.conf file. */ const char *dhcpdlease_file; /*!< Path to dhcpd.leases file. */ - int output_format; /*!< Column to use in color_tags array. */ struct output_sort *sorts; /*!< Linked list how to sort ranges. */ const char *output_file; /*!< Output file path. */ const char *mustach_template; /*!< Mustach template file path. */ @@ -223,7 +238,10 @@ struct conf_t { double warn_count; /*!< Maximum number of free IP's before warning. */ double crit_count; /*!< Maximum number of free IP's before critical. */ double minsize; /*!< Minimum size of range or shared network to be considered exceeding threshold. */ - unsigned int + int color_format; /*!< Column to use in color_tags array. */ + char output_format; /*!< Output format, such as text, json, xml, .... */ + uint32_t + print_mac_addreses:1, /*!< Print mac address in xml or json. */ reverse_order:1, /*!< Reverse sort order. */ backups_found:1, /*!< Indicator if dhcpd.leases file has leases in backup state. */ snet_alarms:1, /*!< Suppress alarming thresholds for ranges that are part of a shared network. */ @@ -246,7 +264,7 @@ extern void prepare_data(struct conf_t *state); extern void do_counting(struct conf_t *state); /* getdata.c */ -extern int parse_leases(struct conf_t *state, const int print_mac_addreses); +extern int parse_leases(struct conf_t *state); extern void parse_config(struct conf_t *state, const int is_include, const char *restrict config_file, struct shared_network_t *restrict shared_p); @@ -273,7 +291,7 @@ extern void set_ipv_functions(struct conf_t *state, int version); extern void flip_ranges(struct conf_t *state); extern void clean_up(struct conf_t *state); extern void parse_cidr(struct conf_t *state, struct range_t *range_p, const char *word); -extern int parse_color_mode(const char *restrict optarg); +extern int parse_color_mode(const char *restrict arg); extern double strtod_or_err(const char *restrict str, const char *restrict errmesg); extern void __attribute__ ((noreturn)) print_version(void); extern void __attribute__ ((noreturn)) usage(int status); @@ -313,7 +331,9 @@ extern int range_output_helper(struct conf_t *state, struct output_helper_t *oh, struct range_t *range_p); extern int shnet_output_helper(struct conf_t *state, struct output_helper_t *oh, struct shared_network_t *shared_p); -extern int output_analysis(struct conf_t *state, const char output_format); +extern int output_analysis(struct conf_t *state); +extern void range_alarms(struct conf_t *state, struct status_counts_t *rangstat); +extern void shared_net_alarms(struct conf_t *state, struct status_counts_t *sharstat); /* sort.c */ extern void mergesort_ranges(struct conf_t *state, diff --git a/src/getdata.c b/src/getdata.c index ca01384..31734de 100644 --- a/src/getdata.c +++ b/src/getdata.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -79,12 +80,11 @@ enum isc_conf_parser { /*! \brief Lease file parser. The parser can only read ISC DHCPD * dhcpd.leases file format. */ -int parse_leases(struct conf_t *state, const int print_mac_addreses) +int parse_leases(struct conf_t *state) { FILE *dhcpd_leases; - char *line, *ipstring, macstring[20], *stop; + char *line, *ipstring, macstring[20], *stop, endsstr[30], startsstr[30], hostnamestr[MAXLEN]; union ipaddr_t addr; - struct stat lease_file_stats; struct leases_t *lease; dhcpd_leases = fopen(state->dhcpdlease_file, "r"); @@ -96,16 +96,13 @@ int parse_leases(struct conf_t *state, const int print_mac_addreses) error(EXIT_FAILURE, errno, "parse_leases: fadvise %s", state->dhcpdlease_file); # endif /* POSIX_FADV_SEQUENTIAL */ #endif /* HAVE_POSIX_FADVISE */ - /* I found out that there's one lease address per 300 bytes in - * dhcpd.leases file. Malloc is little bit pessimistic and uses 250. - * If someone has higher density in lease file I'm interested to - * hear about that. */ - if (stat(state->dhcpdlease_file, &lease_file_stats)) - error(EXIT_FAILURE, errno, "parse_leases: %s", state->dhcpdlease_file); line = xmalloc(sizeof(char) * MAXLEN); line[0] = '\0'; ipstring = xmalloc(sizeof(char) * MAXLEN); ipstring[0] = '\0'; + endsstr[0] = '\0'; + startsstr[0] = '\0'; + hostnamestr[0] = '\0'; while (!feof(dhcpd_leases)) { if (!fgets(line, MAXLEN, dhcpd_leases) && ferror(dhcpd_leases)) error(EXIT_FAILURE, errno, "parse_leases: %s", state->dhcpdlease_file); @@ -144,12 +141,39 @@ int parse_leases(struct conf_t *state, const int print_mac_addreses) state->backups_found = 1; break; case PREFIX_HARDWARE_ETHERNET: - if (print_mac_addreses == 0) + if (state->print_mac_addreses == 0) break; memcpy(macstring, line + 20, 17); macstring[17] = '\0'; - if ((lease = find_lease(state, &addr)) != NULL) + if ((lease = find_lease(state, &addr)) != NULL) { lease->ethernet = xstrdup(macstring); + lease->starts = xstrdup(startsstr); + startsstr[0] = '\0'; + lease->ends = xstrdup(endsstr); + endsstr[0] = '\0'; + } + break; + case PREFIX_ENDS: + if (state->print_mac_addreses == 0) + break; + strncpy(endsstr, line + 7, sizeof(endsstr)-1); + endsstr[strlen(endsstr)-2] = '\0'; + break; + case PREFIX_STARTS: + if (state->print_mac_addreses == 0) + break; + strncpy(startsstr, line + 9, sizeof(startsstr)-1); + startsstr[strlen(startsstr)-2] = '\0'; + break; + case PREFIX_HOSTNAME: + if (state->print_mac_addreses == 0) + break; + strncpy(hostnamestr, line + 19, sizeof(hostnamestr)-1); + hostnamestr[strlen(hostnamestr)-3] = '\0'; + if ((lease = find_lease(state, &addr)) != NULL) { + lease->hostname = xstrdup(hostnamestr); + } + hostnamestr[0] = '\0'; break; default: /* do nothing */ ; @@ -217,8 +241,14 @@ void parse_config(struct conf_t *state, const int is_include, const char *restri shared_p->name = state->shared_net_root->name; /* Open configuration file */ dhcpd_config = fopen(config_file, "r"); - if (dhcpd_config == NULL) + if (dhcpd_config == NULL) { + if (is_include) { + error(0, errno, "cannot open inlude: %s", config_file); + return; + } + /* config if from command line, just exit with error */ error(EXIT_FAILURE, errno, "parse_config: %s", config_file); + } #ifdef HAVE_POSIX_FADVISE # ifdef POSIX_FADV_SEQUENTIAL if (posix_fadvise(fileno(dhcpd_config), 0, 0, POSIX_FADV_SEQUENTIAL) != 0) @@ -227,9 +257,11 @@ void parse_config(struct conf_t *state, const int is_include, const char *restri #endif /* HAVE_POSIX_FADVISE */ /* Very hairy stuff begins. */ while (unlikely(!feof(dhcpd_config))) { - char c; + int c; c = fgetc(dhcpd_config); + if (CHAR_MAX < c) + continue; /* Certain characters are magical */ switch (c) { /* Handle comments if they are not quoted */ @@ -324,7 +356,7 @@ void parse_config(struct conf_t *state, const int is_include, const char *restri /* Save to word which clause this is. */ if ((newclause == 1 || argument != ITS_NOTHING_INTERESTING) && (!isspace(c) || 0 < quote)) { - word[i] = c; + word[i] = (char) c; i++; /* Long word which is almost causing overflow. None * of words are this long which the program is @@ -384,7 +416,7 @@ void parse_config(struct conf_t *state, const int is_include, const char *restri newclause = 1; break; case ITS_A_RANGE_FIRST_IP: - /* printf ("range 1nd ip: %s\n", word); */ + /* printf ("range 1st ip: %s\n", word); */ range_p = state->ranges + state->num_ranges; if (!(parse_ipaddr(state, word, &addr))) /* word was not ip, try again */ diff --git a/src/hash.c b/src/hash.c index 77ecd79..eb434df 100644 --- a/src/hash.c +++ b/src/hash.c @@ -66,6 +66,9 @@ void add_lease_v4(struct conf_t *state, union ipaddr_t *addr, enum ltype type) l->type = type; HASH_ADD_INT(state->leases, ip.v4, l); l->ethernet = NULL; + l->ends = NULL; + l->starts = NULL; + l->hostname = NULL; } void add_lease_v6(struct conf_t *state, union ipaddr_t *addr, enum ltype type) @@ -77,6 +80,9 @@ void add_lease_v6(struct conf_t *state, union ipaddr_t *addr, enum ltype type) l->type = type; HASH_ADD_V6(state->leases, ip.v6, l); l->ethernet = NULL; + l->ends = NULL; + l->starts = NULL; + l->hostname = NULL; } /*! \brief Find pointer to lease from hash array. @@ -110,6 +116,9 @@ struct leases_t *find_lease_v6(struct conf_t *state, union ipaddr_t *addr) void delete_lease(struct conf_t *state, struct leases_t *lease) { free(lease->ethernet); + free(lease->ends); + free(lease->starts); + free(lease->hostname); HASH_DEL(state->leases, lease); free(lease); } @@ -122,6 +131,9 @@ void delete_all_leases(struct conf_t *state) HASH_ITER(hh, state->leases, l, tmp) { free(l->ethernet); + free(l->ends); + free(l->starts); + free(l->hostname); HASH_DEL(state->leases, l); free(l); } @@ -134,6 +146,9 @@ void delete_all_leases(struct conf_t *state) l = state->leases; free(l->ethernet); + free(l->ends); + free(l->starts); + free(l->hostname); HASH_DEL(state->leases, l); /* leases advances to next on delete */ free(l); } diff --git a/src/mustach-dhcpd-pools.c b/src/mustach-dhcpd-pools.c index d152938..625588e 100644 --- a/src/mustach-dhcpd-pools.c +++ b/src/mustach-dhcpd-pools.c @@ -58,10 +58,12 @@ */ struct expl { struct conf_t *state; + struct leases_t *lease_p; struct range_t *range_p; struct shared_network_t *shnet_p; struct output_helper_t oh; int current; + uint32_t pad; }; static int must_enter(void *closure, const char *name); @@ -81,21 +83,45 @@ static int must_put_base(void *closure, const char *name, int escape fprintf(file, "%u", e->state->num_ranges); return 0; } + if (!strcmp(name, "number_of_ranges_warning")) { + struct status_counts_t stat = { 0 }; + + range_alarms(e->state, &stat); + fprintf(file, "%u", stat.warning); + return 0; + } + if (!strcmp(name, "number_of_ranges_critical")) { + struct status_counts_t stat = { 0 }; + + range_alarms(e->state, &stat); + fprintf(file, "%u", stat.critical); + return 0; + } if (!strcmp(name, "number_of_shared_networks")) { - static uint32_t num = 0xffffffff; + uint32_t num = 0; + struct shared_network_t *shared_p; - if (num == 0xffffffff) { - /* Use of static num ensures this is done only once. */ - struct shared_network_t *shared_p; - - num = 0; - for (shared_p = e->state->shared_net_root->next; shared_p; - shared_p = shared_p->next) - num++; + for (shared_p = e->state->shared_net_root->next; shared_p; + shared_p = shared_p->next) { + num++; } fprintf(file, "%u", num); return 0; } + if (!strcmp(name, "number_of_shared_networks_warning")) { + struct status_counts_t stat = { 0 }; + + shared_net_alarms(e->state, &stat); + fprintf(file, "%u", stat.warning); + return 0; + } + if (!strcmp(name, "number_of_shared_networks_critical")) { + struct status_counts_t stat = { 0 }; + + shared_net_alarms(e->state, &stat); + fprintf(file, "%u", stat.critical); + return 0; + } if (!strcmp(name, "version")) { fprintf(file, "%s", PACKAGE_VERSION); return 0; @@ -153,6 +179,36 @@ static struct mustach_itf itf = { .leave = must_leave }; +/*! \brief Mustach active lease aka {{#active_lease}} tag parser and printer. */ +static int must_put_active_lease(void *closure, const char *name, int escape + __attribute__((unused)), FILE *file) +{ + struct expl *e = closure; + + if (!strcmp(name, "ip")) { + fprintf(file, "%s", ntop_ipaddr(&e->lease_p->ip)); + return 0; + } + if (!strcmp(name, "macaddress")) { + fprintf(file, "%s", e->lease_p->ethernet); + return 0; + } + error(EXIT_FAILURE, 0, "mustach_dhcpd_pools: fmustach: unexpected tag: %s", name); + return 1; +} + +/*! \brief A function to move to next lease when {{/active_lease}} is encountered. */ +static int must_next_active_lease(void *closure) +{ + struct expl *e = closure; + + e->lease_p = e->lease_p->hh.next; + if (e->lease_p == NULL) + return 0; + return 1; +} + + /*! \brief Mustach range aka {{#subnets}} tag parser and printer. */ static int must_put_range(void *closure, const char *name, int escape __attribute__ ((unused)), FILE *file) @@ -334,6 +390,13 @@ static int must_enter(void *closure, const char *name) { struct expl *e = closure; + if (!strcmp(name, "active_lease")) { + itf.put = must_put_active_lease; + itf.next = must_next_active_lease; + e->current = 0; + e->lease_p = e->state->leases; + return must_next_active_lease(closure); + } if (!strcmp(name, "subnets")) { itf.put = must_put_range; itf.next = must_next_range; @@ -362,7 +425,7 @@ static int must_enter(void *closure, const char *name) return 1; } -/*! \brief Function that is called when all elements within a print loop are outputed. */ +/*! \brief Function that is called when all elements within a print loop are outputted. */ static int must_leave(void *closure) { struct expl *e = closure; @@ -440,7 +503,7 @@ int mustach_dhcpd_pools(struct conf_t *state) case MUSTACH_ERROR_BAD_SEPARATORS: error(EXIT_FAILURE, 0, "mustach_dhcpd_pools: fmustach: bad separator"); break; - case MUSTACH_ERROR_TOO_DEPTH: + case MUSTACH_ERROR_TOO_DEEP: error(EXIT_FAILURE, 0, "mustach_dhcpd_pools: fmustach: too deep"); break; case MUSTACH_ERROR_CLOSING: diff --git a/src/mustach.c b/src/mustach.c index 9868cff..b197a83 100644 --- a/src/mustach.c +++ b/src/mustach.c @@ -8,7 +8,7 @@ you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -19,6 +19,8 @@ #define _GNU_SOURCE +#include "config.h" + #include #include #include @@ -30,6 +32,76 @@ #define NAME_LENGTH_MAX 1024 #define DEPTH_MAX 256 +#if !defined(NO_OPEN_MEMSTREAM) +static FILE *memfile_open(char **buffer, size_t *size) +{ + return open_memstream(buffer, size); +} +static void memfile_abort(FILE *file, char **buffer, size_t *size) +{ + fclose(file); + free(*buffer); + *buffer = NULL; + *size = 0; +} +static int memfile_close(FILE *file, char **buffer, size_t *size) +{ + int rc; + + /* adds terminating null */ + rc = fputc(0, file) ? MUSTACH_ERROR_SYSTEM : 0; + fclose(file); + if (rc == 0) + /* removes terminating null of the length */ + (*size)--; + else { + free(*buffer); + *buffer = NULL; + *size = 0; + } + return rc; +} +#else +static FILE *memfile_open(char **buffer, size_t *size) +{ + return tmpfile(); +} +static void memfile_abort(FILE *file, char **buffer, size_t *size) +{ + fclose(file); + *buffer = NULL; + *size = 0; +} +static int memfile_close(FILE *file, char **buffer, size_t *size) +{ + int rc; + size_t s; + char *b; + + s = (size_t)ftell(file); + b = malloc(s + 1); + if (b == NULL) { + rc = MUSTACH_ERROR_SYSTEM; + errno = ENOMEM; + s = 0; + } else { + rewind(file); + if (1 == fread(b, s, 1, file)) { + rc = 0; + b[s] = 0; + } else { + rc = MUSTACH_ERROR_SYSTEM; + free(b); + b = NULL; + s = 0; + } + } + *buffer = b; + *size = s; + return rc; +} +#endif + static int getpartial(struct mustach_itf *itf, void *closure, const char *name, char **result) { int rc; @@ -37,26 +109,22 @@ static int getpartial(struct mustach_itf *itf, void *closure, const char *name, size_t size; *result = NULL; - file = open_memstream(result, &size); + file = memfile_open(result, &size); if (file == NULL) rc = MUSTACH_ERROR_SYSTEM; else { rc = itf->put(closure, name, 0, file); - if (rc == 0) - /* adds terminating null */ - rc = fputc(0, file) ? MUSTACH_ERROR_SYSTEM : 0; - fclose(file); - if (rc < 0) { - free(*result); - *result = NULL; - } + if (rc < 0) + memfile_abort(file, result, &size); + else + rc = memfile_close(file, result, &size); } return rc; } static int process(const char *template, struct mustach_itf *itf, void *closure, FILE *file, const char *opstr, const char *clstr) { - char name[NAME_LENGTH_MAX + 1], *partial, c; + char name[NAME_LENGTH_MAX + 1], *partial, c, *tmp; const char *beg, *term; struct { const char *name, *again; size_t length; int emit, entered; } stack[DEPTH_MAX]; size_t oplen, cllen, len, l; @@ -112,8 +180,10 @@ static int process(const char *template, struct mustach_itf *itf, void *closure, default: while (len && isspace(beg[0])) { beg++; len--; } while (len && isspace(beg[len-1])) len--; +#if defined(NO_EXTENSION_FOR_MUSTACH) || defined(NO_ALLOW_EMPTY_TAG) if (len == 0) return MUSTACH_ERROR_EMPTY_TAG; +#endif if (len > NAME_LENGTH_MAX) return MUSTACH_ERROR_TAG_TOO_LONG; memcpy(name, beg, len); @@ -134,19 +204,25 @@ static int process(const char *template, struct mustach_itf *itf, void *closure, for (l = 0; l < len && !isspace(beg[l]) ; l++); if (l == len) return MUSTACH_ERROR_BAD_SEPARATORS; - opstr = strndupa(beg, l); + oplen = l; + tmp = alloca(oplen + 1); + memcpy(tmp, beg, oplen); + tmp[oplen] = 0; + opstr = tmp; while (l < len && isspace(beg[l])) l++; if (l == len) return MUSTACH_ERROR_BAD_SEPARATORS; - clstr = strndupa(beg + l, len - l); - oplen = strlen(opstr); - cllen = strlen(clstr); + cllen = len - l; + tmp = alloca(cllen + 1); + memcpy(tmp, beg + l, cllen); + tmp[cllen] = 0; + clstr = tmp; break; case '^': case '#': /* begin section */ if (depth == DEPTH_MAX) - return MUSTACH_ERROR_TOO_DEPTH; + return MUSTACH_ERROR_TOO_DEEP; rc = emit; if (rc) { rc = itf->enter(closure, name); @@ -234,24 +310,15 @@ int mustach(const char *template, struct mustach_itf *itf, void *closure, char * *result = NULL; if (size == NULL) size = &s; - file = open_memstream(result, size); - if (file == NULL) { + file = memfile_open(result, size); + if (file == NULL) rc = MUSTACH_ERROR_SYSTEM; - errno = ENOMEM; - } else { + else { rc = fmustach(template, itf, closure, file); - if (rc == 0) - /* adds terminating null */ - rc = fputc(0, file) ? MUSTACH_ERROR_SYSTEM : 0; - fclose(file); - if (rc >= 0) - /* removes terminating null of the length */ - (*size)--; - else { - free(*result); - *result = NULL; - *size = 0; - } + if (rc < 0) + memfile_abort(file, result, size); + else + rc = memfile_close(file, result, size); } return rc; } diff --git a/src/mustach.h b/src/mustach.h index 8196679..0ceba16 100644 --- a/src/mustach.h +++ b/src/mustach.h @@ -8,7 +8,7 @@ you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -29,12 +29,17 @@ * * The functions enter and next should return 0 or 1. * - * All other functions should normally return 0. + * All other functions should normally return 0. If it returns + * a negative value, it means an error that stop the process + * and that is reported to the caller. * * @start: Starts the mustach processing of the closure * 'start' is optional (can be NULL) * * @put: Writes the value of 'name' to 'file' with 'escape' or not + * As an extension (see NO_ALLOW_EMPTY_TAG), the 'name' can be + * the empty string. In that later case an implemntation can + * return MUSTACH_ERROR_EMPTY_TAG to refuse empty names. * * @enter: Enters the section of 'name' if possible. * Musts return 1 if entered or 0 if not entered. @@ -64,10 +69,13 @@ struct mustach_itf { #define MUSTACH_ERROR_EMPTY_TAG -3 #define MUSTACH_ERROR_TAG_TOO_LONG -4 #define MUSTACH_ERROR_BAD_SEPARATORS -5 -#define MUSTACH_ERROR_TOO_DEPTH -6 +#define MUSTACH_ERROR_TOO_DEEP -6 #define MUSTACH_ERROR_CLOSING -7 #define MUSTACH_ERROR_BAD_UNESCAPE_TAG -8 +/* compatibility with older bad name */ +#define MUSTACH_ERROR_TOO_DEPTH MUSTACH_ERROR_TOO_DEEP + /** * fmustach - Renders the mustache 'template' in 'file' for 'itf' and 'closure'. * diff --git a/src/other.c b/src/other.c index 2b2cbf9..b319a2d 100644 --- a/src/other.c +++ b/src/other.c @@ -58,7 +58,7 @@ #include "dhcpd-pools.h" -char *(*cidr_last) (union ipaddr_t *restrict addr, const int mask); +static char *(*cidr_last) (union ipaddr_t *restrict addr, const int mask); static char *cidr_last_v4(union ipaddr_t *restrict addr, const int mask); static char *cidr_last_v6(union ipaddr_t *restrict addr, const int mask); @@ -298,7 +298,7 @@ const char *ntop_ipaddr_init(const union ipaddr_t *ip __attribute__ ((unused))) const char *ntop_ipaddr_v4(const union ipaddr_t *ip) { - static char buffer[sizeof("255.255.255.255")]; + static char buffer[INET_ADDRSTRLEN]; struct in_addr addr; addr.s_addr = htonl(ip->v4); @@ -307,7 +307,7 @@ const char *ntop_ipaddr_v4(const union ipaddr_t *ip) const char *ntop_ipaddr_v6(const union ipaddr_t *ip) { - static char buffer[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; + static char buffer[INET6_ADDRSTRLEN]; struct in6_addr addr; memcpy(addr.s6_addr, ip->v6, sizeof(addr.s6_addr)); @@ -411,10 +411,18 @@ int if (!memcmp(" hardware ethernet", str, 19)) return PREFIX_HARDWARE_ETHERNET; break; + default: + break; } } if (!memcmp("lease ", str, 6)) return PREFIX_LEASE; + else if (!memcmp(" starts ", str, 9)) + return PREFIX_STARTS; + else if (!memcmp(" ends ", str, 7)) + return PREFIX_ENDS; + else if (!memcmp(" client-hostname ", str, 18)) + return PREFIX_HOSTNAME; return NUM_OF_PREFIX; } @@ -464,10 +472,18 @@ int if (!memcmp(" hardware ethernet", str, 19)) return PREFIX_HARDWARE_ETHERNET; break; + default: + break; } } if (!memcmp(" iaaddr ", str, 9)) return PREFIX_LEASE; + else if (!memcmp(" starts ", str, 9)) + return PREFIX_STARTS; + else if (!memcmp(" ends ", str, 7)) + return PREFIX_ENDS; + else if (!memcmp(" client-hostname ", str, 18)) + return PREFIX_HOSTNAME; return NUM_OF_PREFIX; } @@ -476,13 +492,13 @@ int * \param Color mode string. * \return color mode enum. */ -int parse_color_mode(const char *restrict optarg) +int parse_color_mode(const char *restrict arg) { - if (!strcmp(optarg, "always")) + if (!strcmp(arg, "always")) return color_on; - if (!strcmp(optarg, "auto")) + if (!strcmp(arg, "auto")) return color_auto; - if (!strcmp(optarg, "never")) + if (!strcmp(arg, "never")) return color_off; return color_unknown; } @@ -547,31 +563,23 @@ void clean_up(struct conf_t *state) } /*! \brief Print a time stamp of a path or now to output file. */ -void dp_time_tool(FILE *file, const char *path, int epoch) +void dp_time_tool(FILE *file, const char *path, const int epoch) { - time_t t; - - /* a file or now */ - if (path) { - struct stat st; + struct stat st; + if (path) stat(path, &st); - t = st.st_mtime; - } else - t = time(NULL); - /* epoc or iso time stamp */ + else + clock_gettime(CLOCK_REALTIME, &st.st_mtim); if (epoch) - fprintf(file, "%ld", t); + fprintf(file, "%ld", st.st_mtim.tv_sec); else { char time_stamp[64]; + const time_t mtime = st.st_mtim.tv_sec; struct tm tm; - int len; - localtime_r(&t, &tm); - len = snprintf(time_stamp, sizeof(time_stamp), "%4d-%.2d-%.2dT%02d:%02d:%02d", - tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); - strftime(time_stamp + len, sizeof(time_stamp) - len, "%z", &tm); + localtime_r(&mtime, &tm); + strftime(time_stamp, sizeof(time_stamp), "%FT%T%z", &tm); fprintf(file, "%s", time_stamp); } } diff --git a/src/output.c b/src/output.c index a651ccb..4ff0a90 100644 --- a/src/output.c +++ b/src/output.c @@ -82,7 +82,7 @@ enum count_status_t { }; /*! \var color_tags - * \brief Array of stings that make colors to start and end in different + * \brief Array of strings that make colors to start and end in different * schemas per array column. */ static const char *color_tags[][NUM_OF_OUT_FORMS] = { [STATUS_OK] = { "", "" }, @@ -158,11 +158,11 @@ int shnet_output_helper(struct conf_t *state, struct output_helper_t *oh, oh->status = STATUS_IGNORED; if (state->skip_minsize) return 1; - } else if (state->critical < oh->percent && shared_p->used < state->crit_count) { + } else if (state->critical < oh->percent && (shared_p->available - shared_p->used) < state->crit_count) { oh->status = STATUS_CRIT; if (state->skip_critical) return 1; - } else if (state->warning < oh->percent && shared_p->used < state->warn_count) { + } else if (state->warning < oh->percent && (shared_p->available - shared_p->used) < state->warn_count) { oh->status = STATUS_WARN; if (state->skip_warning) return 1; @@ -182,7 +182,7 @@ static int start_color(struct conf_t *state, struct output_helper_t *oh, FILE *o if (oh->status == STATUS_OK) { return 0; } - fputs(color_tags[oh->status][state->output_format], outfile); + fputs(color_tags[oh->status][state->color_format], outfile); return 1; } @@ -219,7 +219,6 @@ static void close_outfile(FILE *outfile) /*! \brief Text output format, which is the default. */ static int output_txt(struct conf_t *state) { - unsigned int i; struct range_t *range_p; struct shared_network_t *shared_p; struct output_helper_t oh; @@ -249,6 +248,7 @@ static int output_txt(struct conf_t *state) fprintf(outfile, "\n"); } if (state->number_limit & R_BIT) { + unsigned int i; for (i = 0; i < state->num_ranges; i++) { int color_set = 0; @@ -282,7 +282,7 @@ static int output_txt(struct conf_t *state) fprintf(outfile, "%7g %8.3f", range_p->backups, oh.bup); } if (color_set) - fputs(color_tags[COLOR_RESET][state->output_format], outfile); + fputs(color_tags[COLOR_RESET][state->color_format], outfile); fprintf(outfile, "\n"); range_p++; } @@ -320,7 +320,7 @@ static int output_txt(struct conf_t *state) fprintf(outfile, "%7g %8.3f", shared_p->backups, oh.bup); } if (color_set) - fputs(color_tags[COLOR_RESET][state->output_format], outfile); + fputs(color_tags[COLOR_RESET][state->color_format], outfile); fprintf(outfile, "\n"); } } @@ -356,7 +356,7 @@ static int output_txt(struct conf_t *state) fprintf(outfile, "%7g %8.3f", state->shared_net_root->backups, oh.bup); } if (color_set) - fputs(color_tags[COLOR_RESET][state->output_format], outfile); + fputs(color_tags[COLOR_RESET][state->color_format], outfile); fprintf(outfile, "\n"); } close_outfile(outfile); @@ -364,9 +364,8 @@ static int output_txt(struct conf_t *state) } /*! \brief The xml output formats. */ -static int output_xml(struct conf_t *state, const int print_mac_addreses) +static int output_xml(struct conf_t *state) { - unsigned int i; struct range_t *range_p; struct shared_network_t *shared_p; struct output_helper_t oh; @@ -377,7 +376,7 @@ static int output_xml(struct conf_t *state, const int print_mac_addreses) fprintf(outfile, "\n"); - if (print_mac_addreses == 1) { + if (state->print_mac_addreses) { struct leases_t *l; for (l = state->leases; l != NULL; l = l->hh.next) { @@ -388,12 +387,25 @@ static int output_xml(struct conf_t *state, const int print_mac_addreses) if (l->ethernet != NULL) { fputs(l->ethernet, outfile); } - fputs("\n\n", outfile); + fputs("\n\t", outfile); + if (l->starts != NULL) { + fputs(l->starts, outfile); + } + fputs("\n\t", outfile); + if (l->ends != NULL) { + fputs(l->ends, outfile); + } + fputs("\n\t", outfile); + if (l->hostname != NULL) { + fputs(l->hostname, outfile); + } + fputs("\n\n", outfile); } } } if (state->number_limit & R_BIT) { + unsigned int i; for (i = 0; i < state->num_ranges; i++) { if (range_output_helper(state, &oh, range_p)) { range_p++; @@ -449,7 +461,7 @@ static int output_xml(struct conf_t *state, const int print_mac_addreses) } /*! \brief The json output formats. */ -static int output_json(struct conf_t *state, const int print_mac_addreses) +static int output_json(struct conf_t *state) { unsigned int i = 0; struct range_t *range_p; @@ -464,7 +476,7 @@ static int output_json(struct conf_t *state, const int print_mac_addreses) fprintf(outfile, "{\n"); - if (print_mac_addreses == 1) { + if (state->print_mac_addreses) { struct leases_t *l; fprintf(outfile, " \"active_leases\": ["); @@ -481,6 +493,18 @@ static int output_json(struct conf_t *state, const int print_mac_addreses) if (l->ethernet != NULL) { fputs(l->ethernet, outfile); } + fputs("\", \"starts\":\"", outfile); + if (l->starts != NULL) { + fputs(l->starts, outfile); + } + fputs("\", \"ends\":\"", outfile); + if (l->ends != NULL) { + fputs(l->ends, outfile); + } + fputs("\", \"hostname\":\"", outfile); + if (l->hostname != NULL) { + fputs(l->hostname, outfile); + } fputs("\" }", outfile); } } @@ -587,9 +611,15 @@ static int output_json(struct conf_t *state, const int print_mac_addreses) fprintf(outfile, " \"touched\":%g,\n", state->shared_net_root->touched); fprintf(outfile, " \"free\":%g,\n", state->shared_net_root->available - state->shared_net_root->used); - fprintf(outfile, " \"percent\":%g,\n", oh.percent); + if (fpclassify(state->shared_net_root->available) == FP_ZERO) + fprintf(outfile, " \"percent\":\"%g\",\n", oh.percent); + else + fprintf(outfile, " \"percent\":%g,\n", oh.percent); fprintf(outfile, " \"touch_count\":%g,\n", oh.tc); - fprintf(outfile, " \"touch_percent\":%g,\n", oh.tcp); + if (fpclassify(state->shared_net_root->available) == FP_ZERO) + fprintf(outfile, " \"touch_percent\":\"%g\",\n", oh.tcp); + else + fprintf(outfile, " \"touch_percent\":%g,\n", oh.tcp); if (state->backups_found == 1) { fprintf(outfile, " \"backup_count\":%g,\n", state->shared_net_root->backups); @@ -628,8 +658,8 @@ static void html_header(struct conf_t *state, FILE *restrict f) fprintf(f, "\n"); fprintf(f, "\n"); fprintf(f, "\n"); - fprintf(f, "\n"); - fprintf(f, "\n"); + fprintf(f, "\n"); + fprintf(f, "\n"); fprintf(f, "\n"); @@ -652,8 +682,8 @@ static void html_footer(FILE *restrict f) fprintf(f, "Generated using %s
\n", PACKAGE_STRING); fprintf(f, "More info at %s\n", PACKAGE_URL, PACKAGE_URL); fprintf(f, "
\n"); - fprintf(f, "\n"); - fprintf(f, "\n"); + fprintf(f, "\n"); + fprintf(f, "\n"); fprintf(f, "\n"); fprintf(f, "\n"); fprintf(f, "\n"); @@ -726,7 +756,7 @@ static void output_double_color(struct conf_t *state, * \param type HTML tag name. * \param fl Actual payload of the printout. */ -static void output_float(FILE *restrict f, char const *restrict type, float fl) +static void output_float(FILE *restrict f, char const *restrict type, double fl) { fprintf(f, "<%s>%.3f\n", type, fl, type); } @@ -762,7 +792,6 @@ static void newsection(FILE *restrict f, char const *restrict title) /*! \brief Output html format. */ static int output_html(struct conf_t *state) { - unsigned int i; struct range_t *range_p; struct shared_network_t *shared_p; struct output_helper_t oh; @@ -877,6 +906,7 @@ static int output_html(struct conf_t *state) end_tag(outfile, "thead"); } if (state->number_limit & R_BIT) { + unsigned int i; start_tag(outfile, "tbody"); for (i = 0; i < state->num_ranges; i++) { if (range_output_helper(state, &oh, range_p)) { @@ -916,7 +946,6 @@ static int output_html(struct conf_t *state) /*! \brief Output cvs format. */ static int output_csv(struct conf_t *state) { - unsigned int i; struct range_t *range_p; struct shared_network_t *shared_p; struct output_helper_t oh; @@ -935,6 +964,7 @@ static int output_csv(struct conf_t *state) fprintf(outfile, "\n"); } if (state->number_limit & R_BIT) { + unsigned int i; for (i = 0; i < state->num_ranges; i++) { if (range_output_helper(state, &oh, range_p)) { range_p++; @@ -1024,19 +1054,11 @@ static int output_csv(struct conf_t *state) return 0; } -/*! \brief Output alarm text, and return program exit value. */ -static int output_alarming(struct conf_t *state) +void range_alarms(struct conf_t *state, struct status_counts_t *rangstat) { - FILE *outfile; - struct range_t *range_p; - struct shared_network_t *shared_p; struct output_helper_t oh; + struct range_t *range_p = state->ranges; unsigned int i; - int rw = 0, rc = 0, ro = 0, ri = 0, sw = 0, sc = 0, so = 0, si = 0; - int ret_val; - - outfile = open_outfile(state); - range_p = state->ranges; if (state->number_limit & R_BIT) { for (i = 0; i < state->num_ranges; i++) { @@ -1045,16 +1067,16 @@ static int output_alarming(struct conf_t *state) case STATUS_SUPPRESSED: break; case STATUS_IGNORED: - ri++; + rangstat->ignored++; break; case STATUS_CRIT: - rc++; + rangstat->critical++; break; case STATUS_WARN: - rw++; + rangstat->warning++; break; case STATUS_OK: - ro++; + rangstat->ok++; break; default: abort(); @@ -1062,6 +1084,13 @@ static int output_alarming(struct conf_t *state) range_p++; } } +} + +void shared_net_alarms(struct conf_t *state, struct status_counts_t *sharstat) +{ + struct output_helper_t oh; + struct shared_network_t *shared_p; + if (state->number_limit & S_BIT) { for (shared_p = state->shared_net_root->next; shared_p; shared_p = shared_p->next) { shnet_output_helper(state, &oh, shared_p); @@ -1069,35 +1098,51 @@ static int output_alarming(struct conf_t *state) case STATUS_SUPPRESSED: break; case STATUS_IGNORED: - si++; + sharstat->ignored++; break; case STATUS_CRIT: - sc++; + sharstat->critical++; break; case STATUS_WARN: - sw++; + sharstat->warning++; break; case STATUS_OK: - so++; + sharstat->ok++; break; default: abort(); } } } +} - if (sc || rc) + +/*! \brief Output alarm text, and return program exit value. */ +static int output_alarming(struct conf_t *state) +{ + FILE *outfile; + unsigned int i; + int ret_val; + struct status_counts_t rangstat = { 0 }; + struct status_counts_t sharstat = { 0 }; + + outfile = open_outfile(state); + + range_alarms(state, &rangstat); + shared_net_alarms(state, &sharstat); + + if (rangstat.critical || sharstat.critical) ret_val = STATE_CRITICAL; - else if (sw || rw) + else if (rangstat.warning || sharstat.warning) ret_val = STATE_WARNING; else ret_val = STATE_OK; - if ((0 < rc && state->number_limit & R_BIT) - || (0 < sc && state->number_limit & S_BIT)) { + if ((0 < rangstat.critical && state->number_limit & R_BIT) + || (0 < sharstat.critical && state->number_limit & S_BIT)) { fprintf(outfile, "CRITICAL: %s:", program_name); - } else if ((0 < rw && state->number_limit & R_BIT) - || (0 < sw && state->number_limit & S_BIT)) { + } else if ((0 < rangstat.warning && state->number_limit & R_BIT) + || (0 < sharstat.warning && state->number_limit & S_BIT)) { fprintf(outfile, "WARNING: %s:", program_name); } else { if (state->number_limit & A_BIT) @@ -1110,17 +1155,21 @@ static int output_alarming(struct conf_t *state) } } if (state->header_limit & R_BIT) { - fprintf(outfile, " Ranges - crit: %d warn: %d ok: %d", rc, rw, ro); - if (ri != 0) { - fprintf(outfile, " ignored: %d", ri); + fprintf(outfile, " Ranges - crit: %d warn: %d ok: %d", rangstat.critical, rangstat.warning, rangstat.ok); + if (rangstat.ignored != 0) { + fprintf(outfile, " ignored: %d", rangstat.ignored); } - fprintf(outfile, "; | range_crit=%d range_warn=%d range_ok=%d", rc, rw, ro); - if (ri != 0) { - fprintf(outfile, " range_ignored=%d", ri); + fprintf(outfile, "; | range_crit=%d range_warn=%d range_ok=%d", rangstat.critical, rangstat.warning, rangstat.ok); + if (rangstat.ignored != 0) { + fprintf(outfile, " range_ignored=%d", rangstat.ignored); } if (state->perfdata == 1 && state->number_limit & R_BIT) { - for (i = 0; i < state->num_ranges; i++) { - range_p--; + /* last to first order. too late to fix this after so many years */ + struct range_t *range_p = state->ranges + state->num_ranges - 1; + + for (i = state->num_ranges; i; i--) { + struct output_helper_t oh; + if (range_output_helper(state, &oh, range_p)) continue; if (state->minsize < oh.range_size) { @@ -1137,6 +1186,7 @@ static int output_alarming(struct conf_t *state) range_p->backups); } } + range_p--; } } fprintf(outfile, "\n"); @@ -1144,16 +1194,20 @@ static int output_alarming(struct conf_t *state) fprintf(outfile, " "); } if (state->header_limit & S_BIT) { - fprintf(outfile, "Shared nets - crit: %d warn: %d ok: %d", sc, sw, so); - if (si != 0) { - fprintf(outfile, " ignored: %d", si); + fprintf(outfile, "Shared nets - crit: %d warn: %d ok: %d", sharstat.critical, sharstat.warning, sharstat.ok); + if (sharstat.ignored != 0) { + fprintf(outfile, " ignored: %d", sharstat.ignored); } - fprintf(outfile, "; | snet_crit=%d snet_warn=%d snet_ok=%d", sc, sw, so); - if (si != 0) { - fprintf(outfile, " snet_ignored=%d", si); + fprintf(outfile, "; | snet_crit=%d snet_warn=%d snet_ok=%d", sharstat.critical, sharstat.warning, sharstat.ok); + if (sharstat.ignored != 0) { + fprintf(outfile, " snet_ignored=%d", sharstat.ignored); } if (state->perfdata == 1 && state->header_limit & R_BIT) { + struct shared_network_t *shared_p; + for (shared_p = state->shared_net_root->next; shared_p; shared_p = shared_p->next) { + struct output_helper_t oh; + if (shnet_output_helper(state, &oh, shared_p)) continue; if (state->minsize < shared_p->available) { @@ -1180,13 +1234,13 @@ static int output_alarming(struct conf_t *state) } /*! \brief Return output_format_names enum based on single char input. */ -int output_analysis(struct conf_t *state, const char output_format) +int output_analysis(struct conf_t *state) { int ret = 1; - switch (output_format) { + switch (state->output_format) { case 't': - state->output_format = OUT_FORM_TEXT; + state->color_format = OUT_FORM_TEXT; ret = output_txt(state); break; case 'a': @@ -1196,20 +1250,18 @@ int output_analysis(struct conf_t *state, const char output_format) error(EXIT_FAILURE, 0, "html table only output format is deprecated"); break; case 'H': - state->output_format = OUT_FORM_HTML; + state->color_format = OUT_FORM_HTML; ret = output_html(state); break; case 'x': - ret = output_xml(state, 0); - break; + /* fallthrough */ case 'X': - ret = output_xml(state, 1); + ret = output_xml(state); break; case 'j': - ret = output_json(state, 0); - break; + /* fallthrough */ case 'J': - ret = output_json(state, 1); + ret = output_json(state); break; case 'c': ret = output_csv(state); @@ -1220,7 +1272,7 @@ int output_analysis(struct conf_t *state, const char output_format) break; #endif default: - error(EXIT_FAILURE, 0, "unknown output format: '%c'", output_format); + error(EXIT_FAILURE, 0, "unknown output format: '%c'", state->output_format); } return ret; } diff --git a/src/sort.c b/src/sort.c index 4fdb4e0..ab252c0 100644 --- a/src/sort.c +++ b/src/sort.c @@ -40,6 +40,7 @@ #include +#include #include #include #include @@ -118,9 +119,14 @@ int rangecomp(const void *restrict r1, const void *restrict r2) */ int comp_double(double f1, double f2) { - return f1 < f2 ? -1 : f1 > f2 ? 1 : 0; + if (isless(f1, f2)) + return -1; + else if (isless(f2, f1)) + return 1; + return 0; } + /*! \brief Compare two range_t by their first_ip. * \param r1,r2 Pointers to data to compare. * \return Like strcmp. @@ -280,7 +286,6 @@ void mergesort_ranges(struct conf_t *state, struct range_t *restrict orig, unsig struct range_t *restrict temp, const int root_call) { unsigned int left, i, u_right; - int s_right; struct range_t hold; /* Merge sort split size */ static const unsigned int MIN_MERGE_SIZE = 8; @@ -290,6 +295,8 @@ void mergesort_ranges(struct conf_t *state, struct range_t *restrict orig, unsig if (size < MIN_MERGE_SIZE) { for (left = 0; left < size; left++) { + int s_right; + hold = *(orig + left); for (s_right = left - 1; 0 <= s_right; s_right--) { if (merge(state, (orig + s_right), &hold)) diff --git a/tests/Makemodule.am b/tests/Makemodule.am index 1372324..8e31e8e 100644 --- a/tests/Makemodule.am +++ b/tests/Makemodule.am @@ -11,21 +11,29 @@ TESTS = \ tests/alarm-warning-snets \ tests/shnet-alarm \ tests/big-small \ + tests/binding-states \ tests/bootp \ + tests/cidr-v4 \ + tests/cidr-v6 \ tests/complete \ tests/complete-perfdata \ tests/empty \ + tests/errors \ tests/full-json \ tests/full-xml \ + tests/formats \ tests/leading0 \ tests/one-ip \ tests/one-line \ + tests/parser \ tests/range4 \ tests/range6 \ tests/same-twice \ + tests/shufled \ tests/simple \ tests/skip \ tests/sorts \ + tests/statuses \ tests/v6 \ tests/v6-perfdata diff --git a/tests/alarm-count-option b/tests/alarm-count-option index 763af1b..37d894d 100755 --- a/tests/alarm-count-option +++ b/tests/alarm-count-option @@ -32,6 +32,13 @@ dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/comp echo $? >> tests/outputs/$IAM-too cat tests/outputs/$IAM-too >> tests/outputs/$IAM +echo '== shared net count alarms ==' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + --color=always --format t --crit-count=20 --critical=0 --warning=0 --warn-count=24 \ + --output=tests/outputs/$IAM-too +echo $? >> tests/outputs/$IAM-too +cat tests/outputs/$IAM-too >> tests/outputs/$IAM + rm -f tests/outputs/$IAM-too diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM exit $? diff --git a/tests/binding-states b/tests/binding-states new file mode 100755 index 0000000..a5e98d0 --- /dev/null +++ b/tests/binding-states @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Minimal regression test suite. + +IAM=$(basename $0) + +if [ ! -d tests/outputs ]; then + mkdir tests/outputs +fi + +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --color=never \ + -l $top_srcdir/tests/leases/$IAM -o tests/outputs/$IAM +diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM +exit $? diff --git a/tests/cidr-v4 b/tests/cidr-v4 new file mode 120000 index 0000000..61a58b0 --- /dev/null +++ b/tests/cidr-v4 @@ -0,0 +1 @@ +test.sh \ No newline at end of file diff --git a/tests/cidr-v6 b/tests/cidr-v6 new file mode 120000 index 0000000..61a58b0 --- /dev/null +++ b/tests/cidr-v6 @@ -0,0 +1 @@ +test.sh \ No newline at end of file diff --git a/tests/confs/binding-states b/tests/confs/binding-states new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/confs/binding-states @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/confs/cidr-v4 b/tests/confs/cidr-v4 new file mode 100644 index 0000000..18ba31c --- /dev/null +++ b/tests/confs/cidr-v4 @@ -0,0 +1,31 @@ +shared-network example1 { + subnet 10.0.0.0 netmask 255.255.255.0 { + pool { + range 10.0.0.1/27; + } + } + subnet 10.1.0.0 netmask 255.255.255.0 { + pool { + range 10.1.0.1/27; + } + } +} + +shared-network example2 { + subnet 10.2.0.0 netmask 255.255.255.0 { + pool { + range 10.2.0.1/27; + } + } + subnet 10.3.0.0 netmask 255.255.255.0 { + pool { + range 10.3.0.1/27; + } + } +} + +subnet 10.4.0.0 netmask 255.255.255.0 { + pool { + range 10.4.0.1/28; + } +} diff --git a/tests/confs/cidr-v6 b/tests/confs/cidr-v6 new file mode 100644 index 0000000..a57036c --- /dev/null +++ b/tests/confs/cidr-v6 @@ -0,0 +1,10 @@ +subnet6 dead:abba:1000::/56 { + range6 dead:abba:1000::2/120; + prefix6 dead:abba:1000:0100:: dead:abba:1000:ff00::/56; +} + +subnet6 dead:abba:40ff::/56 { + range6 dead:abba:4000::2/120; + prefix6 dead:abba:4000:0100:: dead:abba:4000:ff00::/56; +} + diff --git a/tests/confs/formats b/tests/confs/formats new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/confs/formats @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/confs/shnet-alarm b/tests/confs/shnet-alarm deleted file mode 100644 index 0ef9eb0..0000000 --- a/tests/confs/shnet-alarm +++ /dev/null @@ -1,31 +0,0 @@ -shared-network example1 { - subnet 10.0.0.0 netmask 255.255.255.0 { - pool { - range 10.0.0.1 10.0.0.20; - } - } - subnet 10.1.0.0 netmask 255.255.255.0 { - pool { - range 10.1.0.1 10.1.0.20; - } - } -} - -shared-network example2 { - subnet 10.2.0.0 netmask 255.255.255.0 { - pool { - range 10.2.0.1 10.2.0.20; - } - } - subnet 10.3.0.0 netmask 255.255.255.0 { - pool { - range 10.3.0.1 10.3.0.20; - } - } -} - -subnet 10.4.0.0 netmask 255.255.255.0 { - pool { - range 10.4.0.1 10.4.0.20; - } -} diff --git a/tests/confs/shnet-alarm b/tests/confs/shnet-alarm new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/confs/shnet-alarm @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/confs/shufled b/tests/confs/shufled new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/confs/shufled @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/confs/statuses b/tests/confs/statuses new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/confs/statuses @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/errors b/tests/errors new file mode 100755 index 0000000..49a4f11 --- /dev/null +++ b/tests/errors @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Test error inputs. + +IAM=$(basename $0) + +if [ ! -d tests/outputs ]; then + mkdir tests/outputs +fi + +echo '=== output mask' >| tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + -L 88 >> tests/outputs/$IAM 2>&1 + +echo '=== unknown specifier' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + --skip=okish >> tests/outputs/$IAM 2>&1 + +echo '=== color mode' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + --color=sometimes >> tests/outputs/$IAM 2>&1 + +echo '=== IPv5' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + --ip-version=5 >> tests/outputs/$IAM 2>&1 + +echo '=== missing conf' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete_NXFILE -l $top_srcdir/tests/leases/complete 2>&1 | \ + sed 's/: ..\/..\/tests/: .\/tests/'>> tests/outputs/$IAM + +echo '=== missing leases' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete_NXFILE 2>&1 | \ + sed 's/: ..\/..\/tests/: .\/tests/' >> tests/outputs/$IAM + +echo '=== html table' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + --format=html >> tests/outputs/$IAM 2>&1 + +echo '=== none existing format' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + -fz >> tests/outputs/$IAM 2>&1 + +echo '=== broken percent input' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/complete -l $top_srcdir/tests/leases/complete \ + --warning=eighty >> tests/outputs/$IAM 2>&1 + +diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM +exit $? diff --git a/tests/expected/alarm-count-option b/tests/expected/alarm-count-option index 3e9b76d..c2f466e 100644 --- a/tests/expected/alarm-count-option +++ b/tests/expected/alarm-count-option @@ -14,3 +14,21 @@ Shared nets - crit: 0 warn: 0 ok: 0 ignored: 2; | snet_crit=0 snet_warn=0 snet_o WARNING: dhcpd-pools: Ranges - crit: 0 warn: 0 ok: 2; | range_crit=0 range_warn=0 range_ok=2 Shared nets - crit: 0 warn: 2 ok: 0; | snet_crit=0 snet_warn=2 snet_ok=0 1 +== shared net count alarms == +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc +example1 10.0.0.1 - 10.0.0.20 20 11 55.000 0 11 55.000 +example1 10.1.0.1 - 10.1.0.20 20 10 50.000 0 10 50.000 +example2 10.2.0.1 - 10.2.0.20 20 8 40.000 0 8 40.000 +example2 10.3.0.1 - 10.3.0.20 20 9 45.000 0 9 45.000 +All networks 10.4.0.1 - 10.4.0.20 20 5 25.000 0 5 25.000 + +Shared networks: +name max cur percent touch t+c t+c perc +example1 40 21 52.500 0 21 52.500 +example2 40 17 42.500 0 17 42.500 + +Sum of all ranges: +name max cur percent touch t+c t+c perc +All networks 100 43 43.000 0 43 43.000 +0 diff --git a/tests/expected/big-small b/tests/expected/big-small deleted file mode 100644 index da14b05..0000000 --- a/tests/expected/big-small +++ /dev/null @@ -1,10 +0,0 @@ -Ranges: -shared net name first ip last ip max cur percent touch t+c t+c perc -All networks 10.0.0.1 - 10.0.0.10 10 10 100.000 0 10 100.000 - -Shared networks: -name max cur percent touch t+c t+c perc - -Sum of all ranges: -name max cur percent touch t+c t+c perc -All networks 10 10 100.000 0 10 100.000 diff --git a/tests/expected/big-small b/tests/expected/big-small new file mode 120000 index 0000000..8fd3246 --- /dev/null +++ b/tests/expected/big-small @@ -0,0 +1 @@ +simple \ No newline at end of file diff --git a/tests/expected/binding-states b/tests/expected/binding-states new file mode 100644 index 0000000..840db2c --- /dev/null +++ b/tests/expected/binding-states @@ -0,0 +1,16 @@ +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc bu bu perc +example1 10.0.0.1 - 10.0.0.20 20 4 20.000 3 7 35.000 2 10.000 +example1 10.1.0.1 - 10.1.0.20 20 10 50.000 0 10 50.000 0 0.000 +example2 10.2.0.1 - 10.2.0.20 20 8 40.000 0 8 40.000 0 0.000 +example2 10.3.0.1 - 10.3.0.20 20 9 45.000 0 9 45.000 0 0.000 +All networks 10.4.0.1 - 10.4.0.20 20 5 25.000 0 5 25.000 0 0.000 + +Shared networks: +name max cur percent touch t+c t+c perc bu bu perc +example1 40 14 35.000 3 17 42.500 2 5.000 +example2 40 17 42.500 0 17 42.500 0 0.000 + +Sum of all ranges: +name max cur percent touch t+c t+c perc bu bu perc +All networks 100 36 36.000 3 39 39.000 2 2.000 diff --git a/tests/expected/bootp b/tests/expected/bootp deleted file mode 100644 index da14b05..0000000 --- a/tests/expected/bootp +++ /dev/null @@ -1,10 +0,0 @@ -Ranges: -shared net name first ip last ip max cur percent touch t+c t+c perc -All networks 10.0.0.1 - 10.0.0.10 10 10 100.000 0 10 100.000 - -Shared networks: -name max cur percent touch t+c t+c perc - -Sum of all ranges: -name max cur percent touch t+c t+c perc -All networks 10 10 100.000 0 10 100.000 diff --git a/tests/expected/bootp b/tests/expected/bootp new file mode 120000 index 0000000..8fd3246 --- /dev/null +++ b/tests/expected/bootp @@ -0,0 +1 @@ +simple \ No newline at end of file diff --git a/tests/expected/cidr-v4 b/tests/expected/cidr-v4 new file mode 100644 index 0000000..db0e50e --- /dev/null +++ b/tests/expected/cidr-v4 @@ -0,0 +1,16 @@ +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc +example1 10.0.0.1 - 10.0.0.31 31 11 35.484 0 11 35.484 +example1 10.1.0.1 - 10.1.0.31 31 10 32.258 0 10 32.258 +example2 10.2.0.1 - 10.2.0.31 31 8 25.806 0 8 25.806 +example2 10.3.0.1 - 10.3.0.31 31 9 29.032 0 9 29.032 +All networks 10.4.0.1 - 10.4.0.15 15 5 33.333 0 5 33.333 + +Shared networks: +name max cur percent touch t+c t+c perc +example1 62 21 33.871 0 21 33.871 +example2 62 17 27.419 0 17 27.419 + +Sum of all ranges: +name max cur percent touch t+c t+c perc +All networks 139 43 30.935 0 43 30.935 diff --git a/tests/expected/cidr-v6 b/tests/expected/cidr-v6 new file mode 100644 index 0000000..04a2462 --- /dev/null +++ b/tests/expected/cidr-v6 @@ -0,0 +1,11 @@ +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc +All networks dead:abba:1000::2 - dead:abba:1000::ff 254 0 0.000 0 0 0.000 +All networks dead:abba:4000::2 - dead:abba:4000::ff 254 1 0.394 0 1 0.394 + +Shared networks: +name max cur percent touch t+c t+c perc + +Sum of all ranges: +name max cur percent touch t+c t+c perc +All networks 508 1 0.197 0 1 0.197 diff --git a/tests/expected/errors b/tests/expected/errors new file mode 100644 index 0000000..6903ac6 --- /dev/null +++ b/tests/expected/errors @@ -0,0 +1,27 @@ +=== output mask +dhcpd-pools: return_limit: output mask '88' is illegal +=== unknown specifier +dhcpd-pools: unknown --skip specifier: okish +=== color mode +dhcpd-pools: unknown color mode: 'sometimes' +=== IPv5 +dhcpd-pools: unknown --ip-version argument: 5 +=== missing conf +dhcpd-pools: cannot open inlude: ./tests/confs/complete_NXFILE: No such file or directory +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc + +Shared networks: +name max cur percent touch t+c t+c perc + +Sum of all ranges: +name max cur percent touch t+c t+c perc +All networks 0 0 nan 0 0 nan +=== missing leases +dhcpd-pools: parse_leases: ./tests/leases/complete_NXFILE: No such file or directory +=== html table +dhcpd-pools: html table only output format is deprecated +=== none existing format +dhcpd-pools: unknown output format: 'z' +=== broken percent input +dhcpd-pools: illegal argument: 'eighty' diff --git a/tests/expected/formats b/tests/expected/formats new file mode 100644 index 0000000..4023f89 --- /dev/null +++ b/tests/expected/formats @@ -0,0 +1,284 @@ +=== color text +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc +example1 10.0.0.1 - 10.0.0.20 20 11 55.000 0 11 55.000 +example1 10.1.0.1 - 10.1.0.20 20 10 50.000 0 10 50.000 +example2 10.2.0.1 - 10.2.0.20 20 8 40.000 0 8 40.000 +example2 10.3.0.1 - 10.3.0.20 20 9 45.000 0 9 45.000 +All networks 10.4.0.1 - 10.4.0.20 20 5 25.000 0 5 25.000 + +Shared networks: +name max cur percent touch t+c t+c perc +example1 40 21 52.500 0 21 52.500 +example2 40 17 42.500 0 17 42.500 + +Sum of all ranges: +name max cur percent touch t+c t+c perc +All networks 100 43 43.000 0 43 43.000 +=== html + + + +ISC dhcpd dhcpd-pools output + + + + + + + + +
+

ISC DHCPD status

+

Sum of all

+ + + + + + + + + + + + + + + + + + + + + + + + + +
namemaxcurfreepercenttoucht+ct+c perc
All networks100435743.00004343.000
+

Shared networks

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
namemaxcurfreepercenttoucht+ct+c perc
example140211952.502152.500
example240172342.501742.500
+

Ranges

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
shared net namefirst iplast ipmaxcurfreepercenttoucht+ct+c perc
example110.0.0.110.0.0.20201195501155.000
example110.1.0.110.1.0.202010105001050.000
example210.2.0.110.2.0.2020812400840.000
example210.3.0.110.3.0.2020911450945.000
All networks10.4.0.110.4.0.2020515250525.000
+
+ + + + + +=== xml + + + example1 + 10.0.0.1 - 10.0.0.20 + 20 + 11 + 0 + 9 + + + example1 + 10.1.0.1 - 10.1.0.20 + 20 + 10 + 0 + 10 + + + example2 + 10.2.0.1 - 10.2.0.20 + 20 + 8 + 0 + 12 + + + example2 + 10.3.0.1 - 10.3.0.20 + 20 + 9 + 0 + 11 + + + All networks + 10.4.0.1 - 10.4.0.20 + 20 + 5 + 0 + 15 + + + example1 + 40 + 21 + 0 + 19 + + + example2 + 40 + 17 + 0 + 23 + + + All networks + 100 + 43 + 0 + 57 + + +=== csv +"Ranges:" +"shared net name","first ip","last ip","max","cur","percent","touch","t+c","t+c perc" +"example1","10.0.0.1","10.0.0.20","20","11","55.000","0","11","55.000" +"example1","10.1.0.1","10.1.0.20","20","10","50.000","0","10","50.000" +"example2","10.2.0.1","10.2.0.20","20","8","40.000","0","8","40.000" +"example2","10.3.0.1","10.3.0.20","20","9","45.000","0","9","45.000" +"All networks","10.4.0.1","10.4.0.20","20","5","25.000","0","5","25.000" + +"Shared networks:" +"name","max","cur","percent","touch","t+c","t+c perc" +"example1","40","21","52.500","0","21","52.500" +"example2","40","17","42.500","0","17","42.500" + +"Sum of all ranges:" +"name","max","cur","percent","touch","t+c","t+c perc" +"All networks","100","43","43.000","0","43","43.000" +=== json +{ + "subnets": [ + { "location":"example1", "range":"10.0.0.1 - 10.0.0.20", "first_ip":"10.0.0.1", "last_ip":"10.0.0.20", "defined":20, "used":11, "touched":0, "free":9, "percent":55, "touch_count":11, "touch_percent":55, "status":0 }, + { "location":"example1", "range":"10.1.0.1 - 10.1.0.20", "first_ip":"10.1.0.1", "last_ip":"10.1.0.20", "defined":20, "used":10, "touched":0, "free":10, "percent":50, "touch_count":10, "touch_percent":50, "status":0 }, + { "location":"example2", "range":"10.2.0.1 - 10.2.0.20", "first_ip":"10.2.0.1", "last_ip":"10.2.0.20", "defined":20, "used":8, "touched":0, "free":12, "percent":40, "touch_count":8, "touch_percent":40, "status":0 }, + { "location":"example2", "range":"10.3.0.1 - 10.3.0.20", "first_ip":"10.3.0.1", "last_ip":"10.3.0.20", "defined":20, "used":9, "touched":0, "free":11, "percent":45, "touch_count":9, "touch_percent":45, "status":0 }, + { "location":"All networks", "range":"10.4.0.1 - 10.4.0.20", "first_ip":"10.4.0.1", "last_ip":"10.4.0.20", "defined":20, "used":5, "touched":0, "free":15, "percent":25, "touch_count":5, "touch_percent":25, "status":0 } + ], + "shared-networks": [ + { "location":"example1", "defined":40, "used":21, "touched":0, "free":19, "percent":52.5, "touch_count":21, "touch_percent":52.5, "status":0 }, + { "location":"example2", "defined":40, "used":17, "touched":0, "free":23, "percent":42.5, "touch_count":17, "touch_percent":42.5, "status":0 } + ] +} +=== perfdata +CRITICAL: dhcpd-pools: Ranges - crit: 3 warn: 2 ok: 0; | range_crit=3 range_warn=2 range_ok=0 10.4.0.1_r=5;4;8;0;20 10.4.0.1_rt=0 10.3.0.1_r=9;4;8;0;20 10.3.0.1_rt=0 10.2.0.1_r=8;4;8;0;20 10.2.0.1_rt=0 10.1.0.1_r=10;4;8;0;20 10.1.0.1_rt=0 10.0.0.1_r=11;4;8;0;20 10.0.0.1_rt=0 +Shared nets - crit: 2 warn: 0 ok: 0; | snet_crit=2 snet_warn=0 snet_ok=0 'example1_s'=21;8;16;0;40 'example1_st'=0 'example2_s'=17;8;16;0;40 'example2_st'=0 + diff --git a/tests/expected/mustach b/tests/expected/mustach index dddecb0..f4df432 100644 --- a/tests/expected/mustach +++ b/tests/expected/mustach @@ -1,3 +1,54 @@ +Ethernets: + macaddress: 00:00:00:00:00:01 ip: 10.0.0.1 + macaddress: 00:00:00:00:00:02 ip: 10.0.0.2 + macaddress: 00:00:00:00:00:03 ip: 10.0.0.3 + macaddress: 00:00:00:00:00:04 ip: 10.0.0.4 + macaddress: 00:00:00:00:00:05 ip: 10.0.0.5 + macaddress: 00:00:00:00:00:06 ip: 10.0.0.6 + macaddress: 00:00:00:00:00:07 ip: 10.0.0.7 + macaddress: 00:00:00:00:00:08 ip: 10.0.0.8 + macaddress: 00:00:00:00:00:09 ip: 10.0.0.9 + macaddress: 00:00:00:00:00:10 ip: 10.0.0.10 + macaddress: 00:00:00:00:00:11 ip: 10.0.0.11 + macaddress: 00:00:00:00:00:12 ip: 10.0.0.12 + macaddress: 00:00:00:00:01:00 ip: 10.1.0.0 + macaddress: 00:00:00:00:01:01 ip: 10.1.0.1 + macaddress: 00:00:00:00:01:02 ip: 10.1.0.2 + macaddress: 00:00:00:00:01:03 ip: 10.1.0.3 + macaddress: 00:00:00:00:01:04 ip: 10.1.0.4 + macaddress: 00:00:00:00:01:05 ip: 10.1.0.5 + macaddress: 00:00:00:00:01:06 ip: 10.1.0.6 + macaddress: 00:00:00:00:01:07 ip: 10.1.0.7 + macaddress: 00:00:00:00:01:08 ip: 10.1.0.8 + macaddress: 00:00:00:00:01:09 ip: 10.1.0.9 + macaddress: 00:00:00:00:01:10 ip: 10.1.0.10 + macaddress: 00:00:00:00:02:00 ip: 10.2.0.0 + macaddress: 00:00:00:00:02:01 ip: 10.2.0.1 + macaddress: 00:00:00:00:02:02 ip: 10.2.0.2 + macaddress: 00:00:00:00:02:03 ip: 10.2.0.3 + macaddress: 00:00:00:00:02:04 ip: 10.2.0.4 + macaddress: 00:00:00:00:02:05 ip: 10.2.0.5 + macaddress: 00:00:00:00:02:06 ip: 10.2.0.6 + macaddress: 00:00:00:00:02:07 ip: 10.2.0.7 + macaddress: 00:00:00:00:02:08 ip: 10.2.0.8 + macaddress: 00:00:00:00:03:00 ip: 10.3.0.0 + macaddress: 00:00:00:00:03:01 ip: 10.3.0.1 + macaddress: 00:00:00:00:03:02 ip: 10.3.0.2 + macaddress: 00:00:00:00:03:03 ip: 10.3.0.3 + macaddress: 00:00:00:00:03:04 ip: 10.3.0.4 + macaddress: 00:00:00:00:03:05 ip: 10.3.0.5 + macaddress: 00:00:00:00:03:06 ip: 10.3.0.6 + macaddress: 00:00:00:00:03:07 ip: 10.3.0.7 + macaddress: 00:00:00:00:03:08 ip: 10.3.0.8 + macaddress: 00:00:00:00:03:09 ip: 10.3.0.9 + macaddress: 00:00:00:00:04:00 ip: 10.4.0.0 + macaddress: 00:00:00:00:04:01 ip: 10.4.0.1 + macaddress: 00:00:00:00:04:02 ip: 10.4.0.2 + macaddress: 00:00:00:00:04:03 ip: 10.4.0.3 + macaddress: 00:00:00:00:04:04 ip: 10.4.0.4 + macaddress: 00:00:00:00:04:05 ip: 10.4.0.5 + macaddress: 00:00:00:00:04:06 ip: 10.4.0.6 + Subnets: location: example1 range: 10.0.0.1 - 10.0.0.20 @@ -120,7 +171,64 @@ number_of_shared_networks: 2 + +number_of_ranges_warning: 0 +number_of_ranges_critical: 0 +number_of_shared_networks: 2 +number_of_shared_networks_warning: 0 +number_of_shared_networks_critical: 0 --- skip ok --- +Ethernets: + macaddress: 00:00:00:00:00:01 ip: 10.0.0.1 + macaddress: 00:00:00:00:00:02 ip: 10.0.0.2 + macaddress: 00:00:00:00:00:03 ip: 10.0.0.3 + macaddress: 00:00:00:00:00:04 ip: 10.0.0.4 + macaddress: 00:00:00:00:00:05 ip: 10.0.0.5 + macaddress: 00:00:00:00:00:06 ip: 10.0.0.6 + macaddress: 00:00:00:00:00:07 ip: 10.0.0.7 + macaddress: 00:00:00:00:00:08 ip: 10.0.0.8 + macaddress: 00:00:00:00:00:09 ip: 10.0.0.9 + macaddress: 00:00:00:00:00:10 ip: 10.0.0.10 + macaddress: 00:00:00:00:00:11 ip: 10.0.0.11 + macaddress: 00:00:00:00:00:12 ip: 10.0.0.12 + macaddress: 00:00:00:00:01:00 ip: 10.1.0.0 + macaddress: 00:00:00:00:01:01 ip: 10.1.0.1 + macaddress: 00:00:00:00:01:02 ip: 10.1.0.2 + macaddress: 00:00:00:00:01:03 ip: 10.1.0.3 + macaddress: 00:00:00:00:01:04 ip: 10.1.0.4 + macaddress: 00:00:00:00:01:05 ip: 10.1.0.5 + macaddress: 00:00:00:00:01:06 ip: 10.1.0.6 + macaddress: 00:00:00:00:01:07 ip: 10.1.0.7 + macaddress: 00:00:00:00:01:08 ip: 10.1.0.8 + macaddress: 00:00:00:00:01:09 ip: 10.1.0.9 + macaddress: 00:00:00:00:01:10 ip: 10.1.0.10 + macaddress: 00:00:00:00:02:00 ip: 10.2.0.0 + macaddress: 00:00:00:00:02:01 ip: 10.2.0.1 + macaddress: 00:00:00:00:02:02 ip: 10.2.0.2 + macaddress: 00:00:00:00:02:03 ip: 10.2.0.3 + macaddress: 00:00:00:00:02:04 ip: 10.2.0.4 + macaddress: 00:00:00:00:02:05 ip: 10.2.0.5 + macaddress: 00:00:00:00:02:06 ip: 10.2.0.6 + macaddress: 00:00:00:00:02:07 ip: 10.2.0.7 + macaddress: 00:00:00:00:02:08 ip: 10.2.0.8 + macaddress: 00:00:00:00:03:00 ip: 10.3.0.0 + macaddress: 00:00:00:00:03:01 ip: 10.3.0.1 + macaddress: 00:00:00:00:03:02 ip: 10.3.0.2 + macaddress: 00:00:00:00:03:03 ip: 10.3.0.3 + macaddress: 00:00:00:00:03:04 ip: 10.3.0.4 + macaddress: 00:00:00:00:03:05 ip: 10.3.0.5 + macaddress: 00:00:00:00:03:06 ip: 10.3.0.6 + macaddress: 00:00:00:00:03:07 ip: 10.3.0.7 + macaddress: 00:00:00:00:03:08 ip: 10.3.0.8 + macaddress: 00:00:00:00:03:09 ip: 10.3.0.9 + macaddress: 00:00:00:00:04:00 ip: 10.4.0.0 + macaddress: 00:00:00:00:04:01 ip: 10.4.0.1 + macaddress: 00:00:00:00:04:02 ip: 10.4.0.2 + macaddress: 00:00:00:00:04:03 ip: 10.4.0.3 + macaddress: 00:00:00:00:04:04 ip: 10.4.0.4 + macaddress: 00:00:00:00:04:05 ip: 10.4.0.5 + macaddress: 00:00:00:00:04:06 ip: 10.4.0.6 + Subnets: location: example1 range: 10.0.0.1 - 10.0.0.20 @@ -201,3 +309,9 @@ number_of_shared_networks: 2 + +number_of_ranges_warning: 3 +number_of_ranges_critical: 0 +number_of_shared_networks: 2 +number_of_shared_networks_warning: 1 +number_of_shared_networks_critical: 0 diff --git a/tests/expected/parser b/tests/expected/parser new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/expected/parser @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/expected/same-twice-json b/tests/expected/same-twice-json index f572972..f23d1b0 100644 --- a/tests/expected/same-twice-json +++ b/tests/expected/same-twice-json @@ -1,6 +1,6 @@ { "active_leases": [ - { "ip":"10.0.0.5", "macaddress":"00:00:00:00:00:00" } + { "ip":"10.0.0.5", "macaddress":"00:00:00:00:00:00", "starts":"", "ends":"", "hostname":"" } ], "subnets": [ { "location":"All networks", "range":"10.0.0.1 - 10.0.0.10", "first_ip":"10.0.0.1", "last_ip":"10.0.0.10", "defined":10, "used":1, "touched":0, "free":9, "percent":10, "touch_count":1, "touch_percent":10, "status":0 } diff --git a/tests/expected/same-twice-xml b/tests/expected/same-twice-xml index 93612d6..7897f7f 100644 --- a/tests/expected/same-twice-xml +++ b/tests/expected/same-twice-xml @@ -2,6 +2,9 @@ 10.0.0.5 00:00:00:00:00:00 + + + All networks diff --git a/tests/expected/shufled b/tests/expected/shufled new file mode 100644 index 0000000..ed34a85 --- /dev/null +++ b/tests/expected/shufled @@ -0,0 +1,16 @@ +Ranges: +shared net name first ip last ip max cur percent touch t+c t+c perc +All networks 10.4.0.1 - 10.4.0.20 20 3 15.000 0 3 15.000 +example1 10.0.0.1 - 10.0.0.20 20 9 45.000 0 9 45.000 +example1 10.1.0.1 - 10.1.0.20 20 4 20.000 0 4 20.000 +example2 10.2.0.1 - 10.2.0.20 20 4 20.000 0 4 20.000 +example2 10.3.0.1 - 10.3.0.20 20 3 15.000 0 3 15.000 + +Shared networks: +name max cur percent touch t+c t+c perc +example1 40 13 32.500 0 13 32.500 +example2 40 7 17.500 0 7 17.500 + +Sum of all ranges: +name max cur percent touch t+c t+c perc +All networks 100 23 23.000 0 23 23.000 diff --git a/tests/expected/sorts b/tests/expected/sorts index c6a6f21..b5f1dc7 100644 --- a/tests/expected/sorts +++ b/tests/expected/sorts @@ -34,7 +34,7 @@ Sum of all ranges: name max cur percent touch t+c t+c perc All networks 100 43 43.000 0 43 43.000 0 -== maxium == +== maximum == Ranges: shared net name first ip last ip max cur percent touch t+c t+c perc All networks 10.4.0.1 - 10.4.0.20 20 5 25.000 0 5 25.000 diff --git a/tests/expected/statuses b/tests/expected/statuses new file mode 100644 index 0000000..908b5a2 --- /dev/null +++ b/tests/expected/statuses @@ -0,0 +1,29 @@ +{ + "subnets": [ + { "location":"example1", "range":"10.0.0.1 - 10.0.0.20", "first_ip":"10.0.0.1", "last_ip":"10.0.0.20", "defined":20, "used":11, "touched":0, "free":9, "percent":55, "touch_count":11, "touch_percent":55, "status":4 }, + { "location":"example1", "range":"10.1.0.1 - 10.1.0.20", "first_ip":"10.1.0.1", "last_ip":"10.1.0.20", "defined":20, "used":10, "touched":0, "free":10, "percent":50, "touch_count":10, "touch_percent":50, "status":4 }, + { "location":"example2", "range":"10.2.0.1 - 10.2.0.20", "first_ip":"10.2.0.1", "last_ip":"10.2.0.20", "defined":20, "used":8, "touched":0, "free":12, "percent":40, "touch_count":8, "touch_percent":40, "status":4 }, + { "location":"example2", "range":"10.3.0.1 - 10.3.0.20", "first_ip":"10.3.0.1", "last_ip":"10.3.0.20", "defined":20, "used":9, "touched":0, "free":11, "percent":45, "touch_count":9, "touch_percent":45, "status":4 }, + { "location":"10.4.0.0/24", "range":"10.4.0.1 - 10.4.0.20", "first_ip":"10.4.0.1", "last_ip":"10.4.0.20", "defined":20, "used":5, "touched":0, "free":15, "percent":25, "touch_count":5, "touch_percent":25, "status":4 } + ], + "shared-networks": [ + { "location":"example1", "defined":40, "used":21, "touched":0, "free":19, "percent":52.5, "touch_count":21, "touch_percent":52.5, "status":2 }, + { "location":"example2", "defined":40, "used":17, "touched":0, "free":23, "percent":42.5, "touch_count":17, "touch_percent":42.5, "status":2 }, + { "location":"10.4.0.0/24", "defined":20, "used":5, "touched":0, "free":15, "percent":25, "touch_count":5, "touch_percent":25, "status":1 } + ] +} +== minsize +{ + "subnets": [ + { "location":"example1", "range":"10.0.0.1 - 10.0.0.20", "first_ip":"10.0.0.1", "last_ip":"10.0.0.20", "defined":20, "used":11, "touched":0, "free":9, "percent":55, "touch_count":11, "touch_percent":55, "status":3 }, + { "location":"example1", "range":"10.1.0.1 - 10.1.0.20", "first_ip":"10.1.0.1", "last_ip":"10.1.0.20", "defined":20, "used":10, "touched":0, "free":10, "percent":50, "touch_count":10, "touch_percent":50, "status":3 }, + { "location":"example2", "range":"10.2.0.1 - 10.2.0.20", "first_ip":"10.2.0.1", "last_ip":"10.2.0.20", "defined":20, "used":8, "touched":0, "free":12, "percent":40, "touch_count":8, "touch_percent":40, "status":3 }, + { "location":"example2", "range":"10.3.0.1 - 10.3.0.20", "first_ip":"10.3.0.1", "last_ip":"10.3.0.20", "defined":20, "used":9, "touched":0, "free":11, "percent":45, "touch_count":9, "touch_percent":45, "status":3 }, + { "location":"10.4.0.0/24", "range":"10.4.0.1 - 10.4.0.20", "first_ip":"10.4.0.1", "last_ip":"10.4.0.20", "defined":20, "used":5, "touched":0, "free":15, "percent":25, "touch_count":5, "touch_percent":25, "status":3 } + ], + "shared-networks": [ + { "location":"example1", "defined":40, "used":21, "touched":0, "free":19, "percent":52.5, "touch_count":21, "touch_percent":52.5, "status":2 }, + { "location":"example2", "defined":40, "used":17, "touched":0, "free":23, "percent":42.5, "touch_count":17, "touch_percent":42.5, "status":2 }, + { "location":"10.4.0.0/24", "defined":20, "used":5, "touched":0, "free":15, "percent":25, "touch_count":5, "touch_percent":25, "status":3 } + ] +} diff --git a/tests/formats b/tests/formats new file mode 100755 index 0000000..254a37b --- /dev/null +++ b/tests/formats @@ -0,0 +1,37 @@ +#!/bin/sh +# +# Minimal regression test suite. + +IAM=$(basename $0) + +if [ ! -d tests/outputs ]; then + mkdir tests/outputs +fi + +echo '=== color text' > tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --color=always \ + -l $top_srcdir/tests/leases/$IAM >> tests/outputs/$IAM + +echo '=== html' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --color=always --format=H \ + -l $top_srcdir/tests/leases/$IAM | + sed '/was last modified at/d; /Generated using/d' >> tests/outputs/$IAM + +echo '=== xml' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM -fx \ + -l $top_srcdir/tests/leases/$IAM >> tests/outputs/$IAM + +echo '=== csv' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM -fc \ + -l $top_srcdir/tests/leases/$IAM >> tests/outputs/$IAM + +echo '=== json' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM -fj --limit=33 \ + -l $top_srcdir/tests/leases/$IAM >> tests/outputs/$IAM + +echo '=== perfdata' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --perfdata --warning=20 --critical=40 \ + -l $top_srcdir/tests/leases/$IAM >> tests/outputs/$IAM + +diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM +exit $? diff --git a/tests/leases/binding-states b/tests/leases/binding-states new file mode 100644 index 0000000..0d9929f --- /dev/null +++ b/tests/leases/binding-states @@ -0,0 +1,241 @@ +lease 10.0.0.0 { + binding state active; + hardware ethernet 00:00:00:00:00:00; +} + +lease 10.0.0.1 { + binding state free; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.0.0.1 { + binding state active; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.0.0.1 { + binding state abandoned; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.0.0.1 { + binding state expired; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.0.0.1 { + binding state released; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.0.0.1 { + binding state backup; + hardware ethernet 00:00:00:00:00:01; +} + +lease 10.0.0.2 { + binding state free; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.0.0.2 { + binding state abandoned; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.0.0.2 { + binding state expired; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.0.0.2 { + binding state released; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.0.0.2 { + binding state backup; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.0.0.2 { + binding state active; + hardware ethernet 00:00:00:00:00:02; +} + +lease 10.0.0.3 { + binding state free; + hardware ethernet 00:00:00:00:00:03; +} +lease 10.0.0.4 { + binding state active; + hardware ethernet 00:00:00:00:00:04; +} +lease 10.0.0.5 { + binding state expired; + hardware ethernet 00:00:00:00:00:05; +} +lease 10.0.0.6 { + binding state released; + hardware ethernet 00:00:00:00:00:06; +} +lease 10.0.0.7 { + binding state backup; + hardware ethernet 00:00:00:00:00:07; +} +lease 10.0.0.8 { + binding state none-existing-state; + hardware ethernet 00:00:00:00:00:08; +} +lease 10.0.0.9 { + binding state active; + hardware ethernet 00:00:00:00:00:09; +} +lease 10.0.0.20 { + binding state active; + hardware ethernet 00:00:00:00:00:10; +} +lease 10.0.0.21 { + binding state active; + hardware ethernet 00:00:00:00:00:11; +} + + +lease 10.1.0.0 { + binding state active; + hardware ethernet 00:00:00:00:00:00; +} +lease 10.1.0.1 { + binding state active; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.1.0.2 { + binding state active; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.1.0.3 { + binding state active; + hardware ethernet 00:00:00:00:00:03; +} +lease 10.1.0.4 { + binding state active; + hardware ethernet 00:00:00:00:00:04; +} +lease 10.1.0.5 { + binding state active; + hardware ethernet 00:00:00:00:00:05; +} +lease 10.1.0.6 { + binding state active; + hardware ethernet 00:00:00:00:00:06; +} +lease 10.1.0.7 { + binding state active; + hardware ethernet 00:00:00:00:00:07; +} +lease 10.1.0.8 { + binding state active; + hardware ethernet 00:00:00:00:00:08; +} +lease 10.1.0.9 { + binding state active; + hardware ethernet 00:00:00:00:00:09; +} +lease 10.1.0.10 { + binding state active; + hardware ethernet 00:00:00:00:00:10; +} + + +lease 10.2.0.0 { + binding state active; + hardware ethernet 00:00:00:00:00:00; +} +lease 10.2.0.1 { + binding state active; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.2.0.2 { + binding state active; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.2.0.3 { + binding state active; + hardware ethernet 00:00:00:00:00:03; +} +lease 10.2.0.4 { + binding state active; + hardware ethernet 00:00:00:00:00:04; +} +lease 10.2.0.5 { + binding state active; + hardware ethernet 00:00:00:00:00:05; +} +lease 10.2.0.6 { + binding state active; + hardware ethernet 00:00:00:00:00:06; +} +lease 10.2.0.7 { + binding state active; + hardware ethernet 00:00:00:00:00:07; +} +lease 10.2.0.8 { + binding state active; + hardware ethernet 00:00:00:00:00:08; +} + +lease 10.3.0.0 { + binding state active; + hardware ethernet 00:00:00:00:00:00; +} +lease 10.3.0.1 { + binding state active; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.3.0.2 { + binding state active; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.3.0.3 { + binding state active; + hardware ethernet 00:00:00:00:00:03; +} +lease 10.3.0.4 { + binding state active; + hardware ethernet 00:00:00:00:00:04; +} +lease 10.3.0.5 { + binding state active; + hardware ethernet 00:00:00:00:00:05; +} +lease 10.3.0.6 { + binding state active; + hardware ethernet 00:00:00:00:00:06; +} +lease 10.3.0.7 { + binding state active; + hardware ethernet 00:00:00:00:00:07; +} +lease 10.3.0.8 { + binding state active; + hardware ethernet 00:00:00:00:00:08; +} +lease 10.3.0.9 { + binding state active; + hardware ethernet 00:00:00:00:00:09; +} + +lease 10.4.0.0 { + binding state active; + hardware ethernet 00:00:00:00:00:00; +} +lease 10.4.0.1 { + binding state active; + hardware ethernet 00:00:00:00:00:01; +} +lease 10.4.0.2 { + binding state active; + hardware ethernet 00:00:00:00:00:02; +} +lease 10.4.0.3 { + binding state active; + hardware ethernet 00:00:00:00:00:03; +} +lease 10.4.0.4 { + binding state active; + hardware ethernet 00:00:00:00:00:04; +} +lease 10.4.0.5 { + binding state active; + hardware ethernet 00:00:00:00:00:05; +} diff --git a/tests/leases/cidr-v4 b/tests/leases/cidr-v4 new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/leases/cidr-v4 @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/leases/cidr-v6 b/tests/leases/cidr-v6 new file mode 120000 index 0000000..82e3978 --- /dev/null +++ b/tests/leases/cidr-v6 @@ -0,0 +1 @@ +v6 \ No newline at end of file diff --git a/tests/leases/formats b/tests/leases/formats new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/leases/formats @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/leases/parser b/tests/leases/parser new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/leases/parser @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/leases/shufled b/tests/leases/shufled new file mode 100644 index 0000000..723c6ec --- /dev/null +++ b/tests/leases/shufled @@ -0,0 +1,198 @@ +lease 10.0.0.7 { +} + binding state active; + hardware ethernet 00:00:00:00:00:07; + hardware ethernet 00:00:00:00:00:10; +lease 10.2.0.4 { +lease 10.2.0.6 { +lease 10.0.0.11 { + binding state active; +} + hardware ethernet 00:00:00:00:00:03; +lease 10.3.0.9 { +} + hardware ethernet 00:00:00:00:00:04; +} + binding state active; +lease 10.1.0.7 { +} +} +lease 10.1.0.9 { + + hardware ethernet 00:00:00:00:00:07; + hardware ethernet 00:00:00:00:00:01; + binding state active; + binding state active; +} +} +} + binding state active; +lease 10.4.0.1 { +} +lease 10.0.0.0 { +} + hardware ethernet 00:00:00:00:00:10; +} +} + binding state active; + hardware ethernet 00:00:00:00:00:00; +} +} + binding state active; +} +lease 10.3.0.2 { + hardware ethernet 00:00:00:00:00:01; + binding state active; + hardware ethernet 00:00:00:00:00:02; + binding state active; +lease 10.1.0.3 { + binding state active; +} + binding state active; +} +lease 10.1.0.1 { +lease 10.3.0.8 { +lease 10.2.0.1 { + hardware ethernet 00:00:00:00:00:07; +} +} +lease 10.4.0.0 { + hardware ethernet 00:00:00:00:00:01; +} + binding state active; + hardware ethernet 00:00:00:00:00:02; +lease 10.0.0.10 { + binding state active; +} + hardware ethernet 00:00:00:00:00:04; + hardware ethernet 00:00:00:00:00:11; + hardware ethernet 00:00:00:00:00:08; + binding state active; + hardware ethernet 00:00:00:00:00:08; + binding state active; +lease 10.2.0.5 { + hardware ethernet 00:00:00:00:00:01; +lease 10.1.0.8 { + +lease 10.0.0.3 { + binding state active; + binding state active; +lease 10.0.0.1 { +lease 10.4.0.5 { + hardware ethernet 00:00:00:00:00:06; + + hardware ethernet 00:00:00:00:00:06; + hardware ethernet 00:00:00:00:00:02; +lease 10.2.0.3 { + binding state active; +lease 10.1.0.10 { + binding state active; +} +} + binding state active; + hardware ethernet 00:00:00:00:00:03; +} +} + hardware ethernet 00:00:00:00:00:05; +lease 10.0.0.2 { +} + binding state active; +} + hardware ethernet 00:00:00:00:00:06; +lease 10.3.0.6 { +lease 10.0.0.8 { + hardware ethernet 00:00:00:00:00:01; +lease 10.4.0.3 { +} +} +} + binding state active; + binding state active; +lease 10.1.0.6 { +lease 10.1.0.2 { + hardware ethernet 00:00:00:00:00:05; + binding state active; +} +} +lease 10.2.0.7 { +} +} + hardware ethernet 00:00:00:00:00:03; + binding state active; + +} + binding state active; + hardware ethernet 00:00:00:00:00:03; +} +lease 10.1.0.0 { + hardware ethernet 00:00:00:00:00:04; + binding state active; +} +lease 10.3.0.1 { +lease 10.2.0.2 { + binding state active; + hardware ethernet 00:00:00:00:00:09; +} + binding state active; + hardware ethernet 00:00:00:00:00:00; + binding state active; +lease 10.0.0.6 { + hardware ethernet 00:00:00:00:00:02; + binding state active; +} + binding state active; +} +lease 10.3.0.0 { +lease 10.0.0.9 { + binding state active; +lease 10.0.0.4 { + hardware ethernet 00:00:00:00:00:08; + binding state active; + hardware ethernet 00:00:00:00:00:07; + hardware ethernet 00:00:00:00:00:00; + binding state active; +lease 10.1.0.4 { +lease 10.4.0.2 { + binding state active; +} +} +lease 10.3.0.4 { + hardware ethernet 00:00:00:00:00:05; + hardware ethernet 00:00:00:00:00:05; + binding state active; + binding state active; +lease 10.0.0.5 { + hardware ethernet 00:00:00:00:00:04; + binding state active; + hardware ethernet 00:00:00:00:00:02; + binding state active; + hardware ethernet 00:00:00:00:00:09; + hardware ethernet 00:00:00:00:00:08; +lease 10.2.0.8 { +} + binding state active; + binding state active; + hardware ethernet 00:00:00:00:00:06; + hardware ethernet 00:00:00:00:00:00; +lease 10.3.0.7 { +lease 10.4.0.4 { +} + hardware ethernet 00:00:00:00:00:04; +} + binding state active; +lease 10.3.0.3 { + hardware ethernet 00:00:00:00:00:03; +lease 10.2.0.0 { + binding state active; + binding state active; + hardware ethernet 00:00:00:00:00:05; + + binding state active; +} + hardware ethernet 00:00:00:00:00:00; + binding state active; +lease 10.1.0.5 { + hardware ethernet 00:00:00:00:00:09; +lease 10.3.0.5 { +} + diff --git a/tests/leases/statuses b/tests/leases/statuses new file mode 120000 index 0000000..ceb7cbb --- /dev/null +++ b/tests/leases/statuses @@ -0,0 +1 @@ +complete \ No newline at end of file diff --git a/tests/parser b/tests/parser new file mode 100755 index 0000000..94b4e7d --- /dev/null +++ b/tests/parser @@ -0,0 +1,30 @@ +#!/bin/sh +# +# Minimal regression test suite. + +IAM=$(basename $0) + +if [ ! -d tests/outputs ]; then + mkdir tests/outputs +fi +cat <"./${IAM}-conf" +#shared-network "example3 " { +# subnet 10.0.6.0 netmask 255.255.255.0 { +# pool { +# range 10.0.6.1 10.0.6.20; +# } +# } +# subnet 10.1.7.0 netmask 255.255.255.0 { +# pool { +# range 10.1.7.1 10.1.7.20; +# } +# } +#} + +include "tests/confs/complete"; +EOF +dhcpd-pools -c "./${IAM}-conf" --color=never \ + -l $top_srcdir/tests/leases/$IAM -o tests/outputs/$IAM +diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM +rm -f "./${IAM}-conf" +exit $? diff --git a/tests/shufled b/tests/shufled new file mode 100755 index 0000000..4f38984 --- /dev/null +++ b/tests/shufled @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Minimal regression test suite. + +IAM=$(basename $0) + +if [ ! -d tests/outputs ]; then + mkdir tests/outputs +fi + +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --color=never \ + --sort nimcptTenimcptTe --sort nimcptTe \ + -l $top_srcdir/tests/leases/$IAM -o tests/outputs/$IAM +diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM +exit $? diff --git a/tests/sorts b/tests/sorts index 74185cb..bc6b9be 100755 --- a/tests/sorts +++ b/tests/sorts @@ -20,7 +20,7 @@ dhcpd-pools --config $top_srcdir/tests/confs/complete --leases $top_srcdir/tests echo $? >> tests/outputs/$IAM-too cat tests/outputs/$IAM-too >> tests/outputs/$IAM -echo '== maxium ==' >> tests/outputs/$IAM +echo '== maximum ==' >> tests/outputs/$IAM dhcpd-pools --config $top_srcdir/tests/confs/complete --leases $top_srcdir/tests/leases/complete \ --sort=m --output=tests/outputs/$IAM-too echo $? >> tests/outputs/$IAM-too diff --git a/tests/statuses b/tests/statuses new file mode 100755 index 0000000..e603b8a --- /dev/null +++ b/tests/statuses @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Test json status field values. + +IAM=$(basename $0) + +if [ ! -d tests/outputs ]; then + mkdir tests/outputs +fi + +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --format=json -L33 \ + -l $top_srcdir/tests/leases/$IAM -o tests/outputs/$IAM \ + --warning=20 --critical=41 --all-as-shared --snet-alarms --all-as-shared + +echo '== minsize' >> tests/outputs/$IAM +dhcpd-pools -c $top_srcdir/tests/confs/$IAM --format=json --limit 33 \ + -l $top_srcdir/tests/leases/$IAM --minsize=20 \ + --warning=20 --critical=41 --all-as-shared --snet-alarms --all-as-shared \ + >> tests/outputs/$IAM + +diff -u $top_srcdir/tests/expected/$IAM tests/outputs/$IAM +exit $? diff --git a/webpages/dhcpd-pools.awk b/webpages/dhcpd-pools.awk index 38d5f18..9c1f299 100644 --- a/webpages/dhcpd-pools.awk +++ b/webpages/dhcpd-pools.awk @@ -4,12 +4,11 @@ # analysis algorithm is sane. This script is no longer # maintained, and can be considered as historic reference. # -# Licensed under the Open Software License version 1.1 -# http://opensource.org/licenses/osl.php +# Licensed under the Open Software License version 1.0 +# https://opensource.org/license/osl-1-0/ # # Sami Kerola # -# Latest version is available from http://www.iki.fi/kerolasa/dhcp/ # This is version 1.4 BEGIN { diff --git a/webpages/index.html b/webpages/index.html index cd5bb7f..7d5b748 100644 --- a/webpages/index.html +++ b/webpages/index.html @@ -30,7 +30,7 @@ font-variant: normal; -
+

ISC dhcpd lease analysis and reporting

This is dhcpd-pools ISC dhcp @@ -46,11 +46,21 @@ there is lots of data. On cheap laptop the speed of analysis is more than any significant difference in getting analysis done.


-prompt> ./dhcpd-pools -c /etc/dhcpd.conf -l /var/lib/dhcp/dhcpd.leases -o -./sampleoutput.txt
-prompt> cat ./sampleoutput.txt +prompt> ./dhcpd-pools --config=/etc/dhcpd.conf +--leases=/var/lib/dhcp/dhcpd.leases --format=H +--color=always --warning=40 --critical=50 --output=sampleoutput.html

+

Is dhcpd-pools still developed?

+

In short no, it is not.

+

+ISC DHCPD has reached +EOL. Users are Kea DHCP server instead. Kea has native +statistics, so it does not require this tool and therefore the +dhcpd-pools is obsolte. +

Where I can get dhcpd-pools?

Download release package @@ -60,44 +70,62 @@ file.

git clone git://git.code.sf.net/p/dhcpd-pools/code dhcpd-pools

See also -SourceForge project page.

+SourceForge project page.

Documentation

The dhcpd-pools -manual page, and -Doxygen software +manual page, and +Doxygen software reference documentation are available online.

+

Getting the output you need

+
    +
  1. Start with:
    +dhcpd-pools --config=path +--leases=path --color=always --format=text
  2. +
  3. Play with options and see how output changes. Options to +try:
    +--all-as-shared --crit-count +--critical --minsize --snet-alarms --warn-count +--warning
  4. +
  5. Start filtering output. Options to try:
    +--skip --limit
  6. +
  7. Change --format +option to what you need, and maybe include +--perfdata if you want nagios alarm +format.
  8. +
  9. Done.
  10. +

Reference information

The program was written because -DHCPStatus, -DHCP Usage Statistics, -reportdhcp.pl, -lease_analyzer and -dhcpd-snmp +DHCPStatus, +DHCP Usage Statistics, +reportdhcp.pl, +lease_analyzer and +dhcpd-snmp where too slow to handle huge number of leases. There is also difference in printed details. The dhcpd-pools does not print quite as much information as some other tools.

Notice that this utility is not the same as -dhcpd-pool +dhcpd-pool that is maintained by Trond Hasle Amundsen.

Just for laugh, obsolete awk proof of concept (version 1.4) -dhcpd-pools.awk

+dhcpd-pools.awk

Where to send questions, bug reports, code contributions...

-

Sami Kerola +

Sami Kerola <kerolasa@iki.fi>

-Wed Nov 15 12:47:30 GMT 2017 +Sat Nov 26 09:58:28 GMT 2022 3.0 FreeBSD License - -
+ +
0
-
+
5 ( 2 ratings )
diff --git a/webpages/robots.txt b/webpages/robots.txt index 25e6762..c9eedb4 100644 --- a/webpages/robots.txt +++ b/webpages/robots.txt @@ -1,3 +1,3 @@ -Sitemap: http://dhcpd-pools.sourceforge.net/sitemap.txt +Sitemap: https://dhcpd-pools.sourceforge.net/sitemap.txt User-agent: * Disallow: diff --git a/webpages/sampleoutput.html b/webpages/sampleoutput.html new file mode 100644 index 0000000..d27d3b6 --- /dev/null +++ b/webpages/sampleoutput.html @@ -0,0 +1,169 @@ + + + +ISC dhcpd dhcpd-pools output + + + + + + + + +
+

ISC DHCPD status

+File tests/leases/formats was last modified at 2025-04-15T14:32:48+0100
+

Sum of all

+ + + + + + + + + + + + + + + + + + + + + + + + + +
namemaxcurfreepercenttoucht+ct+c perc
All networks100435743.00004343.000
+

Shared networks

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
namemaxcurfreepercenttoucht+ct+c perc
example140211952.502152.500
example240172342.501742.500
+

Ranges

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
shared net namefirst iplast ipmaxcurfreepercenttoucht+ct+c perc
example110.0.0.110.0.0.20201195501155.000
example110.1.0.110.1.0.202010105001050.000
example210.2.0.110.2.0.2020812400840.000
example210.3.0.110.3.0.2020911450945.000
All networks10.4.0.110.4.0.2020515250525.000
+
+Generated using dhcpd-pools 3.3
+More info at https://dhcpd-pools.sourceforge.net/ +
+ + + + + diff --git a/webpages/sampleoutput.txt b/webpages/sampleoutput.txt deleted file mode 100644 index 0271e76..0000000 --- a/webpages/sampleoutput.txt +++ /dev/null @@ -1,985 +0,0 @@ -Ranges: -shared net name first ip last ip max cur percent -Aatamila 12.34.567.127 - 12.34.567.254 128 11 8.594 -Aatamila 12.34.567.83 - 12.34.567.254 252 22 8.730 -Huohvanainen 12.34.567.3 - 12.34.567.254 252 39 15.476 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 41 16.142 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 40 15.748 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 38 14.961 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 37 14.567 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 55 21.654 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 36 14.173 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 50 19.685 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 35 13.780 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 53 20.866 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 56 22.047 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 44 17.323 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 43 16.929 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 29 11.417 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 45 17.717 -Huohvanainen 12.345.678.1 - 12.345.678.254 254 36 14.173 -Ilmovuori 12.345.678.3 - 12.345.678.254 252 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Honkanen 12.345.678.3 - 12.345.678.254 252 100 39.683 -Honkanen 12.345.678.1 - 12.345.678.254 254 92 36.220 -Huuskonen 12.345.678.3 - 12.345.678.254 252 146 57.937 -Huuskonen 12.345.678.1 - 12.345.678.254 254 139 54.724 -Huuskonen 12.345.678.1 - 12.345.678.254 254 137 53.937 -Huuskonen 12.345.678.1 - 12.345.678.254 254 147 57.874 -Huuskonen 12.345.678.1 - 12.345.678.254 254 132 51.969 -Huuskonen 12.345.678.1 - 12.345.678.254 254 132 51.969 -Huuskonen 12.345.678.1 - 12.345.678.254 254 149 58.661 -Huuskonen 12.345.678.1 - 12.345.678.254 254 140 55.118 -Huuskonen 12.345.678.1 - 12.345.678.254 254 140 55.118 -Huuskonen 12.345.678.1 - 12.345.678.254 254 139 54.724 -Huuskonen 12.345.678.1 - 12.345.678.254 254 135 53.150 -Huuskonen 12.345.678.1 - 12.345.678.1 1 0 0.000 -Huuskonen 12.345.678.1 - 12.345.678.254 254 152 59.843 -Huuskonen 12.345.678.1 - 12.345.678.254 254 132 51.969 -Huuskonen 12.345.678.1 - 12.345.678.254 254 131 51.575 -Huuskonen 12.345.678.1 - 12.345.678.254 254 147 57.874 -Halonen 12.345.678.3 - 12.345.678.254 252 114 45.238 -Halonen 12.345.678.1 - 12.345.678.254 254 107 42.126 -Halonen 12.345.678.1 - 12.345.678.254 254 106 41.732 -Halonen 12.345.678.1 - 12.345.678.254 254 121 47.638 -Halonen 12.345.678.1 - 12.345.678.254 254 119 46.850 -Halonen 12.345.678.1 - 12.345.678.254 254 102 40.157 -Halonen 12.345.678.1 - 12.345.678.254 254 111 43.701 -Halonen 12.345.678.1 - 12.345.678.254 254 122 48.031 -Halonen 12.345.678.1 - 12.345.678.254 254 119 46.850 -Halonen 12.345.678.1 - 12.345.678.254 254 109 42.913 -Halonen 12.345.678.1 - 12.345.678.254 254 106 41.732 -Halonen 12.345.678.1 - 12.345.678.254 254 120 47.244 -Halonen 12.345.678.1 - 12.345.678.254 254 117 46.063 -Halonen 12.345.678.1 - 12.345.678.254 254 111 43.701 -Halonen 12.345.678.1 - 12.345.678.254 254 117 46.063 -Halonen 12.345.678.1 - 12.345.678.254 254 120 47.244 -Halonen 12.345.678.1 - 12.345.678.254 254 102 40.157 -Halonen 12.345.678.1 - 12.345.678.254 254 130 51.181 -Halonen 12.345.678.1 - 12.345.678.254 254 117 46.063 -Halonen 12.345.678.1 - 12.345.678.254 254 120 47.244 -Halonen 12.345.678.1 - 12.345.678.254 254 111 43.701 -Halonen 12.345.678.1 - 12.345.678.254 254 118 46.457 -Halonen 12.345.678.1 - 12.345.678.254 254 114 44.882 -Halonen 12.345.678.1 - 12.345.678.254 254 112 44.094 -Halonen 12.345.678.1 - 12.345.678.254 254 120 47.244 -Halonen 12.345.678.1 - 12.345.678.254 254 118 46.457 -Halonen 12.345.678.1 - 12.345.678.254 254 105 41.339 -Halonen 12.345.678.1 - 12.345.678.254 254 110 43.307 -Halonen 12.345.678.1 - 12.345.678.254 254 117 46.063 -Halonen 12.345.678.1 - 12.345.678.254 254 103 40.551 -Halonen 12.345.678.1 - 12.345.678.254 254 107 42.126 -Halonen 12.345.678.1 - 12.345.678.254 254 109 42.913 -Hattunen 12.345.6.3 - 12.345.6.254 252 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Hattunen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Harkovski 12.345.6.3 - 12.345.6.254 252 197 78.175 -Harkovski 12.345.6.1 - 12.345.6.254 254 190 74.803 -Harkovski 12.345.67.1 - 12.345.67.254 254 193 75.984 -Harkovski 12.345.67.1 - 12.345.67.254 254 199 78.346 -Harkovski 12.345.67.3 - 12.345.67.254 252 196 77.778 -Harkovski 12.345.67.1 - 12.345.67.254 254 208 81.890 -Harkovski 12.345.67.1 - 12.345.67.254 254 195 76.772 -Harkovski 12.345.67.1 - 12.345.67.254 254 195 76.772 -Happo 12.345.67.3 - 12.345.67.254 252 169 67.063 -Happo 12.345.67.1 - 12.345.67.254 254 171 67.323 -Happo 12.345.67.1 - 12.345.67.254 254 158 62.205 -Happo 12.345.67.1 - 12.345.67.254 254 165 64.961 -Happonen 12.345.67.3 - 12.345.67.254 252 184 73.016 -Happonen 12.345.67.1 - 12.345.67.254 254 181 71.260 -Happonen 12.345.67.1 - 12.345.67.254 254 186 73.228 -Happonen 12.345.67.1 - 12.345.67.254 254 175 68.898 -Harakka 12.345.67.3 - 12.345.67.254 252 201 79.762 -Harakka 12.345.67.1 - 12.345.67.254 254 206 81.102 -Harakka 12.345.67.1 - 12.345.67.254 254 200 78.740 -Harakka 12.345.67.1 - 12.345.67.254 254 196 77.165 -Harjunen 12.345.67.3 - 12.345.67.254 252 208 82.540 -Harjunen 12.345.67.1 - 12.345.67.254 254 204 80.315 -Harjunen 12.345.67.1 - 12.345.67.254 254 207 81.496 -Harjunen 12.345.67.1 - 12.345.67.254 254 199 78.346 -Haukka 12.345.67.3 - 12.345.67.254 252 86 34.127 -Haukka 12.345.67.1 - 12.345.67.254 254 93 36.614 -Haukka 12.345.67.1 - 12.345.67.254 254 82 32.283 -Haukka 12.345.67.1 - 12.345.67.254 254 84 33.071 -Hautanen 12.345.67.3 - 12.345.67.254 252 109 43.254 -Hautanen 12.345.67.1 - 12.345.67.254 254 106 41.732 -Hautanen 12.345.67.1 - 12.345.67.254 254 89 35.039 -Hautanen 12.345.67.1 - 12.345.67.254 254 104 40.945 -Havu 12.345.67.3 - 12.345.67.254 252 109 43.254 -Havu 12.345.67.1 - 12.345.67.254 254 101 39.764 -Havu 12.345.67.1 - 12.345.67.254 254 96 37.795 -Havu 12.345.67.1 - 12.345.67.254 254 98 38.583 -Heiskanen 12.345.67.3 - 12.345.67.254 252 113 44.841 -Heiskanen 12.345.67.1 - 12.345.67.254 254 113 44.488 -Heiskanen 12.345.67.1 - 12.345.67.254 254 109 42.913 -Heiskanen 12.345.67.1 - 12.345.67.254 254 117 46.063 -Hietanen 12.345.67.3 - 12.345.67.254 252 96 38.095 -Hietanen 12.345.67.1 - 12.345.67.254 254 90 35.433 -Hietanen 12.345.67.1 - 12.345.67.254 254 101 39.764 -Hietanen 12.345.67.1 - 12.345.67.254 254 108 42.520 -Hiiliaho 12.345.67.3 - 12.345.67.254 252 100 39.683 -Hiiliaho 12.345.67.1 - 12.345.67.254 254 105 41.339 -Hiiliaho 12.345.67.1 - 12.345.67.254 254 98 38.583 -Hiiliaho 12.345.67.1 - 12.345.67.254 254 105 41.339 -Hilonen 12.345.67.3 - 12.345.67.254 252 80 31.746 -Hilonen 12.345.67.1 - 12.345.67.254 254 91 35.827 -Hilonen 12.345.67.1 - 12.345.67.254 254 76 29.921 -Hilonen 12.345.67.1 - 12.345.67.254 254 76 29.921 -Hirvonen 12.345.67.3 - 12.345.67.254 252 173 68.651 -Hirvonen 12.345.67.1 - 12.345.67.254 254 180 70.866 -Hirvonen 12.345.67.1 - 12.345.67.254 254 178 70.079 -Hirvonen 12.345.67.1 - 12.345.67.254 254 183 72.047 -Haavikko 12.345.678.3 - 12.345.678.254 252 99 39.286 -Haavikko 12.345.678.1 - 12.345.678.254 254 84 33.071 -Anttila 12.345.678.3 - 12.345.678.253 251 0 0.000 -Anttila 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hult 12.345.678.3 - 12.345.678.254 252 80 31.746 -Hult 12.345.678.1 - 12.345.678.254 254 106 41.732 -Hult 12.345.678.1 - 12.345.678.254 254 83 32.677 -Hult 12.345.678.1 - 12.345.678.1 1 1 100.000 -Jaskanen 12.345.678.3 - 12.345.678.254 252 150 59.524 -Jaskanen 12.345.678.1 - 12.345.678.254 254 144 56.693 -Jaskanen 12.345.678.1 - 12.345.678.254 254 169 66.535 -Jaskanen 12.345.678.1 - 12.345.678.254 254 161 63.386 -Jaskanen 12.345.678.1 - 12.345.678.254 254 166 65.354 -Jaskanen 12.345.678.1 - 12.345.678.254 254 168 66.142 -Jaskanen 12.345.678.1 - 12.345.678.254 254 172 67.717 -Jaskanen 12.345.678.1 - 12.345.678.254 254 164 64.567 -Itkonen 12.345.678.3 - 12.345.678.254 252 130 51.587 -Jaskanen 12.345.678.3 - 12.345.678.254 252 173 68.651 -Jaskanen 12.345.678.1 - 12.345.678.254 254 190 74.803 -Jaskanen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Jaskanen 12.345.678.1 - 12.345.678.254 254 190 74.803 -Jaskanen 12.345.678.1 - 12.345.678.254 254 177 69.685 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Jaskanen 12.345.678.1 - 12.345.678.254 254 189 74.409 -Jaskanen 12.345.678.1 - 12.345.678.254 254 169 66.535 -Jaskanen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Jaskanen 12.345.678.1 - 12.345.678.254 254 187 73.622 -Jaskanen 12.345.678.1 - 12.345.678.254 254 172 67.717 -Jaskanen 12.345.678.1 - 12.345.678.254 254 166 65.354 -Jaskanen 12.345.678.1 - 12.345.678.254 254 171 67.323 -Jaskanen 12.345.678.1 - 12.345.678.254 254 181 71.260 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Jaskanen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Itkonen-temp 12.345.678.3 - 12.345.678.254 252 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.1 1 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.1 1 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Itkonen-temp 12.345.678.1 - 12.345.678.254 254 0 0.000 -Arviluoma 12.345.678.3 - 12.345.678.254 252 3 1.190 -Atjonen 12.345.678.3 - 12.345.678.254 252 1 0.397 -Ahtonen 12.345.678.3 - 12.345.678.254 252 70 27.778 -Ahtonen 12.345.678.1 - 12.345.678.254 254 57 22.441 -Ahtonen 12.345.678.1 - 12.345.678.254 254 74 29.134 -Ahtonen 12.345.678.1 - 12.345.678.254 254 65 25.591 -Itkonen 12.345.678.3 - 12.345.678.254 252 189 75.000 -Itkonen 12.345.678.1 - 12.345.678.254 254 152 59.843 -Itkonen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Itkonen 12.345.678.1 - 12.345.678.254 254 165 64.961 -Itkonen 12.345.678.1 - 12.345.678.254 254 166 65.354 -Itkonen 12.345.678.1 - 12.345.678.254 254 165 64.961 -Itkonen 12.345.678.1 - 12.345.678.254 254 167 65.748 -Itkonen 12.345.678.1 - 12.345.678.254 254 178 70.079 -Jaskanen 12.345.678.3 - 12.345.678.254 252 185 73.413 -Jaskanen 12.345.678.1 - 12.345.678.254 254 191 75.197 -Jaskanen 12.345.678.1 - 12.345.678.254 254 179 70.472 -Jaskanen 12.345.678.1 - 12.345.678.254 254 180 70.866 -Jaskanen 12.345.678.1 - 12.345.678.254 254 176 69.291 -Jaskanen 12.345.678.1 - 12.345.678.254 254 188 74.016 -Jaskanen 12.345.678.1 - 12.345.678.254 254 177 69.685 -Jaskanen 12.345.678.1 - 12.345.678.1 1 0 0.000 -Hoivassilta 12.345.678.2 - 12.345.678.254 253 0 0.000 -Hoivassilta 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ikonen 12.345.6.3 - 12.345.6.254 252 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Ikonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Ikonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Ikonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Ikonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Ikonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Ikonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Auvinen 12.345.67.3 - 12.345.67.254 252 102 40.476 -Auvinen 12.345.67.1 - 12.345.67.254 254 103 40.551 -Auvinen 12.345.67.1 - 12.345.67.254 254 97 38.189 -Auvinen 12.345.67.1 - 12.345.67.254 254 108 42.520 -Auvinen 12.345.67.1 - 12.345.67.254 254 95 37.402 -Auvinen 12.345.67.1 - 12.345.67.254 254 101 39.764 -Auvinen 12.345.67.1 - 12.345.67.254 254 103 40.551 -Auvinen 12.345.67.1 - 12.345.67.254 254 97 38.189 -Auvinen 12.345.67.1 - 12.345.67.254 254 100 39.370 -Auvinen 12.345.67.1 - 12.345.67.254 254 102 40.157 -Auvinen 12.345.67.1 - 12.345.67.254 254 110 43.307 -Auvinen 12.345.67.1 - 12.345.67.254 254 116 45.669 -Auvinen 12.345.67.1 - 12.345.67.254 254 102 40.157 -Auvinen 12.345.67.1 - 12.345.67.254 254 99 38.976 -Auvinen 12.345.67.1 - 12.345.67.254 254 94 37.008 -Auvinen 12.345.67.1 - 12.345.67.254 254 94 37.008 -Harakka 12.345.67.3 - 12.345.67.254 252 128 50.794 -Harakka 12.345.67.1 - 12.345.67.254 254 127 50.000 -Harakka 12.345.67.1 - 12.345.67.254 254 121 47.638 -Harakka 12.345.67.1 - 12.345.67.254 254 109 42.913 -Harakka 12.345.67.1 - 12.345.67.254 254 121 47.638 -Harakka 12.345.67.1 - 12.345.67.254 254 135 53.150 -Harakka 12.345.67.1 - 12.345.67.254 254 121 47.638 -Harakka 12.345.67.1 - 12.345.67.254 254 124 48.819 -Harakka 12.345.67.1 - 12.345.67.254 254 121 47.638 -Harakka 12.345.67.1 - 12.345.67.254 254 105 41.339 -Harakka 12.345.67.1 - 12.345.67.254 254 126 49.606 -Harakka 12.345.67.1 - 12.345.67.254 254 129 50.787 -Harakka 12.345.67.1 - 12.345.67.254 254 119 46.850 -Harakka 12.345.67.1 - 12.345.67.254 254 112 44.094 -Harakka 12.345.67.1 - 12.345.67.254 254 123 48.425 -Harakka 12.345.67.1 - 12.345.67.254 254 113 44.488 -Eronen 12.345.67.3 - 12.345.67.254 252 81 32.143 -Eronen 12.345.67.1 - 12.345.67.254 254 98 38.583 -Eronen 12.345.67.1 - 12.345.67.254 254 83 32.677 -Eronen 12.345.67.1 - 12.345.67.254 254 84 33.071 -Eronen 12.345.67.1 - 12.345.67.254 254 85 33.465 -Eronen 12.345.67.1 - 12.345.67.254 254 92 36.220 -Eronen 12.345.67.1 - 12.345.67.254 254 87 34.252 -Eronen 12.345.67.1 - 12.345.67.254 254 79 31.102 -Eronen 12.345.67.1 - 12.345.67.254 254 93 36.614 -Eronen 12.345.67.1 - 12.345.67.254 254 92 36.220 -Eronen 12.345.67.1 - 12.345.67.254 254 85 33.465 -Eronen 12.345.67.1 - 12.345.67.254 254 96 37.795 -Eronen 12.345.67.1 - 12.345.67.254 254 87 34.252 -Eronen 12.345.67.1 - 12.345.67.254 254 101 39.764 -Eronen 12.345.67.1 - 12.345.67.254 254 97 38.189 -Eronen 12.345.67.1 - 12.345.67.254 254 81 31.890 -Haavikko 12.345.67.3 - 12.345.67.254 252 89 35.317 -Haavikko 12.345.67.1 - 12.345.67.254 254 91 35.827 -Haavikko 12.345.67.1 - 12.345.67.254 254 91 35.827 -Haavikko 12.345.67.1 - 12.345.67.254 254 109 42.913 -Haavikko 12.345.67.1 - 12.345.67.254 254 89 35.039 -Haavikko 12.345.67.1 - 12.345.67.254 254 100 39.370 -Haavikko 12.345.67.1 - 12.345.67.254 254 87 34.252 -Haavikko 12.345.67.1 - 12.345.67.254 254 98 38.583 -Haavikko 12.345.67.1 - 12.345.67.254 254 87 34.252 -Haavikko 12.345.67.1 - 12.345.67.254 254 90 35.433 -Haavikko 12.345.67.1 - 12.345.67.254 254 95 37.402 -Haavikko 12.345.67.1 - 12.345.67.254 254 86 33.858 -Haavikko 12.345.67.1 - 12.345.67.254 254 83 32.677 -Haavikko 12.345.67.1 - 12.345.67.254 254 102 40.157 -Haavikko 12.345.67.1 - 12.345.67.254 254 104 40.945 -Haavikko 12.345.67.1 - 12.345.67.1 1 1 100.000 -Hakkarainen 12.345.67.3 - 12.345.67.254 252 25 9.921 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 37 14.567 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 37 14.567 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 36 14.173 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 33 12.992 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 38 14.961 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 33 12.992 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 38 14.961 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 29 11.417 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 28 11.024 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 31 12.205 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 37 14.567 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 30 11.811 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 29 11.417 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Hakkarainen 12.345.67.1 - 12.345.67.254 254 44 17.323 -Halonen 12.345.67.3 - 12.345.67.254 252 110 43.651 -Halonen 12.345.67.1 - 12.345.67.254 254 122 48.031 -Halonen 12.345.67.1 - 12.345.67.254 254 113 44.488 -Halonen 12.345.67.1 - 12.345.67.254 254 95 37.402 -Halonen 12.345.678.1 - 12.345.678.254 254 107 42.126 -Halonen 12.345.678.1 - 12.345.678.254 254 117 46.063 -Halonen 12.345.678.1 - 12.345.678.254 254 124 48.819 -Halonen 12.345.678.1 - 12.345.678.254 254 126 49.606 -Halonen 12.345.678.1 - 12.345.678.254 254 114 44.882 -Halonen 12.345.678.1 - 12.345.678.254 254 112 44.094 -Halonen 12.345.678.1 - 12.345.678.254 254 120 47.244 -Halonen 12.345.678.1 - 12.345.678.254 254 109 42.913 -Halonen 12.345.678.1 - 12.345.678.254 254 111 43.701 -Halonen 12.345.678.1 - 12.345.678.254 254 115 45.276 -Halonen 12.345.678.1 - 12.345.678.254 254 119 46.850 -Halonen 12.345.678.1 - 12.345.678.254 254 101 39.764 -Halttunen 12.345.678.3 - 12.345.678.254 252 214 84.921 -Halttunen 12.345.678.1 - 12.345.678.254 254 213 83.858 -Halttunen 12.345.678.1 - 12.345.678.254 254 211 83.071 -Halttunen 12.345.678.1 - 12.345.678.254 254 224 88.189 -Halttunen 12.345.678.1 - 12.345.678.254 254 209 82.283 -Halttunen 12.345.678.1 - 12.345.678.254 254 212 83.465 -Halttunen 12.345.678.1 - 12.345.678.254 254 204 80.315 -Halttunen 12.345.678.1 - 12.345.678.254 254 215 84.646 -Husso 12.345.678.3 - 12.345.678.254 252 177 70.238 -Husso 12.345.678.1 - 12.345.678.254 254 173 68.110 -Husso 12.345.678.1 - 12.345.678.254 254 169 66.535 -Husso 12.345.678.1 - 12.345.678.254 254 170 66.929 -Husso 12.345.678.1 - 12.345.678.254 254 173 68.110 -Husso 12.345.678.1 - 12.345.678.254 254 162 63.780 -Husso 12.345.678.1 - 12.345.678.254 254 169 66.535 -Husso 12.345.678.1 - 12.345.678.254 254 185 72.835 -Ilmovuori 12.345.678.3 - 12.345.678.254 252 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.1 1 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Ilmovuori 12.345.678.1 - 12.345.678.254 254 0 0.000 -Jaskanen 12.345.678.3 - 12.345.678.254 252 180 71.429 -Jaskanen 12.345.678.1 - 12.345.678.254 254 177 69.685 -Jaskanen 12.345.678.1 - 12.345.678.254 254 176 69.291 -Jaskanen 12.345.678.1 - 12.345.678.254 254 172 67.717 -Jaskanen 12.345.678.1 - 12.345.678.254 254 195 76.772 -Jaskanen 12.345.678.1 - 12.345.678.254 254 172 67.717 -Jaskanen 12.345.678.1 - 12.345.678.254 254 184 72.441 -Jaskanen 12.345.678.1 - 12.345.678.254 254 175 68.898 -Jaskanen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Jaskanen 12.345.678.1 - 12.345.678.254 254 187 73.622 -Jaskanen 12.345.678.1 - 12.345.678.254 254 172 67.717 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Jaskanen 12.345.678.1 - 12.345.678.254 254 187 73.622 -Jaskanen 12.345.678.1 - 12.345.678.254 254 181 71.260 -Jaskanen 12.345.678.1 - 12.345.678.254 254 176 69.291 -Jaskanen 12.345.678.1 - 12.345.678.254 254 171 67.323 -Honkanen 12.345.678.3 - 12.345.678.254 252 105 41.667 -Honkanen 12.345.678.1 - 12.345.678.254 254 106 41.732 -Honkanen 12.345.678.1 - 12.345.678.254 254 117 46.063 -Honkanen 12.345.678.1 - 12.345.678.254 254 98 38.583 -Honkanen 12.345.678.1 - 12.345.678.254 254 103 40.551 -Honkanen 12.345.678.1 - 12.345.678.254 254 98 38.583 -Honkanen 12.345.678.1 - 12.345.678.254 254 106 41.732 -Honkanen 12.345.678.1 - 12.345.678.254 254 118 46.457 -Honkanen 12.345.678.1 - 12.345.678.254 254 109 42.913 -Honkanen 12.345.678.1 - 12.345.678.254 254 101 39.764 -Honkanen 12.345.678.1 - 12.345.678.254 254 107 42.126 -Honkanen 12.345.678.1 - 12.345.678.254 254 98 38.583 -Honkanen 12.345.678.1 - 12.345.678.254 254 105 41.339 -Honkanen 12.345.678.1 - 12.345.678.254 254 115 45.276 -Honkanen 12.345.678.1 - 12.345.678.254 254 113 44.488 -Honkanen 12.345.678.1 - 12.345.678.254 254 110 43.307 -Honkipuro 12.345.67.3 - 12.345.67.254 252 98 38.889 -Honkipuro 12.345.67.1 - 12.345.67.254 254 99 38.976 -Honkipuro 12.345.67.1 - 12.345.67.254 254 89 35.039 -Honkipuro 12.345.67.1 - 12.345.67.254 254 100 39.370 -Honkipuro 12.345.67.1 - 12.345.67.254 254 101 39.764 -Honkipuro 12.345.67.1 - 12.345.67.254 254 117 46.063 -Honkipuro 12.345.67.1 - 12.345.67.254 254 97 38.189 -Honkipuro 12.345.67.1 - 12.345.67.254 254 92 36.220 -Honkipuro 12.345.67.1 - 12.345.67.254 254 104 40.945 -Honkipuro 12.345.67.1 - 12.345.67.254 254 91 35.827 -Honkipuro 12.345.67.1 - 12.345.67.254 254 94 37.008 -Honkipuro 12.345.67.1 - 12.345.67.254 254 98 38.583 -Honkipuro 12.345.67.1 - 12.345.67.254 254 100 39.370 -Honkipuro 12.345.67.1 - 12.345.67.254 254 110 43.307 -Honkipuro 12.345.67.1 - 12.345.67.254 254 96 37.795 -Honkipuro 12.345.67.1 - 12.345.67.254 254 103 40.551 -Ilarionova 12.345.67.3 - 12.345.67.254 252 118 46.825 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 1 100.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 1 100.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 1 100.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 1 100.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 1 100.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 0 0.000 -Ilarionova 12.345.67.1 - 12.345.67.1 1 1 100.000 -Ilarionova 12.345.67.1 - 12.345.67.254 254 131 51.575 -Huhtala 12.345.67.3 - 12.345.67.254 252 105 41.667 -Huhtala 12.345.67.1 - 12.345.67.254 254 104 40.945 -Huhtala 12.345.67.1 - 12.345.67.254 254 104 40.945 -Huhtala 12.345.67.1 - 12.345.67.254 254 95 37.402 -Huhtala 12.345.67.1 - 12.345.67.254 254 97 38.189 -Huhtala 12.345.67.1 - 12.345.67.254 254 106 41.732 -Huhtala 12.345.67.1 - 12.345.67.254 254 110 43.307 -Huhtala 12.345.67.1 - 12.345.67.254 254 105 41.339 -Huhtala 12.345.67.1 - 12.345.67.254 254 88 34.646 -Huhtala 12.345.67.1 - 12.345.67.254 254 106 41.732 -Huhtala 12.345.67.1 - 12.345.67.254 254 93 36.614 -Huhtala 12.345.67.1 - 12.345.67.254 254 103 40.551 -Huhtala 12.345.67.1 - 12.345.67.254 254 103 40.551 -Huhtala 12.345.67.1 - 12.345.67.254 254 96 37.795 -Huhtala 12.345.67.1 - 12.345.67.254 254 103 40.551 -Huhtala 12.345.67.1 - 12.345.67.254 254 98 38.583 -Hult 12.345.67.3 - 12.345.67.254 252 86 34.127 -Hult 12.345.67.1 - 12.345.67.254 254 86 33.858 -Hult 12.345.67.1 - 12.345.67.254 254 80 31.496 -Hult 12.345.67.1 - 12.345.67.254 254 87 34.252 -Hult 12.345.678.1 - 12.345.678.254 254 89 35.039 -Hult 12.345.678.1 - 12.345.678.254 254 82 32.283 -Hult 12.345.678.1 - 12.345.678.254 254 94 37.008 -Hult 12.345.678.1 - 12.345.678.254 254 85 33.465 -Hult 12.345.678.1 - 12.345.678.254 254 93 36.614 -Hult 12.345.678.1 - 12.345.678.254 254 83 32.677 -Hult 12.345.678.1 - 12.345.678.254 254 89 35.039 -Hult 12.345.678.1 - 12.345.678.254 254 84 33.071 -Hult 12.345.678.1 - 12.345.678.254 254 89 35.039 -Hult 12.345.678.1 - 12.345.678.254 254 92 36.220 -Hult 12.345.678.1 - 12.345.678.254 254 83 32.677 -Hult 12.345.678.1 - 12.345.678.254 254 85 33.465 -Huusko 12.345.678.3 - 12.345.678.254 252 80 31.746 -Huusko 12.345.678.1 - 12.345.678.254 254 112 44.094 -Huusko 12.345.678.1 - 12.345.678.254 254 91 35.827 -Huusko 12.345.678.1 - 12.345.678.254 254 115 45.276 -Huusko 12.345.678.1 - 12.345.678.254 254 93 36.614 -Huusko 12.345.678.1 - 12.345.678.254 254 94 37.008 -Huusko 12.345.678.1 - 12.345.678.254 254 91 35.827 -Huusko 12.345.678.1 - 12.345.678.254 254 82 32.283 -Huusko 12.345.678.1 - 12.345.678.254 254 94 37.008 -Huusko 12.345.678.1 - 12.345.678.254 254 101 39.764 -Huusko 12.345.678.1 - 12.345.678.254 254 110 43.307 -Huusko 12.345.678.1 - 12.345.678.254 254 97 38.189 -Huusko 12.345.678.1 - 12.345.678.254 254 101 39.764 -Huusko 12.345.678.1 - 12.345.678.254 254 83 32.677 -Huusko 12.345.678.1 - 12.345.678.254 254 94 37.008 -Huusko 12.345.678.1 - 12.345.678.254 254 94 37.008 -Eronen 12.345.678.3 - 12.345.678.254 252 74 29.365 -Eronen 12.345.678.1 - 12.345.678.254 254 70 27.559 -Auvinen 12.345.678.3 - 12.345.678.254 252 102 40.476 -Auvinen 12.345.678.1 - 12.345.678.254 254 87 34.252 -Honkipuro 12.345.678.3 - 12.345.678.254 252 87 34.524 -Honkipuro 12.345.678.1 - 12.345.678.254 254 89 35.039 -Jaskanen 12.345.678.3 - 12.345.678.254 252 164 65.079 -Jaskanen 12.345.678.1 - 12.345.678.254 254 190 74.803 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Jaskanen 12.345.678.1 - 12.345.678.254 254 177 69.685 -Jaskanen 12.345.678.1 - 12.345.678.254 254 180 70.866 -Jaskanen 12.345.678.1 - 12.345.678.254 254 187 73.622 -Jaskanen 12.345.678.1 - 12.345.678.254 254 183 72.047 -Jaskanen 12.345.678.1 - 12.345.678.254 254 179 70.472 -Jaskanen 12.345.678.1 - 12.345.678.254 254 173 68.110 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Jaskanen 12.345.678.1 - 12.345.678.254 254 186 73.228 -Jaskanen 12.345.678.1 - 12.345.678.254 254 178 70.079 -Jaskanen 12.345.678.1 - 12.345.678.254 254 173 68.110 -Jaskanen 12.345.678.1 - 12.345.678.254 254 164 64.567 -Jaskanen 12.345.678.1 - 12.345.678.254 254 181 71.260 -Jaskanen 12.345.678.1 - 12.345.678.254 254 168 66.142 -Halttunen 12.345.6.3 - 12.345.6.254 252 139 55.159 -Halttunen 12.345.6.1 - 12.345.6.254 254 145 57.087 -Halttunen 12.345.6.1 - 12.345.6.254 254 138 54.331 -Halttunen 12.345.6.1 - 12.345.6.254 254 149 58.661 -Halttunen 12.345.6.1 - 12.345.6.254 254 142 55.906 -Halttunen 12.345.6.1 - 12.345.6.254 254 128 50.394 -Halttunen 12.345.6.1 - 12.345.6.254 254 155 61.024 -Halttunen 12.345.6.1 - 12.345.6.254 254 139 54.724 -Halttunen 12.345.6.1 - 12.345.6.254 254 137 53.937 -Halttunen 12.345.6.1 - 12.345.6.254 254 136 53.543 -Halttunen 12.345.67.1 - 12.345.67.254 254 136 53.543 -Halttunen 12.345.67.1 - 12.345.67.254 254 148 58.268 -Halttunen 12.345.67.1 - 12.345.67.254 254 146 57.480 -Halttunen 12.345.67.1 - 12.345.67.254 254 136 53.543 -Halttunen 12.345.67.1 - 12.345.67.254 254 135 53.150 -Halttunen 12.345.67.1 - 12.345.67.254 254 144 56.693 -Halttunen 12.345.67.1 - 12.345.67.254 254 146 57.480 -Halttunen 12.345.67.1 - 12.345.67.254 254 145 57.087 -Halttunen 12.345.67.1 - 12.345.67.254 254 132 51.969 -Halttunen 12.345.67.1 - 12.345.67.254 254 154 60.630 -Halttunen 12.345.67.1 - 12.345.67.254 254 144 56.693 -Halttunen 12.345.67.1 - 12.345.67.254 254 163 64.173 -Halttunen 12.345.67.1 - 12.345.67.254 254 139 54.724 -Halttunen 12.345.67.1 - 12.345.67.254 254 143 56.299 -Halttunen 12.345.67.1 - 12.345.67.254 254 141 55.512 -Halttunen 12.345.67.1 - 12.345.67.254 254 145 57.087 -Halttunen 12.345.67.1 - 12.345.67.254 254 141 55.512 -Halttunen 12.345.67.1 - 12.345.67.254 254 148 58.268 -Halttunen 12.345.67.1 - 12.345.67.254 254 146 57.480 -Halttunen 12.345.67.1 - 12.345.67.254 254 140 55.118 -Halttunen 12.345.67.1 - 12.345.67.254 254 145 57.087 -Halttunen 12.345.67.1 - 12.345.67.254 254 124 48.819 -Husso 12.345.67.3 - 12.345.67.254 252 102 40.476 -Husso 12.345.67.1 - 12.345.67.254 254 97 38.189 -Husso 12.345.67.1 - 12.345.67.254 254 115 45.276 -Husso 12.345.67.1 - 12.345.67.254 254 101 39.764 -Husso 12.345.67.1 - 12.345.67.254 254 102 40.157 -Husso 12.345.67.1 - 12.345.67.254 254 103 40.551 -Husso 12.345.67.1 - 12.345.67.254 254 102 40.157 -Husso 12.345.67.1 - 12.345.67.254 254 106 41.732 -Husso 12.345.67.1 - 12.345.67.254 254 100 39.370 -Husso 12.345.67.1 - 12.345.67.254 254 106 41.732 -Husso 12.345.67.1 - 12.345.67.254 254 100 39.370 -Husso 12.345.67.1 - 12.345.67.254 254 98 38.583 -Husso 12.345.67.1 - 12.345.67.254 254 100 39.370 -Husso 12.345.67.1 - 12.345.67.254 254 109 42.913 -Husso 12.345.67.1 - 12.345.67.254 254 117 46.063 -Husso 12.345.67.1 - 12.345.67.254 254 101 39.764 -Husso 12.345.67.1 - 12.345.67.254 254 109 42.913 -Husso 12.345.67.1 - 12.345.67.254 254 102 40.157 -Husso 12.345.67.1 - 12.345.67.254 254 94 37.008 -Husso 12.345.67.1 - 12.345.67.254 254 101 39.764 -Husso 12.345.67.1 - 12.345.67.254 254 102 40.157 -Husso 12.345.67.1 - 12.345.67.254 254 99 38.976 -Husso 12.345.67.1 - 12.345.67.254 254 102 40.157 -Husso 12.345.67.1 - 12.345.67.254 254 103 40.551 -Husso 12.345.67.1 - 12.345.67.254 254 106 41.732 -Husso 12.345.67.1 - 12.345.67.254 254 119 46.850 -Husso 12.345.67.1 - 12.345.67.254 254 99 38.976 -Husso 12.345.67.1 - 12.345.67.254 254 96 37.795 -Husso 12.345.67.1 - 12.345.67.254 254 112 44.094 -Husso 12.345.67.1 - 12.345.67.254 254 102 40.157 -Husso 12.345.67.1 - 12.345.67.254 254 104 40.945 -Husso 12.345.67.1 - 12.345.67.254 254 106 41.732 -Jaskanen 12.345.678.3 - 12.345.678.254 252 180 71.429 -Jaskanen 12.345.678.1 - 12.345.678.254 254 192 75.591 -Jaskanen 12.345.678.1 - 12.345.678.254 254 176 69.291 -Jaskanen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Jaskanen 12.345.678.1 - 12.345.678.254 254 178 70.079 -Jaskanen 12.345.678.1 - 12.345.678.254 254 192 75.591 -Jaskanen 12.345.678.1 - 12.345.678.254 254 182 71.654 -Jaskanen 12.345.678.1 - 12.345.678.254 254 180 70.866 -Jaskanen 12.345.678.1 - 12.345.678.254 254 172 67.717 -Jaskanen 12.345.678.1 - 12.345.678.254 254 182 71.654 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Jaskanen 12.345.678.1 - 12.345.678.254 254 188 74.016 -Jaskanen 12.345.678.1 - 12.345.678.254 254 171 67.323 -Jaskanen 12.345.678.1 - 12.345.678.254 254 187 73.622 -Jaskanen 12.345.678.1 - 12.345.678.254 254 161 63.386 -Jaskanen 12.345.678.1 - 12.345.678.254 254 176 69.291 -Jaskanen 12.345.678.1 - 12.345.678.254 254 182 71.654 -Jaskanen 12.345.678.1 - 12.345.678.254 254 178 70.079 -Jaskanen 12.345.678.1 - 12.345.678.254 254 180 70.866 -Jaskanen 12.345.678.1 - 12.345.678.254 254 177 69.685 -Jaskanen 12.345.678.1 - 12.345.678.254 254 173 68.110 -Jaskanen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Jaskanen 12.345.678.1 - 12.345.678.254 254 178 70.079 -Jaskanen 12.345.678.1 - 12.345.678.254 254 176 69.291 -Jaskanen 12.345.678.1 - 12.345.678.254 254 162 63.780 -Jaskanen 12.345.678.1 - 12.345.678.254 254 193 75.984 -Jaskanen 12.345.678.1 - 12.345.678.254 254 184 72.441 -Jaskanen 12.345.678.1 - 12.345.678.254 254 187 73.622 -Jaskanen 12.345.678.1 - 12.345.678.254 254 188 74.016 -Jaskanen 12.345.678.1 - 12.345.678.254 254 165 64.961 -Jaskanen 12.345.678.1 - 12.345.678.254 254 171 67.323 -Jaskanen 12.345.678.1 - 12.345.678.254 254 174 68.504 -Halonen 12.345.6.3 - 12.345.6.254 252 214 12.345 -Halonen 12.345.6.1 - 12.345.6.254 254 219 86.220 -Halonen 12.345.6.1 - 12.345.6.254 254 225 88.583 -Halonen 12.345.6.1 - 12.345.6.254 254 228 89.764 -Halonen 12.345.6.1 - 12.345.6.254 254 226 88.976 -Halonen 12.345.6.1 - 12.345.6.254 254 212 83.465 -Halonen 12.345.6.1 - 12.345.6.254 254 217 85.433 -Halonen 12.345.6.1 - 12.345.6.254 254 216 85.039 -Halonen 12.345.6.1 - 12.345.6.254 254 218 85.827 -Halonen 12.345.6.1 - 12.345.6.254 254 218 85.827 -Halonen 12.345.67.1 - 12.345.67.254 254 223 87.795 -Halonen 12.345.67.1 - 12.345.67.254 254 228 89.764 -Halonen 12.345.67.1 - 12.345.67.254 254 221 87.008 -Halonen 12.345.67.1 - 12.345.67.254 254 217 85.433 -Halonen 12.345.67.1 - 12.345.67.254 254 218 85.827 -Halonen 12.345.67.1 - 12.345.67.254 254 227 89.370 -Halonen 12.345.67.1 - 12.345.67.254 254 212 83.465 -Halonen 12.345.67.1 - 12.345.67.254 254 215 12.345 -Halonen 12.345.67.1 - 12.345.67.254 254 232 91.339 -Halonen 12.345.67.1 - 12.345.67.254 254 217 85.433 -Halonen 12.345.67.1 - 12.345.67.254 254 227 89.370 -Halonen 12.345.67.1 - 12.345.67.254 254 218 85.827 -Halonen 12.345.67.1 - 12.345.67.254 254 223 87.795 -Halonen 12.345.67.1 - 12.345.67.254 254 222 87.402 -Halonen 12.345.67.1 - 12.345.67.254 254 218 85.827 -Halonen 12.345.67.1 - 12.345.67.254 254 225 88.583 -Halonen 12.345.67.1 - 12.345.67.254 254 210 82.677 -Halonen 12.345.67.1 - 12.345.67.254 254 224 88.189 -Halonen 12.345.67.1 - 12.345.67.254 254 220 86.614 -Halonen 12.345.67.1 - 12.345.67.254 254 227 89.370 -Halonen 12.345.67.1 - 12.345.67.254 254 228 89.764 -Halonen 12.345.67.1 - 12.345.67.254 254 220 86.614 -Asikainen 12.345.67.4 - 12.345.67.254 251 13 5.179 -Asikainen 12.345.67.1 - 12.345.67.254 254 17 6.693 -Asikainen 12.345.67.1 - 12.345.67.254 254 14 5.512 -Asikainen 12.345.67.1 - 12.345.67.254 254 19 7.480 -Asikainen 12.345.67.1 - 12.345.67.254 254 23 9.055 -Asikainen 12.345.67.1 - 12.345.67.254 254 19 7.480 -Asikainen 12.345.67.1 - 12.345.67.254 254 18 7.087 -Asikainen 12.345.67.1 - 12.345.67.254 254 16 6.299 -Asikainen 12.345.67.1 - 12.345.67.254 254 24 9.449 -Asikainen 12.345.67.1 - 12.345.67.254 254 24 9.449 -Asikainen 12.345.67.1 - 12.345.67.254 254 24 9.449 -Asikainen 12.345.67.1 - 12.345.67.254 254 26 10.236 -Asikainen 12.345.67.1 - 12.345.67.254 254 24 9.449 -Asikainen 12.345.67.1 - 12.345.67.254 254 33 12.992 -Asikainen 12.345.67.1 - 12.345.67.254 254 29 11.417 -Asikainen 12.345.67.1 - 12.345.67.254 254 25 9.843 -Asikainen 12.345.67.1 - 12.345.67.254 254 34 13.386 -Asikainen 12.345.67.1 - 12.345.67.254 254 31 12.205 -Asikainen 12.345.67.1 - 12.345.67.254 254 28 11.024 -Asikainen 12.345.67.1 - 12.345.67.254 254 32 12.598 -Asikainen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Asikainen 12.345.67.1 - 12.345.67.254 254 36 14.173 -Asikainen 12.345.67.1 - 12.345.67.254 254 41 16.142 -Asikainen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Asikainen 12.345.67.1 - 12.345.67.254 254 32 12.598 -Asikainen 12.345.67.1 - 12.345.67.254 254 33 12.992 -Asikainen 12.345.67.1 - 12.345.67.254 254 44 17.323 -Asikainen 12.345.67.1 - 12.345.67.254 254 27 10.630 -Asikainen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Asikainen 12.345.67.1 - 12.345.67.254 254 32 12.598 -Asikainen 12.345.67.1 - 12.345.67.254 254 40 15.748 -Asikainen 12.345.67.1 - 12.345.67.254 254 37 14.567 -Hyle 12.345.678.3 - 12.345.678.254 252 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 1 0.394 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Hyle 12.345.678.1 - 12.345.678.254 254 0 0.000 -Halttunen 12.345.678.3 - 12.345.678.254 252 198 78.571 -Halttunen 12.345.678.1 - 12.345.678.254 254 193 75.984 -Halttunen 12.345.678.1 - 12.345.678.254 254 207 81.496 -Halttunen 12.345.678.1 - 12.345.678.254 254 191 75.197 -Husso 12.345.678.3 - 12.345.678.254 252 156 61.905 -Husso 12.345.678.1 - 12.345.678.254 254 154 60.630 -Husso 12.345.678.1 - 12.345.678.254 254 168 66.142 -Husso 12.345.678.1 - 12.345.678.254 254 169 66.535 -Husso 12.345.678.1 - 12.345.678.254 254 171 67.323 -Husso 12.345.678.1 - 12.345.678.254 254 184 72.441 -Husso 12.345.678.1 - 12.345.678.254 254 173 68.110 -Husso 12.345.678.1 - 12.345.678.254 254 166 65.354 -Halttunen 12.345.678.3 - 12.345.678.254 252 209 82.937 -Halttunen 12.345.678.1 - 12.345.678.254 254 209 82.283 -Halttunen 12.345.678.1 - 12.345.678.254 254 212 83.465 -Halttunen 12.345.678.1 - 12.345.678.254 254 205 80.709 -Halttunen 12.345.678.1 - 12.345.678.254 254 202 79.528 -Halttunen 12.345.678.1 - 12.345.678.254 254 210 82.677 -Halttunen 12.345.678.1 - 12.345.678.254 254 194 76.378 -Halttunen 12.345.678.1 - 12.345.678.254 254 193 75.984 -Husso 12.345.678.3 - 12.345.678.254 252 173 68.651 -Husso 12.345.678.1 - 12.345.678.254 254 175 68.898 -Husso 12.345.678.1 - 12.345.678.254 254 162 63.780 -Husso 12.345.678.1 - 12.345.678.254 254 166 65.354 -Husso 12.345.678.1 - 12.345.678.254 254 183 72.047 -Husso 12.345.678.1 - 12.345.678.254 254 166 65.354 -Husso 12.345.678.1 - 12.345.678.254 254 162 63.780 -Husso 12.345.678.1 - 12.345.678.254 254 163 64.173 -Halttunen 12.345.678.3 - 12.345.678.254 252 208 82.540 -Halttunen 12.345.678.1 - 12.345.678.254 254 196 77.165 -Halttunen 12.345.678.1 - 12.345.678.254 254 196 77.165 -Halttunen 12.345.678.1 - 12.345.678.254 254 205 80.709 -Halttunen 12.345.678.1 - 12.345.678.254 254 216 85.039 -Halttunen 12.345.678.1 - 12.345.678.254 254 211 83.071 -Halttunen 12.345.678.1 - 12.345.678.254 254 200 78.740 -Halttunen 12.345.678.1 - 12.345.678.254 254 208 81.890 -Halttunen 12.345.678.3 - 12.345.678.254 252 189 75.000 -Halttunen 12.345.678.1 - 12.345.678.254 254 216 85.039 -Halttunen 12.345.678.1 - 12.345.678.254 254 201 79.134 -Halttunen 12.345.678.1 - 12.345.678.254 254 205 80.709 -Ahosvaara 12.345.678.3 - 12.345.678.254 252 107 42.460 -Ahosvaara 12.345.678.1 - 12.345.678.254 254 97 38.189 -Ahosvaara 12.345.678.1 - 12.345.678.254 254 103 40.551 -Ahosvaara 12.345.678.1 - 12.345.678.254 254 113 44.488 -Janhonen 12.345.6.4 - 12.345.6.254 251 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.6.1 - 12.345.6.254 254 0 0.000 -Janhonen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Janhonen 12.345.67.1 - 12.345.67.254 254 1 0.394 -Janhonen 12.345.67.1 - 12.345.67.254 254 1 0.394 -Janhonen 12.345.67.1 - 12.345.67.254 254 2 0.787 -Janhonen 12.345.67.1 - 12.345.67.254 254 5 1.969 -Janhonen 12.345.67.1 - 12.345.67.254 254 6 2.362 -Janhonen 12.345.67.1 - 12.345.67.254 254 9 3.543 -Janhonen 12.345.67.1 - 12.345.67.254 254 4 1.575 -Janhonen 12.345.67.1 - 12.345.67.254 254 5 1.969 -Janhonen 12.345.67.1 - 12.345.67.254 254 10 3.937 -Janhonen 12.345.67.1 - 12.345.67.254 254 7 2.756 -Janhonen 12.345.67.1 - 12.345.67.254 254 8 3.150 -Janhonen 12.345.67.1 - 12.345.67.254 254 12 4.724 -Janhonen 12.345.67.1 - 12.345.67.254 254 11 4.331 -Janhonen 12.345.67.1 - 12.345.67.254 254 12 4.724 -Janhonen 12.345.67.1 - 12.345.67.254 254 15 5.906 -Janhonen 12.345.67.1 - 12.345.67.254 254 16 6.299 -Janhonen 12.345.67.1 - 12.345.67.254 254 10 3.937 -Janhonen 12.345.67.1 - 12.345.67.254 254 6 2.362 -Janhonen 12.345.67.1 - 12.345.67.254 254 15 5.906 -Janhonen 12.345.67.1 - 12.345.67.254 254 12 4.724 -Janhonen 12.345.67.1 - 12.345.67.254 254 17 6.693 -Janhonen 12.345.67.1 - 12.345.67.254 254 20 7.874 -Janhonen 12.345.67.1 - 12.345.67.254 254 12 4.724 -Janhonen 12.345.67.1 - 12.345.67.254 254 15 5.906 -Janhonen 12.345.67.1 - 12.345.67.254 254 23 9.055 -Janhonen 12.345.67.1 - 12.345.67.254 254 19 7.480 -Janhonen 12.345.67.1 - 12.345.67.254 254 19 7.480 -Janhonen 12.345.67.1 - 12.345.67.254 254 25 9.843 -Janhonen 12.345.67.1 - 12.345.67.254 254 25 9.843 -Janhonen 12.345.67.1 - 12.345.67.254 254 30 11.811 -Janhonen 12.345.67.1 - 12.345.67.254 254 30 11.811 -Janhonen 12.345.67.1 - 12.345.67.254 254 31 12.205 -Janhonen 12.345.67.1 - 12.345.67.254 254 31 12.205 -Janhonen 12.345.67.1 - 12.345.67.254 254 33 12.992 -Janhonen 12.345.67.1 - 12.345.67.254 254 31 12.205 -Janhonen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Janhonen 12.345.67.1 - 12.345.67.254 254 40 15.748 -Janhonen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Janhonen 12.345.67.1 - 12.345.67.254 254 43 16.929 -Janhonen 12.345.67.1 - 12.345.67.254 254 44 17.323 -Janhonen 12.345.67.1 - 12.345.67.254 254 33 12.992 -Janhonen 12.345.67.1 - 12.345.67.254 254 44 17.323 -Janhonen 12.345.67.1 - 12.345.67.254 254 35 13.780 -Janhonen 12.345.67.1 - 12.345.67.254 254 48 18.898 -Janhonen 12.345.67.1 - 12.345.67.254 254 45 17.717 -Janhonen 12.345.67.1 - 12.345.67.254 254 43 16.929 -Janhonen 12.345.67.1 - 12.345.67.254 254 46 18.110 -Janhonen 12.345.67.1 - 12.345.67.254 254 51 20.079 -Janhonen 12.345.67.1 - 12.345.67.254 254 52 20.472 -Janhonen 12.345.67.1 - 12.345.67.254 254 55 21.654 -Janhonen 12.345.67.1 - 12.345.67.254 254 56 22.047 -Janhonen 12.345.67.1 - 12.345.67.254 254 51 20.079 -Janhonen 12.345.67.1 - 12.345.67.254 254 60 23.622 -Jehkinen 12.345.67.4 - 12.345.67.254 251 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 0 0.000 -Jehkinen 12.345.67.1 - 12.345.67.254 254 1 0.394 -Jehkinen 12.345.67.1 - 12.345.67.254 254 3 1.181 -Jehkinen 12.345.67.1 - 12.345.67.254 254 3 1.181 -Jehkinen 12.345.67.1 - 12.345.67.254 254 7 2.756 -Jehkinen 12.345.67.1 - 12.345.67.254 254 5 1.969 -Jehkinen 12.345.67.1 - 12.345.67.254 254 4 1.575 -Jehkinen 12.345.67.1 - 12.345.67.254 254 6 2.362 -Jehkinen 12.345.67.1 - 12.345.67.254 254 10 3.937 -Jehkinen 12.345.67.1 - 12.345.67.254 254 7 2.756 -Jehkinen 12.345.67.1 - 12.345.67.254 254 11 4.331 -Jehkinen 12.345.67.1 - 12.345.67.254 254 13 5.118 -Jehkinen 12.345.67.1 - 12.345.67.254 254 14 5.512 -Jehkinen 12.345.67.1 - 12.345.67.254 254 15 5.906 -Jehkinen 12.345.67.1 - 12.345.67.254 254 18 7.087 -Jehkinen 12.345.67.1 - 12.345.67.254 254 18 7.087 -Jehkinen 12.345.67.1 - 12.345.67.254 254 19 7.480 -Jehkinen 12.345.67.1 - 12.345.67.254 254 17 6.693 -Jehkinen 12.345.67.1 - 12.345.67.254 254 17 6.693 -Jehkinen 12.345.67.1 - 12.345.67.254 254 19 7.480 -Hokkanen 12.345.67.3 - 12.345.67.254 252 55 21.825 -Hokkanen 12.345.67.1 - 12.345.67.254 254 64 25.197 -Hokkanen 12.345.67.1 - 12.345.67.254 254 70 27.559 -Hokkanen 12.345.67.1 - 12.345.67.254 254 72 28.346 -Hokkanen 12.345.678.1 - 12.345.678.254 254 82 32.283 -Hokkanen 12.345.678.1 - 12.345.678.254 254 68 26.772 -Hokkanen 12.345.678.1 - 12.345.678.254 254 65 25.591 -Hokkanen 12.345.678.1 - 12.345.678.254 254 70 27.559 -Hokkanen 12.345.678.1 - 12.345.678.254 254 83 32.677 -Hokkanen 12.345.678.1 - 12.345.678.254 254 73 28.740 -Hokkanen 12.345.678.1 - 12.345.678.254 254 89 35.039 -Hokkanen 12.345.678.1 - 12.345.678.254 254 92 36.220 -Hokkanen 12.345.678.1 - 12.345.678.254 254 74 29.134 -Hokkanen 12.345.678.1 - 12.345.678.254 254 68 26.772 -Hokkanen 12.345.678.1 - 12.345.678.254 254 73 28.740 -Hokkanen 12.345.678.1 - 12.345.678.254 254 88 34.646 -Husso 12.345.678.3 - 12.345.678.254 252 142 56.349 -Husso 12.345.678.1 - 12.345.678.254 254 155 61.024 -Husso 12.345.678.1 - 12.345.678.254 254 160 62.992 -Husso 12.345.678.1 - 12.345.678.254 254 148 58.268 -Husso 12.345.678.1 - 12.345.678.254 254 148 58.268 -Husso 12.345.678.1 - 12.345.678.254 254 157 61.811 -Husso 12.345.678.1 - 12.345.678.254 254 149 58.661 -Husso 12.345.678.1 - 12.345.678.254 254 163 64.173 -Husso 12.345.678.3 - 12.345.678.254 252 135 53.571 -Husso 12.345.678.1 - 12.345.678.254 254 141 55.512 -Husso 12.345.678.1 - 12.345.678.254 254 140 55.118 -Husso 12.345.678.1 - 12.345.678.254 254 141 55.512 -Husso 12.345.678.1 - 12.345.678.254 254 136 53.543 -Husso 12.345.678.1 - 12.345.678.254 254 125 49.213 -Husso 12.345.678.1 - 12.345.678.254 254 145 57.087 -Husso 12.345.678.1 - 12.345.678.254 254 139 54.724 -Husso 12.345.678.3 - 12.345.678.254 252 148 58.730 -Husso 12.345.678.1 - 12.345.678.254 254 159 62.598 -Husso 12.345.678.1 - 12.345.678.254 254 157 61.811 -Husso 12.345.678.1 - 12.345.678.254 254 157 61.811 -Husso 12.345.678.1 - 12.345.678.254 254 168 66.142 -Husso 12.345.678.1 - 12.345.678.254 254 153 60.236 -Husso 12.345.678.1 - 12.345.678.254 254 162 63.780 -Husso 12.345.678.1 - 12.345.678.254 254 159 62.598 -Halttunen 12.345.678.3 - 12.345.678.254 252 184 73.016 -Halttunen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Halttunen 12.345.678.1 - 12.345.678.254 254 181 71.260 -Halttunen 12.345.678.1 - 12.345.678.254 254 184 72.441 -Halttunen 12.345.678.1 - 12.345.678.254 254 175 68.898 -Halttunen 12.345.678.1 - 12.345.678.254 254 192 75.591 -Halttunen 12.345.678.1 - 12.345.678.254 254 173 68.110 -Halttunen 12.345.678.1 - 12.345.678.254 254 185 72.835 -Halttunen 12.345.678.3 - 12.345.678.254 252 116 46.032 -Halttunen 12.345.678.1 - 12.345.678.254 254 130 51.181 -Halttunen 12.345.678.1 - 12.345.678.254 254 130 51.181 -Halttunen 12.345.678.1 - 12.345.678.254 254 138 54.331 -Halttunen 12.345.678.1 - 12.345.678.254 254 143 56.299 -Halttunen 12.345.678.1 - 12.345.678.254 254 131 51.575 -Halttunen 12.345.678.1 - 12.345.678.254 254 121 47.638 -Halttunen 12.345.678.1 - 12.345.678.254 254 126 49.606 -Jelonen 12.345.6.3 - 12.345.6.254 252 57 22.619 -Jelonen 12.345.6.1 - 12.345.6.254 254 47 18.504 -Jelonen 12.345.6.1 - 12.345.6.254 254 52 20.472 -Jelonen 12.345.6.1 - 12.345.6.254 254 52 20.472 -Jelonen 12.345.6.1 - 12.345.6.254 254 58 22.835 -Jelonen 12.345.6.1 - 12.345.6.254 254 59 23.228 -Jelonen 12.345.6.1 - 12.345.6.254 254 55 21.654 -Jelonen 12.345.6.1 - 12.345.6.254 254 52 20.472 -Jelonen 12.345.6.1 - 12.345.6.254 254 55 21.654 -Jelonen 12.345.6.1 - 12.345.6.254 254 67 26.378 -Jelonen 12.345.67.1 - 12.345.67.254 254 62 24.409 -Jelonen 12.345.67.1 - 12.345.67.254 254 60 23.622 -Jelonen 12.345.67.1 - 12.345.67.254 254 60 23.622 -Jelonen 12.345.67.1 - 12.345.67.254 254 61 24.016 -Jelonen 12.345.67.1 - 12.345.67.254 254 64 25.197 -Jelonen 12.345.67.1 - 12.345.67.254 254 70 27.559 -Jaskanen 12.345.67.3 - 12.345.67.254 252 146 57.937 -Jaskanen 12.345.67.1 - 12.345.67.254 254 143 56.299 -Jaskanen 12.345.67.1 - 12.345.67.254 254 142 55.906 -Jaskanen 12.345.67.1 - 12.345.67.254 254 161 63.386 -Jaskanen 12.345.67.1 - 12.345.67.254 254 150 59.055 -Jaskanen 12.345.67.1 - 12.345.67.254 254 155 61.024 -Jaskanen 12.345.67.1 - 12.345.67.254 254 153 60.236 -Jaskanen 12.345.67.1 - 12.345.67.254 254 161 63.386 -Jaskanen 12.345.67.1 - 12.345.67.254 254 150 59.055 -Jaskanen 12.345.67.1 - 12.345.67.254 254 156 61.417 -Jaskanen 12.345.67.1 - 12.345.67.254 254 150 59.055 -Jaskanen 12.345.67.1 - 12.345.67.254 254 147 57.874 -Jaskanen 12.345.67.1 - 12.345.67.254 254 148 58.268 -Jaskanen 12.345.67.1 - 12.345.67.254 254 150 59.055 -Jaskanen 12.345.67.1 - 12.345.67.254 254 143 56.299 -Jaskanen 12.345.67.1 - 12.345.67.254 254 145 57.087 -Itkonen 12.345.67.3 - 12.345.67.254 252 165 65.476 -Itkonen 12.345.67.1 - 12.345.67.254 254 153 60.236 -Itkonen 12.345.67.1 - 12.345.67.254 254 142 55.906 -Itkonen 12.345.67.1 - 12.345.67.254 254 178 70.079 -Itkonen 12.345.67.1 - 12.345.67.254 254 163 64.173 -Itkonen 12.345.67.1 - 12.345.67.254 254 165 64.961 -Itkonen 12.345.67.1 - 12.345.67.254 254 175 68.898 -Itkonen 12.345.67.1 - 12.345.67.254 254 161 63.386 -Huttunen 12.345.678.3 - 12.345.678.254 252 39 15.476 -Huttunen 12.345.678.1 - 12.345.678.254 254 44 17.323 -Huttunen 12.345.678.1 - 12.345.678.254 254 43 16.929 -Huttunen 12.345.678.1 - 12.345.678.254 254 45 17.717 -Huttunen 12.345.678.1 - 12.345.678.254 254 49 19.291 -Huttunen 12.345.678.1 - 12.345.678.254 254 50 19.685 -Huttunen 12.345.678.1 - 12.345.678.254 254 48 18.898 -Huttunen 12.345.678.1 - 12.345.678.254 254 53 20.866 -Holappa 12.345.678.3 - 12.345.678.254 252 179 71.032 -Holappa 12.345.678.1 - 12.345.678.254 254 156 61.417 -Holappa 12.345.678.1 - 12.345.678.254 254 172 67.717 -Holappa 12.345.678.1 - 12.345.678.254 254 166 65.354 -Holappa 12.345.678.1 - 12.345.678.254 254 156 61.417 -Holappa 12.345.678.1 - 12.345.678.254 254 162 63.780 -Holappa 12.345.678.1 - 12.345.678.254 254 162 63.780 -Holappa 12.345.678.1 - 12.345.678.254 254 159 62.598 -Holappa 12.345.678.1 - 12.345.678.254 254 179 70.472 -Holappa 12.345.678.1 - 12.345.678.254 254 164 64.567 -Holappa 12.345.678.1 - 12.345.678.254 254 165 64.961 -Holappa 12.345.678.1 - 12.345.678.254 254 162 63.780 -Holappa 12.345.678.1 - 12.345.678.254 254 171 67.323 -Holappa 12.345.678.1 - 12.345.678.254 254 171 67.323 -Holappa 12.345.678.1 - 12.345.678.254 254 163 64.173 -Holappa 12.345.678.1 - 12.345.678.254 254 156 61.417 -Holopainen 123.45.198.2 - 124.56.198.254 253 2 0.791 - -Shared networks: -name max cur percent -Hynninen 0 0 nan -Hyttinen 0 0 nan -Hyytinen 0 0 nan -Atjonen 252 1 0.397 -Auvinen 4568 1812 39.667 -Harakka 4062 1934 47.612 -Eronen 4568 1565 34.260 -Haavikko 4315 1585 36.732 -Hakkarainen 4062 540 13.294 -Halonen 20314 12514 61.603 -Halttunen 20304 13619 67.075 -Hokkanen 4062 1186 29.197 -Huttunen 2030 371 18.276 -Honkipuro 4568 1765 38.638 -Huhtala 4062 1616 39.783 -Hult 4823 1657 34.356 -Huohvanainen 4062 677 16.667 -Husso 20306 10971 54.028 -Holappa 4062 2643 65.066 -Jelonen 4062 931 22.920 -Honkanen 4568 1901 41.616 -Huusko 4062 1532 37.715 -Huuskonen 3809 2098 55.080 -Ilarionova 520 255 49.038 -Ikonen 4062 0 0.000 -Ilmovuori 4315 0 0.000 -Hyle 4062 1 0.025 -Aatamila 252 33 13.095 -Hattunen 2030 0 0.000 -Harkovski 2028 1573 77.564 -Happo 1014 663 65.385 -Happonen 1014 726 71.598 -Harakka 1014 803 79.191 -Harjunen 1014 818 80.671 -Haukka 1014 345 34.024 -Hautanen 1014 408 40.237 -Havu 1014 404 39.842 -Heiskanen 1014 452 44.576 -Hietanen 1014 395 38.955 -Hiiliaho 1014 408 40.237 -Hilonen 1014 323 31.854 -Hirvonen 1014 714 70.414 -Hoivassilta 507 0 0.000 -Jaskanen 28181 19262 68.351 -Itkonen-temp 3556 0 0.000 -Itkonen 4312 2788 64.657 -Ahtonen 1014 266 26.233 -Arviluoma 252 3 1.190 -Ahosvaara 1014 420 41.420 -Holopainen 253 2 0.791 -Anttila 505 0 0.000 -Janhonen 16253 1344 8.269 -Asikainen 8125 900 11.077 -Jehkinen 8125 207 2.548 - -Sum of all: -name max cur percent -All networks 228455 94431 41.335 diff --git a/webpages/sitemap.txt b/webpages/sitemap.txt index 60a6df9..28f6306 100644 --- a/webpages/sitemap.txt +++ b/webpages/sitemap.txt @@ -1,2095 +1,546 @@ -http://dhcpd-pools.sourceforge.net/ -http://dhcpd-pools.sourceforge.net/dhcpd-pools.awk -http://dhcpd-pools.sourceforge.net/man.html -http://dhcpd-pools.sourceforge.net/doxygen/sampleoutput.txt -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c_ae4a0e5747966cb33e459ccd1039d1761_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a17de1b2b624a2ffc25dff9fabd2aab87_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype-h_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af74bd088df09d457cf83a3d42ac29e3b_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a92db6afbd39d70dde0f830daaaa89be5_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/filename_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_c.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aea4e0ee59e46ba5b8970e2386302d997_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_b.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a8912a4a34bc9896f479a861fb2abf26c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_a656c0014bca06d6d9fd748a2f9dc4ab9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a59193ccd2c0f374087081ef2fd2b08ed_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c_a8d4943c8a1e25200292b4ef049634914_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_a0c17a0b44f572941d9f73518f99ea7ed_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__types_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/realloc_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a8f31a939021567d81aecc876a322f2cd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a3326aee231570141ab97e7f6b41248a2_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a27e69f6fec7e64d52e1fdc49c8c813d0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c_a7d205fd04850ed90bf8bc835ea126c30_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_fb441f6c77667ce4c9ebd4a5c47eafac_dep.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a447fa12ac876b90a916a3c3c9ca2ae38_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c_a3c20039c03aa27eb189d2f616c7e4ea7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a731587e35c47ecf04885633b03599652_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a42ca40e01f90e40ebc5f81b046a8c3f9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_ad37d1cbb778ea31fcf392d01168e4582_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2682e4efd0b883d164311ca95d0ae4a0_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/jquery.js -http://dhcpd-pools.sourceforge.net/doxygen/files.html -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_a5d6e2957d43a40a81ccf80939bc88417_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_ac965ebad2452d2e0a6a0167730dbb39f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_a0b95b4561242161bc9984852693ba646_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2d914d8e43d80a7682f1e8d283bc098c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/tab_a.png -http://dhcpd-pools.sourceforge.net/doxygen/stddef_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a5d6e2957d43a40a81ccf80939bc88417_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a9b5c96cfa1dddfcf68c0e4efce1c3ff1_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a40233e26691ff7d661683d61fda5ab38_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a50e26cb469c276b6d8be436982f6eddd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a0e9add19c779ddf55db924975784bb9a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/streq_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a795f2801e747615274e2386df5c2a2a7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af79cc26a51f94400dad990aa12ee9cc9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a02757b15583c2226e307a507fda96d43_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_h.html -http://dhcpd-pools.sourceforge.net/doxygen/structconf__t__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h_af106eda28a6b6a87e46539163466cad9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_m.html -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c_ad7e2b66799fbd125c246f6342990194c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/arg-nonnull_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals.html -http://dhcpd-pools.sourceforge.net/doxygen/errno_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/math_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_d.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_adf3e6cacc74ba08a64f7dcf71e5e713b_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_u.html -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a9ab94edcc74b781cabd8dc1f99e931e3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c_a91f60ad5697278e44ceb08d1270de3c0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/menu.js -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a72c8d2fcdbf2e7ab207d35a1f4d5d21c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_a85a3b1ee67d77fe6bbaf272856d09875_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a8f31a939021567d81aecc876a322f2cd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/warn-on-use_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_ac965ebad2452d2e0a6a0167730dbb39f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_ad34540a9deac940fc7ab265da606d484_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a41c1f91a38be989ef5e8fbb52444501f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a10d3215fb947c2b6546716333fa88c45_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2a7fec798c8ed14d05e54b7263ee5a2c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2d914d8e43d80a7682f1e8d283bc098c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c_a2fe5b0b4f6e117319dd79f867d0b0d71_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mktime_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a3326aee231570141ab97e7f6b41248a2_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structconf__t__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aeca9b417e9fd54335f9f505a322dfdf9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c_a2fe5b0b4f6e117319dd79f867d0b0d71_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a326c24d8ac30f57dc1093a8d892a63f2_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/errno_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/error_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_aba0174c597c07f99509871850bd91540_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_acac91d3fab9431e9feadfa8bee0d669c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ae7bcd169e2b0ff19a30e39f399aa3256_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_ad2fa1bc4e69b1dc43ebfd8d3267ed503_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/ftello_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2d9e24bfed149261c782fcab4ce8692a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/folderclosed.png -http://dhcpd-pools.sourceforge.net/doxygen/structmsghdr.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_ab098119eda4ff6b9e9a2688d236fd087_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a731587e35c47ecf04885633b03599652_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structexpl__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_t.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a9a0561234d71d331325249e4433c2236_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aee6e269dac533178d61f95b6e40bca68_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a45d904cf0131976ce46045fd06edba81_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a6c59fc7c009709f28ae4ac9d4eb03337_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a8da7481eade065aeac55ce7888d89f4e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_af26c9be673bce92b08b2360f243fe82b_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dynsections.js -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a9a0561234d71d331325249e4433c2236_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_1dacc5f4fcb865f1d9e042339dad3519.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aa675337e02b12f20e5c7db26e55dbc15_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af74bd088df09d457cf83a3d42ac29e3b_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype-h_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/strdup_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/structmsghdr__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c_abb7b88116dfb59ee81e338cc78863ba2_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a3738c2bfd96d1421c8328fc59754def3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_ab2204a6c14ad7ce72a7e1c3a3c77fd06_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aa9c700b9dc1b7a0ef866f39c53bb597f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a3f2949cd831a86aa5c94637f731dbabb_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a8077600735c5be8a8eb6a1bc629d913d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c_aae4231ac8066eb54ea1d9d12d551605c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_a71fcb729570934d0d3449417ceafcc36_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a45d904cf0131976ce46045fd06edba81_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/float_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a45866115a49b918fa6bbd5c32a5afe4f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c_a64f71c9ec9854b427c74ba77e614343a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_ac67c11f4ac65504980dd8ba708ed10c6_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_r.html -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_adbb84b1b34e89af30525e680a4da749d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a72c8d2fcdbf2e7ab207d35a1f4d5d21c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fseeko_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_a656c0014bca06d6d9fd748a2f9dc4ab9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_m.html -http://dhcpd-pools.sourceforge.net/doxygen/unionipaddr__t.html -http://dhcpd-pools.sourceforge.net/doxygen/time_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af69f81b09ea8f7dda0047edd06c717ec_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stdbool_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ad24097c0e33982e7feba6d944de6c79b_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_ac55e14bbdafa3785df1c60c6d247eb61_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af90ebdd5ec007dce3b05cdb440aca915_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/progname_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_d.html -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/math_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c_ade80c9f68ef6d6aa778ae83a8ffa505f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/warn-on-use_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aea4e0ee59e46ba5b8970e2386302d997_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dir_000001_000002.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a41c1f91a38be989ef5e8fbb52444501f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2d914d8e43d80a7682f1e8d283bc098c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strdup_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a44286f6558114fb227424af5af02f3bd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a50e26cb469c276b6d8be436982f6eddd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_acac91d3fab9431e9feadfa8bee0d669c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a02d48dd14871b22d59ec6d926585bbc8_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aa9c700b9dc1b7a0ef866f39c53bb597f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/memchr_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_fb441f6c77667ce4c9ebd4a5c47eafac_dep.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_aaa60fcb235125d2c98c600796d09aa64_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a4a72d4df9c2bd3f03842b7b017281ddb_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structexpl__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/limits_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h_af106eda28a6b6a87e46539163466cad9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/string_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a29b6cc93a084b0c7dc561f08d55354d6_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/filename_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/string_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a12d0dc2ac6cfcfb1856516a9f144d831_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a1b62af37280706bf7493743ff3f7b4aa_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c_aa97592674ee46a81121ee904ded69db2_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2682e4efd0b883d164311ca95d0ae4a0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structshared__network__t__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a8492be59e0766089d64d6e3ccbb0a1dd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/unionmemory__double.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a92db6afbd39d70dde0f830daaaa89be5_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/limits_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/math_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_ab2204a6c14ad7ce72a7e1c3a3c77fd06_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/structrange__t__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/close_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/__Noreturn_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_ac55e14bbdafa3785df1c60c6d247eb61_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_t.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_i.html -http://dhcpd-pools.sourceforge.net/doxygen/graph_legend.html -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_ac370a831638bdd942e1624f9bc39f40f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_a65d4f9aeaba39f65092c351c6dfdd509_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/itold_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a626f2d98b1663b423eda295eb3aa2b5d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af74bd088df09d457cf83a3d42ac29e3b_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af74bd088df09d457cf83a3d42ac29e3b_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a44286f6558114fb227424af5af02f3bd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af90ebdd5ec007dce3b05cdb440aca915_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structleases__t__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/float_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_aea890aa67c0b03876f74fe7c5d9b3a21_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_addbac86d87d540f7e0eae5dbfac62c74_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_l.html -http://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ad37d1cbb778ea31fcf392d01168e4582_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/config_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c_ad7e2b66799fbd125c246f6342990194c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fdopen_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/struct____time__t__must__be__integral.html -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a873f17992895bdebb3714d48407fd8ee_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_a7ccc330a5672b0630e731e31d7f90cf0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/nav_g.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2d914d8e43d80a7682f1e8d283bc098c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/types_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a3f6712cd433c2b58096f88d7a4e4c962_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structslotvec.html -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.png -http://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a80b2536bb2d5ebe8dba11661cc041a6b_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c_ad7e2b66799fbd125c246f6342990194c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structleases__t__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/minmax_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c_a40ba0199e64322af4bb99c03bb1c1f82_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a967b15470f160c8fd28c1341724102f7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c_a28038203c46fba44ad2199db0c4f0f0a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a31358cb0cac4ad5800d2a7c1bdb0aa40_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_c.html -http://dhcpd-pools.sourceforge.net/doxygen/float_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a8ded4a0c5645ded15779af1359945baa_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a4a72d4df9c2bd3f03842b7b017281ddb_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a795f2801e747615274e2386df5c2a2a7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_af90ebdd5ec007dce3b05cdb440aca915_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a326c24d8ac30f57dc1093a8d892a63f2_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/nav_f.png -http://dhcpd-pools.sourceforge.net/doxygen/progname_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a967b15470f160c8fd28c1341724102f7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a17de1b2b624a2ffc25dff9fabd2aab87_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_a7ccc330a5672b0630e731e31d7f90cf0_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/itold_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c_aed830468f4d74daedeef23fbf3b9ff94_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_ac769cb753ff117e3d678a5eca0014920_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/splitbar.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_ac769cb753ff117e3d678a5eca0014920_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a8077600735c5be8a8eb6a1bc629d913d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c_a3c20039c03aa27eb189d2f616c7e4ea7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_ade80c9f68ef6d6aa778ae83a8ffa505f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dosname_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/math_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/stpncpy_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a9a202967000c0f6626da60dfc0820151_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_ad37d1cbb778ea31fcf392d01168e4582_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fseeko_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/structoutput__sort.html -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h_a3c20039c03aa27eb189d2f616c7e4ea7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_addbac86d87d540f7e0eae5dbfac62c74_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a3f2949cd831a86aa5c94637f731dbabb_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/structconf__t__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_abac51f489527192d5f26f40f22b9bca9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a1b9e84bfc438c0a91dfec1f5610564ff_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_acac91d3fab9431e9feadfa8bee0d669c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a20348831ccdaa3299eca89e4760d10f3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_adf45b810e736753c178d8d354946bb34_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c_a163324639129ef5e99aa4590d2c3c9a4_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/isnanf_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_ade697840b3ffb9c2ee7d9cefbe58edd6_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_ad2fa1bc4e69b1dc43ebfd8d3267ed503_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/progname_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_acfa9c56b79e068f7c66f14e92de9621f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a8da7481eade065aeac55ce7888d89f4e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ae7bcd169e2b0ff19a30e39f399aa3256_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2a7fec798c8ed14d05e54b7263ee5a2c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/progname_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a50e26cb469c276b6d8be436982f6eddd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_l.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a1605d5d50f449eb8424526003277e547_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_adf3e6cacc74ba08a64f7dcf71e5e713b_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_vars.html -http://dhcpd-pools.sourceforge.net/doxygen/mbsinit_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c_a64fec4fca560e8ba4cd06562eb3e638d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2d914d8e43d80a7682f1e8d283bc098c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a9a0561234d71d331325249e4433c2236_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a72c8d2fcdbf2e7ab207d35a1f4d5d21c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a50e26cb469c276b6d8be436982f6eddd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_af465e1e5bdfb04b64ac6a66a49294efb_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/itold_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a98437aeff705113eeee679fadd0659f5_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structquoting__options.html -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_p.html -http://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/string_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a1a92d0c7a5b5de1bd6ab225ae4afe60a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/unsetenv_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_p.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af74bd088df09d457cf83a3d42ac29e3b_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_acd3044aba8bcf32ded0893f0ff7d43b3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/progname_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_ae7bcd169e2b0ff19a30e39f399aa3256_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/search -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_10.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_f.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_11.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_10.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_f.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_d.js -http://dhcpd-pools.sourceforge.net/doxygen/search/search_r.png -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_13.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_15.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_f.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_10.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_b.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_f.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_12.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_c.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_15.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_12.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_11.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_f.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_15.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_e.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_d.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_10.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_13.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_18.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_10.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_b.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_14.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_13.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_16.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_f.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_15.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_11.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_10.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_16.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_b.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_c.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_e.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_12.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_12.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_10.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_e.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_16.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_d.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_11.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_e.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_b.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_12.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_18.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_b.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_16.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_14.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_c.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_d.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_c.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_c.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_b.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_e.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_10.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_b.html -http://dhcpd-pools.sourceforge.net/doxygen/search/close.png -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_f.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_11.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_16.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_b.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_17.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_c.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_d.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_d.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_e.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_14.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_16.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_d.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_14.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_e.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_15.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_14.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_b.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_17.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_12.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_13.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_11.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_11.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_13.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_16.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_c.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_e.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_13.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_14.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_2.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_c.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_c.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_b.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_17.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_15.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_d.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_12.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_f.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_11.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_11.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_b.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_14.html -http://dhcpd-pools.sourceforge.net/doxygen/search/mag_sel.png -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_13.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_f.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_10.js -http://dhcpd-pools.sourceforge.net/doxygen/search/search.css -http://dhcpd-pools.sourceforge.net/doxygen/search/files_8.js -http://dhcpd-pools.sourceforge.net/doxygen/search/nomatches.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_12.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_7.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_d.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_f.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_b.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_12.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_0.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_9.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_10.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_15.html -http://dhcpd-pools.sourceforge.net/doxygen/search/search.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_e.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_9.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_14.html -http://dhcpd-pools.sourceforge.net/doxygen/search/search_l.png -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_6.html -http://dhcpd-pools.sourceforge.net/doxygen/search/search_m.png -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_d.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_e.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_3.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_15.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_14.html -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_d.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_4.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_a.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_17.html -http://dhcpd-pools.sourceforge.net/doxygen/search/enums_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_13.js -http://dhcpd-pools.sourceforge.net/doxygen/search/searchdata.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_c.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_13.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_7.html -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_12.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_f.js -http://dhcpd-pools.sourceforge.net/doxygen/search/all_e.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_c.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/files_14.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_5.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_a.html -http://dhcpd-pools.sourceforge.net/doxygen/search/all_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_d.html -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_4.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_16.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_2.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_1.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_8.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/functions_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_e.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_6.js -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_c.js -http://dhcpd-pools.sourceforge.net/doxygen/search/classes_1.js -http://dhcpd-pools.sourceforge.net/doxygen/search/files_0.js -http://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_3.js -http://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_5.html -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_f.js -http://dhcpd-pools.sourceforge.net/doxygen/search/variables_13.html -http://dhcpd-pools.sourceforge.net/doxygen/search/defines_11.js -http://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_y.html -http://dhcpd-pools.sourceforge.net/doxygen/streq_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_af53677934cc325455ae08fd8d7b63e73_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_ade697840b3ffb9c2ee7d9cefbe58edd6_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_d.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a731587e35c47ecf04885633b03599652_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a3f2949cd831a86aa5c94637f731dbabb_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_o.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_aeca9b417e9fd54335f9f505a322dfdf9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_e.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a72a13ff831bb5a94d321d64b60e6414f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c_a64fec4fca560e8ba4cd06562eb3e638d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a3326aee231570141ab97e7f6b41248a2_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a3326aee231570141ab97e7f6b41248a2_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a9b5c96cfa1dddfcf68c0e4efce1c3ff1_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c_a7d205fd04850ed90bf8bc835ea126c30_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_ade80c9f68ef6d6aa778ae83a8ffa505f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c_aed830468f4d74daedeef23fbf3b9ff94_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dir_97aefd0d527b934f1d99a682da8fe6a9_dep.map -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a6c41b841ecaf10025444de83ee2c8baa_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/freading_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/structmsghdr__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/dir_97aefd0d527b934f1d99a682da8fe6a9.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a92db6afbd39d70dde0f830daaaa89be5_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/index.html -http://dhcpd-pools.sourceforge.net/doxygen/configmake_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c_aa97592674ee46a81121ee904ded69db2_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_aea4e0ee59e46ba5b8970e2386302d997_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2682e4efd0b883d164311ca95d0ae4a0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a2f3ce877a460c8045e5ff1c0fc972ae9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a215b255f971df37ace7b513eb17fe1c5_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a0e9add19c779ddf55db924975784bb9a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a1b62af37280706bf7493743ff3f7b4aa_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_ad2fa1bc4e69b1dc43ebfd8d3267ed503_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a795f2801e747615274e2386df5c2a2a7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a9f53f329ff6ddd0dcfb9327733ddda26_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c_aa97592674ee46a81121ee904ded69db2_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_a65d4f9aeaba39f65092c351c6dfdd509_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aeca9b417e9fd54335f9f505a322dfdf9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af79cc26a51f94400dad990aa12ee9cc9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_acfa9c56b79e068f7c66f14e92de9621f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_af465e1e5bdfb04b64ac6a66a49294efb_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_abb353ec32fd152026c853fea429fe857_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a9ab94edcc74b781cabd8dc1f99e931e3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stpncpy_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af9d8c46bd7f7597671518cd88751edf8_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c_abb7b88116dfb59ee81e338cc78863ba2_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/limits_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_ab44c3ee94dab0397f09be71dbaa822e1_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structleases__t__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_ad70ef2af443d8846d200a4d3f2228be1_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_a8f20e7eee29fd0718ff7ccf4488a123e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a731587e35c47ecf04885633b03599652_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_acfa9c56b79e068f7c66f14e92de9621f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_a85a3b1ee67d77fe6bbaf272856d09875_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h_a5d2c0879045afdfa6c14fab0ef874190_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_ab0c2382566dfdc1ca0533662069707fc_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structexpl.html -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c_a65d4f9aeaba39f65092c351c6dfdd509_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/types_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_a0b225ff0b5eabfd0121833eada84bc90_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/isnanf_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aba0174c597c07f99509871850bd91540_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a10d3215fb947c2b6546716333fa88c45_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_ac18804b8270ca7e5842c347ea81ba1c3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dir_000000_000001.html -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_a5d6e2957d43a40a81ccf80939bc88417_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a0b225ff0b5eabfd0121833eada84bc90_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a72c8d2fcdbf2e7ab207d35a1f4d5d21c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_s.html -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aa675337e02b12f20e5c7db26e55dbc15_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_add5e5c22a85f4544a1157876ac6bd561_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_a5d6e2957d43a40a81ccf80939bc88417_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_a8f20e7eee29fd0718ff7ccf4488a123e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h_af106eda28a6b6a87e46539163466cad9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_a.html -http://dhcpd-pools.sourceforge.net/doxygen/tzset_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/types_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c_ae0637f730cb7e22a3fc395f915de4c4c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a3326aee231570141ab97e7f6b41248a2_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__types_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a10d3215fb947c2b6546716333fa88c45_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_aba0174c597c07f99509871850bd91540_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_a6b7d00933208bc409f540a94c2bf037e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a69334a531533dbafdeb52429a03a8db7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a0e9add19c779ddf55db924975784bb9a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_ab2204a6c14ad7ce72a7e1c3a3c77fd06_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c_a69d9fadc7a8a192c18a135bfd9fcd477_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/tzset_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_adbb84b1b34e89af30525e680a4da749d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a9ab94edcc74b781cabd8dc1f99e931e3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a914cc22e26f85a8e7f1f1e0183981817_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a9003c507b2b2aa94774d12dc792c4644_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_a85a3b1ee67d77fe6bbaf272856d09875_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a873f17992895bdebb3714d48407fd8ee_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/freading_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a5d6e2957d43a40a81ccf80939bc88417_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a4a72d4df9c2bd3f03842b7b017281ddb_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_ac3f4051200261d4de4d7ae14499f7552_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c_a0bbc1c19c9c5d102bee9dc35629ddb68_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af79cc26a51f94400dad990aa12ee9cc9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mbsinit_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c_af106eda28a6b6a87e46539163466cad9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a72c8d2fcdbf2e7ab207d35a1f4d5d21c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_ae7bcd169e2b0ff19a30e39f399aa3256_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2682e4efd0b883d164311ca95d0ae4a0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2a7fec798c8ed14d05e54b7263ee5a2c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/tzset_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_af465e1e5bdfb04b64ac6a66a49294efb_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a2f3ce877a460c8045e5ff1c0fc972ae9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/limits_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_aba0174c597c07f99509871850bd91540_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af79cc26a51f94400dad990aa12ee9cc9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_add5e5c22a85f4544a1157876ac6bd561_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_a6b7d00933208bc409f540a94c2bf037e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_ad2fa1bc4e69b1dc43ebfd8d3267ed503_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a06bd8ee5bc9f5675f98e84908c0822e0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/progname_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a45d904cf0131976ce46045fd06edba81_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/malloc_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/unionrpl__max__align__t.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a33dd4780047eb59063b6b353d6b08111_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structoutput__sort__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a13a5debfccee08fbf18b13489836d223_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/lseek_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a5a8f2bad2fdbc52980d30b10a5ab33be_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a7be120852e24cbfe79867e585061e6b1_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a50e26cb469c276b6d8be436982f6eddd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af9d8c46bd7f7597671518cd88751edf8_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2d9e24bfed149261c782fcab4ce8692a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_a0b225ff0b5eabfd0121833eada84bc90_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_a479425784d9994068114922b90b31cb3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/functions_func.html -http://dhcpd-pools.sourceforge.net/doxygen/menudata.js -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a326c24d8ac30f57dc1093a8d892a63f2_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/lseek_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_a0b95b4561242161bc9984852693ba646_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c_09_09defs_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_aea890aa67c0b03876f74fe7c5d9b3a21_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/filename_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a72a13ff831bb5a94d321d64b60e6414f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ad24097c0e33982e7feba6d944de6c79b_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/structoption.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a98437aeff705113eeee679fadd0659f5_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2682e4efd0b883d164311ca95d0ae4a0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/memchr_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a1b070d7bdd59b4657266dbc7211bb637_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2d914d8e43d80a7682f1e8d283bc098c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c_a40ba0199e64322af4bb99c03bb1c1f82_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_u.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ab19a868b6a6e09347b26d089a2cc85fd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/minmax_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_aea890aa67c0b03876f74fe7c5d9b3a21_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_n.html -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c_a57b5e6142bca46d9c0c6cfaeac9c7d72_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_aa352612502255860e778bbcbabaf9ffa_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a795f2801e747615274e2386df5c2a2a7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/tzset_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/config_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c_a28038203c46fba44ad2199db0c4f0f0a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a7833a96194cc3bbd0d700eee41ced554_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a5de8be832ce3447e5017d3015083e514_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_af26c9be673bce92b08b2360f243fe82b_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a31358cb0cac4ad5800d2a7c1bdb0aa40_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/isnanf_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a1b070d7bdd59b4657266dbc7211bb637_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a626f2d98b1663b423eda295eb3aa2b5d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_abb353ec32fd152026c853fea429fe857_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a59193ccd2c0f374087081ef2fd2b08ed_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/math_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/closed.png -http://dhcpd-pools.sourceforge.net/doxygen/structtm__zone__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_aae4b54f2efc61bb94ad2c47303d624ad_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_g.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af53677934cc325455ae08fd8d7b63e73_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_af53677934cc325455ae08fd8d7b63e73_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/basename-lgpl_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/tab_b.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_ade80c9f68ef6d6aa778ae83a8ffa505f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_o.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/classes.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_v.html -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_x.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_ad70ef2af443d8846d200a4d3f2228be1_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/timegm_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_x.html -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aee6e269dac533178d61f95b6e40bca68_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/types_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_addbac86d87d540f7e0eae5dbfac62c74_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a479425784d9994068114922b90b31cb3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ac2aea1f150dd3ed22f0e3b18e32a113e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a8492be59e0766089d64d6e3ccbb0a1dd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/freading_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_e.html -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a8f4657ffdde1bf309ad71aa33db18607_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a06bd8ee5bc9f5675f98e84908c0822e0_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_fb441f6c77667ce4c9ebd4a5c47eafac_dep.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_aea890aa67c0b03876f74fe7c5d9b3a21_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a0e9add19c779ddf55db924975784bb9a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a06bd8ee5bc9f5675f98e84908c0822e0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a44286f6558114fb227424af5af02f3bd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/structrange__t.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a0b95b4561242161bc9984852693ba646_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a2d9e24bfed149261c782fcab4ce8692a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/math_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a27e69f6fec7e64d52e1fdc49c8c813d0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/streq_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_n.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a215b255f971df37ace7b513eb17fe1c5_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/structshared__network__t.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_addbac86d87d540f7e0eae5dbfac62c74_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/timegm_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a80b2536bb2d5ebe8dba11661cc041a6b_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_ac965ebad2452d2e0a6a0167730dbb39f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c_aec069b4e8b397362f89086c53b93fd6a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fpurge_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_m.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-cdefs_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a70c83b9ed7b98f15659fcc495c0c33e7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_af69f81b09ea8f7dda0047edd06c717ec_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a1bc967d5ea7fe0eb36434dbd8d691363_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dosname_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a3f6712cd433c2b58096f88d7a4e4c962_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mbsinit_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/basename-lgpl_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/isnand_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a40233e26691ff7d661683d61fda5ab38_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a70c83b9ed7b98f15659fcc495c0c33e7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a9a0561234d71d331325249e4433c2236_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/math_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a72c8d2fcdbf2e7ab207d35a1f4d5d21c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a9f53f329ff6ddd0dcfb9327733ddda26_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_a65d4f9aeaba39f65092c351c6dfdd509_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c_a5bfd13c5fa75b56081afbca8926ef270_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h_abea862091e8ea669bdb0f61d796cf883_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af9d8c46bd7f7597671518cd88751edf8_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/float_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_acf43aaf176da8efb115f944f5c0b3c97_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/fseeko_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_acf43aaf176da8efb115f944f5c0b3c97_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c_a5d2c0879045afdfa6c14fab0ef874190_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c_aece5d6e00c239ffd0847d8d2ef65bd57_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sync_off.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a17de1b2b624a2ffc25dff9fabd2aab87_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a8a497ca6c728daf89446401e2bdda8a8_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/malloc_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_enum.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a5de8be832ce3447e5017d3015083e514_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a8da7481eade065aeac55ce7888d89f4e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/unsetenv_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/ftello_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a8da7481eade065aeac55ce7888d89f4e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c_a5d2c0879045afdfa6c14fab0ef874190_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/limits_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2a7fec798c8ed14d05e54b7263ee5a2c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/float_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a1a92d0c7a5b5de1bd6ab225ae4afe60a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_af53677934cc325455ae08fd8d7b63e73_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a13a5debfccee08fbf18b13489836d223_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_aa9630c1943de96498e73fd63cd3aeea9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_ad70ef2af443d8846d200a4d3f2228be1_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ac2aea1f150dd3ed22f0e3b18e32a113e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_ac3f4051200261d4de4d7ae14499f7552_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a98437aeff705113eeee679fadd0659f5_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a2d9e24bfed149261c782fcab4ce8692a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af9d8c46bd7f7597671518cd88751edf8_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_aaa60fcb235125d2c98c600796d09aa64_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_ac18804b8270ca7e5842c347ea81ba1c3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a1bc967d5ea7fe0eb36434dbd8d691363_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a70c83b9ed7b98f15659fcc495c0c33e7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a8912a4a34bc9896f479a861fb2abf26c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a5a8f2bad2fdbc52980d30b10a5ab33be_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/structiovec.html -http://dhcpd-pools.sourceforge.net/doxygen/functions_vars.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_r.html -http://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dosname_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_i.html -http://dhcpd-pools.sourceforge.net/doxygen/structexpl__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a8ded4a0c5645ded15779af1359945baa_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/isnanl_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_ab44c3ee94dab0397f09be71dbaa822e1_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mktime_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a8ded4a0c5645ded15779af1359945baa_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af79cc26a51f94400dad990aa12ee9cc9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structshared__network__t__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_aa9c700b9dc1b7a0ef866f39c53bb597f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a06bd8ee5bc9f5675f98e84908c0822e0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c_a5d6ffddd86bd0d0ead58247b1a80e486_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a80b2536bb2d5ebe8dba11661cc041a6b_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_ab098119eda4ff6b9e9a2688d236fd087_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_acfa9c56b79e068f7c66f14e92de9621f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_w.html -http://dhcpd-pools.sourceforge.net/doxygen/open.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a10d3215fb947c2b6546716333fa88c45_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/streq_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c_a69d9fadc7a8a192c18a135bfd9fcd477_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_af69f81b09ea8f7dda0047edd06c717ec_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_ac4e38cd69abc98687080df02690b0a13_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_a6ff7f501e817a6d5708dd08021c2e421_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_ac2aea1f150dd3ed22f0e3b18e32a113e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_eval.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-cdefs_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a215b255f971df37ace7b513eb17fe1c5_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a326c24d8ac30f57dc1093a8d892a63f2_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a70c83b9ed7b98f15659fcc495c0c33e7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ab9ea58385c07f1cc5b25c984f3863d09_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a731587e35c47ecf04885633b03599652_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/realloc_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c_a8d4943c8a1e25200292b4ef049634914_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a13a5debfccee08fbf18b13489836d223_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/structtm__zone__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/annotated.html -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a967b15470f160c8fd28c1341724102f7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a1b070d7bdd59b4657266dbc7211bb637_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a02d48dd14871b22d59ec6d926585bbc8_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/close_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a447fa12ac876b90a916a3c3c9ca2ae38_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dosname_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/time_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_abc5552dd3521f63af288765527ac58dd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_addbac86d87d540f7e0eae5dbfac62c74_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a326c24d8ac30f57dc1093a8d892a63f2_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c_a69d9fadc7a8a192c18a135bfd9fcd477_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a1bc967d5ea7fe0eb36434dbd8d691363_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_a479425784d9994068114922b90b31cb3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/structmsghdr__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/dosname_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/string_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a0452a2ed54f78a15653afbf6332392eb_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_af26c9be673bce92b08b2360f243fe82b_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_aea890aa67c0b03876f74fe7c5d9b3a21_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c_a0bbc1c19c9c5d102bee9dc35629ddb68_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a8f4657ffdde1bf309ad71aa33db18607_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_ad2fa1bc4e69b1dc43ebfd8d3267ed503_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a8ded4a0c5645ded15779af1359945baa_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a8f6a5574ee6b32ba0f8c4d5479f0be57_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/memchr_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ac2aea1f150dd3ed22f0e3b18e32a113e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a8da7481eade065aeac55ce7888d89f4e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/math_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structrange__t__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a8ded4a0c5645ded15779af1359945baa_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a8f4657ffdde1bf309ad71aa33db18607_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a0b95b4561242161bc9984852693ba646_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/lseek_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/close_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a33dd4780047eb59063b6b353d6b08111_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype-h_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_ac370a831638bdd942e1624f9bc39f40f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a716fdc0e8e9f8eb875ae2eb3843ecc6d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c_aec069b4e8b397362f89086c53b93fd6a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a69334a531533dbafdeb52429a03a8db7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a7833a96194cc3bbd0d700eee41ced554_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2d9e24bfed149261c782fcab4ce8692a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a72a13ff831bb5a94d321d64b60e6414f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c_a40ba0199e64322af4bb99c03bb1c1f82_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a3326aee231570141ab97e7f6b41248a2_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_e.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_aeca9b417e9fd54335f9f505a322dfdf9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func.html -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ad37d1cbb778ea31fcf392d01168e4582_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_q.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_ab0c2382566dfdc1ca0533662069707fc_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h_abea862091e8ea669bdb0f61d796cf883_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/doxygen.css -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/ftello_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a6c41b841ecaf10025444de83ee2c8baa_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a6c59fc7c009709f28ae4ac9d4eb03337_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_ac67c11f4ac65504980dd8ba708ed10c6_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_a71fcb729570934d0d3449417ceafcc36_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/string_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a6c41b841ecaf10025444de83ee2c8baa_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c_a0076f520c787a3e5bf7f93f8fed92b2d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a33dd4780047eb59063b6b353d6b08111_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c_abea862091e8ea669bdb0f61d796cf883_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structsockaddr__storage.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mktime_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a1b62af37280706bf7493743ff3f7b4aa_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a1605d5d50f449eb8424526003277e547_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/inet_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/string_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/basename-lgpl_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c_a5d6ffddd86bd0d0ead58247b1a80e486_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_g.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a7be120852e24cbfe79867e585061e6b1_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a0452a2ed54f78a15653afbf6332392eb_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/isnanl_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/math_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_f.html -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a9003c507b2b2aa94774d12dc792c4644_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_aea4e0ee59e46ba5b8970e2386302d997_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_adf45b810e736753c178d8d354946bb34_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a0e9add19c779ddf55db924975784bb9a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/streq_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_b.html -http://dhcpd-pools.sourceforge.net/doxygen/structoutput__sort__coll__graph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_s.html -http://dhcpd-pools.sourceforge.net/doxygen/stat_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a42ca40e01f90e40ebc5f81b046a8c3f9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a005ad8f66c61b37e97cb88265a1ed9e8_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/filename_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/isnand_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a479425784d9994068114922b90b31cb3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c_a91f60ad5697278e44ceb08d1270de3c0_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_a0b95b4561242161bc9984852693ba646_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/stpncpy_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/stdbool_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a0b225ff0b5eabfd0121833eada84bc90_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a70c83b9ed7b98f15659fcc495c0c33e7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c_a65d4f9aeaba39f65092c351c6dfdd509_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_aa9630c1943de96498e73fd63cd3aeea9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_acd3044aba8bcf32ded0893f0ff7d43b3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_ab098119eda4ff6b9e9a2688d236fd087_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/math_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aee6e269dac533178d61f95b6e40bca68_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_af69f81b09ea8f7dda0047edd06c717ec_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af79cc26a51f94400dad990aa12ee9cc9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a873f17992895bdebb3714d48407fd8ee_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/malloc_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_ac3f4051200261d4de4d7ae14499f7552_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a9a202967000c0f6626da60dfc0820151_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_ac370a831638bdd942e1624f9bc39f40f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/introduction_8dox.html -http://dhcpd-pools.sourceforge.net/doxygen/fpurge_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a3f2949cd831a86aa5c94637f731dbabb_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a3738c2bfd96d1421c8328fc59754def3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a8912a4a34bc9896f479a861fb2abf26c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h_a3c20039c03aa27eb189d2f616c7e4ea7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c_a5bfd13c5fa75b56081afbca8926ef270_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_a8d477cdb5babb71198db76942cf221ba_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_aea890aa67c0b03876f74fe7c5d9b3a21_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/ftello_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/structrange__t__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_ac965ebad2452d2e0a6a0167730dbb39f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c_abea862091e8ea669bdb0f61d796cf883_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/isnanf_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c_a0bbc1c19c9c5d102bee9dc35629ddb68_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af53677934cc325455ae08fd8d7b63e73_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a12d0dc2ac6cfcfb1856516a9f144d831_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dir_1dacc5f4fcb865f1d9e042339dad3519_dep.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_abac51f489527192d5f26f40f22b9bca9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_ac3e38df28a8ab7d155dc6a519678463e_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c_a163324639129ef5e99aa4590d2c3c9a4_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a0bb0a1acabaea7c747a7c91faa7021b9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a3f2949cd831a86aa5c94637f731dbabb_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_adf45b810e736753c178d8d354946bb34_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_o.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_adbb84b1b34e89af30525e680a4da749d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a0e9add19c779ddf55db924975784bb9a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_fb441f6c77667ce4c9ebd4a5c47eafac.html -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_a6ff7f501e817a6d5708dd08021c2e421_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_aa9c700b9dc1b7a0ef866f39c53bb597f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a8f6a5574ee6b32ba0f8c4d5479f0be57_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_y.html -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_abb353ec32fd152026c853fea429fe857_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a0b95b4561242161bc9984852693ba646_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/structtm__zone.html -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_a8d477cdb5babb71198db76942cf221ba_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_ac769cb753ff117e3d678a5eca0014920_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_aa9630c1943de96498e73fd63cd3aeea9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a12d0dc2ac6cfcfb1856516a9f144d831_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/configmake_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ad24097c0e33982e7feba6d944de6c79b_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c_aece5d6e00c239ffd0847d8d2ef65bd57_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_acd1779a64a391e86585be63f19e02b84_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_aeca9b417e9fd54335f9f505a322dfdf9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h_abea862091e8ea669bdb0f61d796cf883_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_a0c17a0b44f572941d9f73518f99ea7ed_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a7833a96194cc3bbd0d700eee41ced554_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_adf3e6cacc74ba08a64f7dcf71e5e713b_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/isnanl_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_abc5552dd3521f63af288765527ac58dd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a447fa12ac876b90a916a3c3c9ca2ae38_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fdopen_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/strdup_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a8f31a939021567d81aecc876a322f2cd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a7833a96194cc3bbd0d700eee41ced554_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aa675337e02b12f20e5c7db26e55dbc15_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_k.html -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c_aec069b4e8b397362f89086c53b93fd6a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_a6b7d00933208bc409f540a94c2bf037e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sync_on.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c_a5d6ffddd86bd0d0ead58247b1a80e486_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a795f2801e747615274e2386df5c2a2a7_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_h.html -http://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strdup_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_f.html -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a795f2801e747615274e2386df5c2a2a7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/isnan_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a9a202967000c0f6626da60dfc0820151_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a9a202967000c0f6626da60dfc0820151_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/tabs.css -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/configmake_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/structtimespec.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aba0174c597c07f99509871850bd91540_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a914cc22e26f85a8e7f1f1e0183981817_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a1605d5d50f449eb8424526003277e547_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_i.html -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloc_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/intprops_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_ad2fa1bc4e69b1dc43ebfd8d3267ed503_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_ab0c2382566dfdc1ca0533662069707fc_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stddef_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/doc.png -http://dhcpd-pools.sourceforge.net/doxygen/folderopen.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_acfa9c56b79e068f7c66f14e92de9621f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a9003c507b2b2aa94774d12dc792c4644_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c_aae4231ac8066eb54ea1d9d12d551605c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c_aece5d6e00c239ffd0847d8d2ef65bd57_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/configmake_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_u.html -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a5de8be832ce3447e5017d3015083e514_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c_a28038203c46fba44ad2199db0c4f0f0a_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2682e4efd0b883d164311ca95d0ae4a0_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aea4e0ee59e46ba5b8970e2386302d997_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_ade697840b3ffb9c2ee7d9cefbe58edd6_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/bc_s.png -http://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a9f53f329ff6ddd0dcfb9327733ddda26_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/structleases__t.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a92db6afbd39d70dde0f830daaaa89be5_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c_aed830468f4d74daedeef23fbf3b9ff94_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a447fa12ac876b90a916a3c3c9ca2ae38_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c_abc5552dd3521f63af288765527ac58dd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a2d9e24bfed149261c782fcab4ce8692a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_ab150a3babfe529a34363379756778161_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/tab_s.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_ac18804b8270ca7e5842c347ea81ba1c3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c_ade80c9f68ef6d6aa778ae83a8ffa505f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/memchr_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_adbb84b1b34e89af30525e680a4da749d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/structshared__network__t__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a2f3ce877a460c8045e5ff1c0fc972ae9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a1a92d0c7a5b5de1bd6ab225ae4afe60a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c_a2fe5b0b4f6e117319dd79f867d0b0d71_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a9a202967000c0f6626da60dfc0820151_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_acd1779a64a391e86585be63f19e02b84_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_acad466143bdf98a55f3b27dc2b106a67_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a06bd8ee5bc9f5675f98e84908c0822e0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a716fdc0e8e9f8eb875ae2eb3843ecc6d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a0b225ff0b5eabfd0121833eada84bc90_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c_af106eda28a6b6a87e46539163466cad9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/time__r_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a9f53f329ff6ddd0dcfb9327733ddda26_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_ad34540a9deac940fc7ab265da606d484_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/types_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fpurge_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_a86399f38d27baaa31f48be22a403b94f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/limits_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a7833a96194cc3bbd0d700eee41ced554_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/progname_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_a86399f38d27baaa31f48be22a403b94f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_1dacc5f4fcb865f1d9e042339dad3519_dep.map -http://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a005ad8f66c61b37e97cb88265a1ed9e8_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/structoutput__helper__t.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a10d3215fb947c2b6546716333fa88c45_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_addbac86d87d540f7e0eae5dbfac62c74_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/arg-nonnull_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_aa352612502255860e778bbcbabaf9ffa_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a0bb0a1acabaea7c747a7c91faa7021b9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_abac51f489527192d5f26f40f22b9bca9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ad37d1cbb778ea31fcf392d01168e4582_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a8077600735c5be8a8eb6a1bc629d913d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_a.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a2f3ce877a460c8045e5ff1c0fc972ae9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_af90ebdd5ec007dce3b05cdb440aca915_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c_af106eda28a6b6a87e46539163466cad9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_acfa9c56b79e068f7c66f14e92de9621f_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a3f2949cd831a86aa5c94637f731dbabb_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c_ade80c9f68ef6d6aa778ae83a8ffa505f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c_a5d2c0879045afdfa6c14fab0ef874190_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_abc5552dd3521f63af288765527ac58dd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a13a5debfccee08fbf18b13489836d223_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_s.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_aea4e0ee59e46ba5b8970e2386302d997_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/minmax_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_acd3044aba8bcf32ded0893f0ff7d43b3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a3f6712cd433c2b58096f88d7a4e4c962_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_a.html -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af53677934cc325455ae08fd8d7b63e73_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/structmustach__itf.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a5d6e2957d43a40a81ccf80939bc88417_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_add5e5c22a85f4544a1157876ac6bd561_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_n.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_a8f20e7eee29fd0718ff7ccf4488a123e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a45866115a49b918fa6bbd5c32a5afe4f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/alloca_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a1b9e84bfc438c0a91dfec1f5610564ff_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a1b62af37280706bf7493743ff3f7b4aa_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_adbb84b1b34e89af30525e680a4da749d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/isnand_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_a0b225ff0b5eabfd0121833eada84bc90_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a50e26cb469c276b6d8be436982f6eddd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_q.html -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_acf43aaf176da8efb115f944f5c0b3c97_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a447fa12ac876b90a916a3c3c9ca2ae38_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/timegm_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c_ae0637f730cb7e22a3fc395f915de4c4c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a06bd8ee5bc9f5675f98e84908c0822e0_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/filename_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a8da7481eade065aeac55ce7888d89f4e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_ab150a3babfe529a34363379756778161_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a6c59fc7c009709f28ae4ac9d4eb03337_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a1b9e84bfc438c0a91dfec1f5610564ff_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a9a202967000c0f6626da60dfc0820151_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a914cc22e26f85a8e7f1f1e0183981817_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a20348831ccdaa3299eca89e4760d10f3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/isnanl_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strftime_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c_a57b5e6142bca46d9c0c6cfaeac9c7d72_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fstat_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a7833a96194cc3bbd0d700eee41ced554_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/doxygen.png -http://dhcpd-pools.sourceforge.net/doxygen/stpncpy_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/strerror_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a2a7fec798c8ed14d05e54b7263ee5a2c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a42ca40e01f90e40ebc5f81b046a8c3f9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a10d3215fb947c2b6546716333fa88c45_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/closeout_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/getdata_8c_a479425784d9994068114922b90b31cb3_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c_ae7bcd169e2b0ff19a30e39f399aa3256_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af9d8c46bd7f7597671518cd88751edf8_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h_a5d2c0879045afdfa6c14fab0ef874190_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a13a5debfccee08fbf18b13489836d223_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_aaa60fcb235125d2c98c600796d09aa64_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/isnand_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a0bb0a1acabaea7c747a7c91faa7021b9_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c_a5bfd13c5fa75b56081afbca8926ef270_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a7be120852e24cbfe79867e585061e6b1_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a3f6712cd433c2b58096f88d7a4e4c962_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c_a64fec4fca560e8ba4cd06562eb3e638d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/uio_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_v.html -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/progname_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a8a497ca6c728daf89446401e2bdda8a8_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/socket_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c_ae0637f730cb7e22a3fc395f915de4c4c_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_a8d477cdb5babb71198db76942cf221ba_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_ac4e38cd69abc98687080df02690b0a13_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/gettext_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_ac3e38df28a8ab7d155dc6a519678463e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/graph_legend.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a3f6712cd433c2b58096f88d7a4e4c962_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_w.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a873f17992895bdebb3714d48407fd8ee_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a3f6712cd433c2b58096f88d7a4e4c962_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/structtm__zone__coll__graph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c_a65d4f9aeaba39f65092c351c6dfdd509_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aba0174c597c07f99509871850bd91540_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a2f3ce877a460c8045e5ff1c0fc972ae9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dir_1dacc5f4fcb865f1d9e042339dad3519_dep.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_l.html -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/string_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/math_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/error_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c_a7d205fd04850ed90bf8bc835ea126c30_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c_ae4a0e5747966cb33e459ccd1039d1761_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_ac965ebad2452d2e0a6a0167730dbb39f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_acd1779a64a391e86585be63f19e02b84_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af90ebdd5ec007dce3b05cdb440aca915_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a1b62af37280706bf7493743ff3f7b4aa_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a9f53f329ff6ddd0dcfb9327733ddda26_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c_abea862091e8ea669bdb0f61d796cf883_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/unsetenv_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_af74bd088df09d457cf83a3d42ac29e3b_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h_a5d2c0879045afdfa6c14fab0ef874190_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a69334a531533dbafdeb52429a03a8db7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_p.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c_a64f71c9ec9854b427c74ba77e614343a_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/strstr_8c_a91f60ad5697278e44ceb08d1270de3c0_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_a6ff7f501e817a6d5708dd08021c2e421_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs.html -http://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_ac2aea1f150dd3ed22f0e3b18e32a113e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af69f81b09ea8f7dda0047edd06c717ec_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/realloc_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c_a8d4943c8a1e25200292b4ef049634914_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/progname_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a40233e26691ff7d661683d61fda5ab38_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a8ded4a0c5645ded15779af1359945baa_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h_a70c83b9ed7b98f15659fcc495c0c33e7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/bdwn.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a29b6cc93a084b0c7dc561f08d55354d6_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c_a0076f520c787a3e5bf7f93f8fed92b2d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mktime_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a02757b15583c2226e307a507fda96d43_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_ac55e14bbdafa3785df1c60c6d247eb61_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fseek_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_ac3e38df28a8ab7d155dc6a519678463e_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_aae4b54f2efc61bb94ad2c47303d624ad_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/hash_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_k.html -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a0452a2ed54f78a15653afbf6332392eb_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/c_09_09defs_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a8077600735c5be8a8eb6a1bc629d913d_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a9b5c96cfa1dddfcf68c0e4efce1c3ff1_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_ac4e38cd69abc98687080df02690b0a13_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/configmake_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a13a5debfccee08fbf18b13489836d223_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/__Noreturn_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_ab44c3ee94dab0397f09be71dbaa822e1_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_aa352612502255860e778bbcbabaf9ffa_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/fseeko_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a326c24d8ac30f57dc1093a8d892a63f2_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_aa9c700b9dc1b7a0ef866f39c53bb597f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_type.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ab19a868b6a6e09347b26d089a2cc85fd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_x.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a29b6cc93a084b0c7dc561f08d55354d6_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/error_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_ad34540a9deac940fc7ab265da606d484_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c_a8492be59e0766089d64d6e3ccbb0a1dd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/mbsinit_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/other_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/wctype-h_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a20348831ccdaa3299eca89e4760d10f3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c_a02d48dd14871b22d59ec6d926585bbc8_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_t.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a2a7fec798c8ed14d05e54b7263ee5a2c_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/error_8c_a59193ccd2c0f374087081ef2fd2b08ed_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_acad466143bdf98a55f3b27dc2b106a67_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_a31358cb0cac4ad5800d2a7c1bdb0aa40_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_f.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a716fdc0e8e9f8eb875ae2eb3843ecc6d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a447fa12ac876b90a916a3c3c9ca2ae38_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a9a0561234d71d331325249e4433c2236_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/float_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/itold_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/close_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fdopen_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/timegm_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ab9ea58385c07f1cc5b25c984f3863d09_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_af9d8c46bd7f7597671518cd88751edf8_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a873f17992895bdebb3714d48407fd8ee_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/basename-lgpl_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/fclose_8c_abb7b88116dfb59ee81e338cc78863ba2_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_adbb84b1b34e89af30525e680a4da749d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_af69f81b09ea8f7dda0047edd06c717ec_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_acad466143bdf98a55f3b27dc2b106a67_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a02757b15583c2226e307a507fda96d43_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/nav_h.png -http://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c_a64f71c9ec9854b427c74ba77e614343a_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/verify_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_aae4b54f2efc61bb94ad2c47303d624ad_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a479425784d9994068114922b90b31cb3_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a9f53f329ff6ddd0dcfb9327733ddda26_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/stat_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a41c1f91a38be989ef5e8fbb52444501f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a5a8f2bad2fdbc52980d30b10a5ab33be_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_ac2aea1f150dd3ed22f0e3b18e32a113e_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fdopen_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a731587e35c47ecf04885633b03599652_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a92db6afbd39d70dde0f830daaaa89be5_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c_abc5552dd3521f63af288765527ac58dd_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_a9a0561234d71d331325249e4433c2236_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/minmax_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a626f2d98b1663b423eda295eb3aa2b5d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/tab_h.png -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/limits_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8c_a92db6afbd39d70dde0f830daaaa89be5_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dirname_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/lseek_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_a45866115a49b918fa6bbd5c32a5afe4f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fflush_8c_ae4a0e5747966cb33e459ccd1039d1761_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fpurge_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unsetenv_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_ac67c11f4ac65504980dd8ba708ed10c6_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_ae7bcd169e2b0ff19a30e39f399aa3256_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fpending_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_a8f6a5574ee6b32ba0f8c4d5479f0be57_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h__dep__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/realloc_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_ab150a3babfe529a34363379756778161_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c_a0076f520c787a3e5bf7f93f8fed92b2d_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8c.html -http://dhcpd-pools.sourceforge.net/doxygen/other_8c_a873f17992895bdebb3714d48407fd8ee_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/analyze_8c_abc5552dd3521f63af288765527ac58dd_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_r.html -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h_a3c20039c03aa27eb189d2f616c7e4ea7_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_aeca9b417e9fd54335f9f505a322dfdf9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_a8077600735c5be8a8eb6a1bc629d913d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/fopen_8c_a57b5e6142bca46d9c0c6cfaeac9c7d72_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/structoutput__sort__coll__graph.map -http://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c_a656c0014bca06d6d9fd748a2f9dc4ab9_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_aa9c700b9dc1b7a0ef866f39c53bb597f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quote_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/minmax_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ab9ea58385c07f1cc5b25c984f3863d09_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/globals_defs_g.html -http://dhcpd-pools.sourceforge.net/doxygen/malloca_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/float_09_8h__dep__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/globals_func_b.html -http://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_a7ccc330a5672b0630e731e31d7f90cf0_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c_a3c20039c03aa27eb189d2f616c7e4ea7_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c_a86399f38d27baaa31f48be22a403b94f_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_a2f3ce877a460c8045e5ff1c0fc972ae9_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_ab19a868b6a6e09347b26d089a2cc85fd_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a005ad8f66c61b37e97cb88265a1ed9e8_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/functions.html -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h_source.html -http://dhcpd-pools.sourceforge.net/doxygen/setenv_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c_a8a497ca6c728daf89446401e2bdda8a8_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_ad37d1cbb778ea31fcf392d01168e4582_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/strtod_8c_a0c17a0b44f572941d9f73518f99ea7ed_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/graph_legend.png -http://dhcpd-pools.sourceforge.net/doxygen/ftell_8c_aae4231ac8066eb54ea1d9d12d551605c_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/time_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/structconf__t.html -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/output_8c_a1b62af37280706bf7493743ff3f7b4aa_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/struct__getopt__data.html -http://dhcpd-pools.sourceforge.net/doxygen/sort_8c_af90ebdd5ec007dce3b05cdb440aca915_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_ac965ebad2452d2e0a6a0167730dbb39f_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8c__incl.md5 -http://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c_a3738c2bfd96d1421c8328fc59754def3_cgraph.map -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a8077600735c5be8a8eb6a1bc629d913d_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c_a163324639129ef5e99aa4590d2c3c9a4_cgraph.md5 -http://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/freading_8c__incl.map -http://dhcpd-pools.sourceforge.net/doxygen/string_8h__dep__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_a71fcb729570934d0d3449417ceafcc36_cgraph.png -http://dhcpd-pools.sourceforge.net/doxygen/freading_8h.html -http://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8c__incl.png -http://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c_a27e69f6fec7e64d52e1fdc49c8c813d0_cgraph.png +https://dhcpd-pools.sourceforge.net/ +https://dhcpd-pools.sourceforge.net/dhcpd-pools.awk +https://dhcpd-pools.sourceforge.net/man.html +https://dhcpd-pools.sourceforge.net/doxygen/alloca_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/alloca_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/alloca_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/analyze_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/annotated.html +https://dhcpd-pools.sourceforge.net/doxygen/arg-nonnull_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/arg-nonnull_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/arpa__inet_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/basename-lgpl_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/c_09_09defs_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/c_09_09defs_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/c-ctype_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/classes.html +https://dhcpd-pools.sourceforge.net/doxygen/close_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/closeout_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/closeout_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/closeout_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/close-stream_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/close-stream_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/config_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/config_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/configmake_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/configmake_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/c-strcase_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/c-strcasecmp_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/c-strcaseeq_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/c-strncasecmp_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/dhcpd-pools_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/dir_000000_000001.html +https://dhcpd-pools.sourceforge.net/doxygen/dir_000001_000002.html +https://dhcpd-pools.sourceforge.net/doxygen/dir_1dacc5f4fcb865f1d9e042339dad3519.html +https://dhcpd-pools.sourceforge.net/doxygen/dir_97aefd0d527b934f1d99a682da8fe6a9.html +https://dhcpd-pools.sourceforge.net/doxygen/dir_fb441f6c77667ce4c9ebd4a5c47eafac.html +https://dhcpd-pools.sourceforge.net/doxygen/dirname_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/dirname_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/dirname-lgpl_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/dosname_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/dosname_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/doxygen.css +https://dhcpd-pools.sourceforge.net/doxygen/errno_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/errno_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/error_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/error_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/error_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/exitfail_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/exitfail_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fclose_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/fcntl_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/fcntl_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/fd-hook_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fdopen_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fflush_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/filename_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/filename_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/files.html +https://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/flexmember_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/float_09_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/float_09_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/float_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/float_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/float_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fopen_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fpending_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fpending_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/fpending_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fpurge_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/freading_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/freading_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/freading_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/fseek_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fseeko_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/fstat_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/ftell_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/ftello_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/functions_func.html +https://dhcpd-pools.sourceforge.net/doxygen/functions.html +https://dhcpd-pools.sourceforge.net/doxygen/functions_vars.html +https://dhcpd-pools.sourceforge.net/doxygen/getdata_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt1_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-cdefs_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-cdefs_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-core_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-ext_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt__int_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-core_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getopt-pfx-ext_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/getprogname_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/getprogname_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/gettext_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/gettext_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_a.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_b.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_c.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_a.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_b.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_c.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_d.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_e.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_f.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_g.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_h.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_i.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_k.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_l.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_m.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_n.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_o.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_p.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_r.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_s.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_t.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_u.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_v.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_w.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_x.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_defs_y.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_d.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_e.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_enum.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_eval.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_f.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_a.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_b.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_c.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_d.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_e.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_f.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_g.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_h.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_i.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_l.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_m.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_n.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_o.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_p.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_q.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_r.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_s.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_t.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_u.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_func_x.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_g.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_h.html +https://dhcpd-pools.sourceforge.net/doxygen/globals.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_i.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_k.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_l.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_m.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_n.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_o.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_p.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_q.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_r.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_s.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_t.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_type.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_u.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_vars.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_v.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_w.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_x.html +https://dhcpd-pools.sourceforge.net/doxygen/globals_y.html +https://dhcpd-pools.sourceforge.net/doxygen/graph_legend.html +https://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/hard-locale_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/hash_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/index.html +https://dhcpd-pools.sourceforge.net/doxygen/inet_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/inet_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/inet__pton_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/intprops_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/intprops_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/introduction_8dox.html +https://dhcpd-pools.sourceforge.net/doxygen/isnan_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/isnand_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/isnanf_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/isnanl_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/itold_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/limits_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/limits_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/limits_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/limits_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/localcharset_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/localcharset_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/localtime-buffer_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/lseek_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/malloc_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/malloca_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/malloca_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/malloca_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/math_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/math_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/math_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/math_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/math_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/mbrtowc_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/mbsinit_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/memchr_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/minmax_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/minmax_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/mktime_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/mktime-internal_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/msvc-inval_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/msvc-nothrow_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/mustach_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/mustach_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/mustach_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/mustach-dhcpd-pools_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/netinet__in_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/__Noreturn_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/__Noreturn_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/nstrftime_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/other_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/output_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/pathmax_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/progname_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/progname_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/progname_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/quote_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/quote_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/quotearg_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/quotearg_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/realloc_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/sampleoutput.html +https://dhcpd-pools.sourceforge.net/doxygen/search +https://dhcpd-pools.sourceforge.net/doxygen/search/all_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_10.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_11.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_12.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_13.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_14.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_15.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_16.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_17.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_18.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_b.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_c.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_d.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_e.html +https://dhcpd-pools.sourceforge.net/doxygen/search/all_f.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/classes_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_10.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_11.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_12.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_13.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_14.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_15.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_16.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_17.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_b.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_c.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_d.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_e.html +https://dhcpd-pools.sourceforge.net/doxygen/search/defines_f.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enums_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_b.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_c.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_d.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_e.html +https://dhcpd-pools.sourceforge.net/doxygen/search/enumvalues_f.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_10.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_11.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_12.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_13.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_14.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_15.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_16.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_b.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_c.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_d.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_e.html +https://dhcpd-pools.sourceforge.net/doxygen/search/files_f.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_10.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_11.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_12.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_13.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_14.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_b.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_c.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_d.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_e.html +https://dhcpd-pools.sourceforge.net/doxygen/search/functions_f.html +https://dhcpd-pools.sourceforge.net/doxygen/search/nomatches.html +https://dhcpd-pools.sourceforge.net/doxygen/search/search.css +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/typedefs_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_0.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_10.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_11.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_12.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_13.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_14.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_15.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_16.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_1.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_2.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_3.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_4.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_5.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_6.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_7.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_8.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_9.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_a.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_b.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_c.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_d.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_e.html +https://dhcpd-pools.sourceforge.net/doxygen/search/variables_f.html +https://dhcpd-pools.sourceforge.net/doxygen/setenv_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/socket_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/socket_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/sort_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/stat_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/stat_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stat_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stat-w32_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdalign_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdbool_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdbool_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stddef_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stddef_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdint_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdio_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdio_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdio_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdio-impl_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdlib_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/stdlib_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stpncpy_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/strdup_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/streq_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/streq_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/strerror_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/strerror-override_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/strftime_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/strftime_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/string_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/string_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/string_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/stripslash_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/strstr_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/strtod_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/str-two-way_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/structconf__t.html +https://dhcpd-pools.sourceforge.net/doxygen/structexpl.html +https://dhcpd-pools.sourceforge.net/doxygen/struct__getopt__data.html +https://dhcpd-pools.sourceforge.net/doxygen/structiovec.html +https://dhcpd-pools.sourceforge.net/doxygen/structleases__t.html +https://dhcpd-pools.sourceforge.net/doxygen/structmsghdr.html +https://dhcpd-pools.sourceforge.net/doxygen/structmustach__itf.html +https://dhcpd-pools.sourceforge.net/doxygen/structoption.html +https://dhcpd-pools.sourceforge.net/doxygen/structoutput__helper__t.html +https://dhcpd-pools.sourceforge.net/doxygen/structoutput__sort.html +https://dhcpd-pools.sourceforge.net/doxygen/structquoting__options.html +https://dhcpd-pools.sourceforge.net/doxygen/structrange__t.html +https://dhcpd-pools.sourceforge.net/doxygen/structshared__network__t.html +https://dhcpd-pools.sourceforge.net/doxygen/structslotvec.html +https://dhcpd-pools.sourceforge.net/doxygen/structsockaddr__storage.html +https://dhcpd-pools.sourceforge.net/doxygen/structtimespec.html +https://dhcpd-pools.sourceforge.net/doxygen/struct____time__t__must__be__integral.html +https://dhcpd-pools.sourceforge.net/doxygen/structtm__zone.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__socket_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__stat_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__types_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__types_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/sys__uio_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/tabs.css +https://dhcpd-pools.sourceforge.net/doxygen/time_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/time_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/time_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/timegm_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/time-internal_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/time__r_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/time__rz_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/types_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/types_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/tzset_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/uio_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/uio_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/unionipaddr__t.html +https://dhcpd-pools.sourceforge.net/doxygen/unionmemory__double.html +https://dhcpd-pools.sourceforge.net/doxygen/unionrpl__max__align__t.html +https://dhcpd-pools.sourceforge.net/doxygen/unistd_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/unistd_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/unistd_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/unistd_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/unsetenv_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/unused-parameter_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/verify_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/verify_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/warn-on-use_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/warn-on-use_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/wchar_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/wchar_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/wchar_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/wctype_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/wctype_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/wctype_8in_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/wctype-h_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/xalloc_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/xalloc-die_8c.html +https://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h.html +https://dhcpd-pools.sourceforge.net/doxygen/xalloc-oversized_8h_source.html +https://dhcpd-pools.sourceforge.net/doxygen/xmalloc_8c.html