Options -p or --perfdata (in alarming mode) now enable the output of
additional performance data, i.e. used, touched and backup addresses per
subnet.
Signed-off-by: Manuel Hachtkemper <hacman@math.uni-bonn.de>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
For some unknown reason mac osx does not change NAN to negative in printout
when asking to do so. To get rid of false positive test results change the
sign of NAN to positive, that may break something for someone if there are
people expecting -NAN when devision with zero happens. But that sort of
breakage is pretty unlikely because it requires broken dhcpd.conf.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
I should consider writing tests before features. Sadly recently added new
options did not even work. Oh well, at least I did not release them before
noticing this.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Users want to know why write fail - was it because disk full, or destination
read-only, or IO error, and so on.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Not all markups were quite right. The output_* functions must return an
int. The rest were as a matter of fact correct.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This make the table output good looking, and allows users to click table
headings to sort data by column without rerunning the analysis.
Unfortunately this change is breaking change, meaning the old CSS tags are
no longer supported, nor partial html output that printed only the table.
Proposed-by: Aaron Paetznick <aaronp@critd.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Alarm criteria based solely on percentage was found to be difficult to be
tricky to setup in environments that has small ranges and big shared-nets
mixed up together. These two new options should help making alarming more
useful.
Requested-by: Frank Bulk <fbulk@mypremieronline.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Some users may not want to have alarms about ranges that are part of a
shared-network, so allow them to suppress such.
Requested-by: Frank Bulk <fbulk@mypremieronline.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Use error(3) function, that has gnulib portability fixes, instead of err(3)
and warn(3) family.
Reported-by: Anton Tkachev <antont@bk.ru>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Remove unnecessary html indentation, so that there is less page content
to transfer. Right align the network names, and IP's so that they are
easier to read. And ensure quoting is done correctly.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
For some reason missing information has been overlooked for years.
Perhaps there is aren't that many users who are interested of the touched
addresses.
Proposed-by: Aaron Paetznick <aaronp@critd.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
We have defined some shared networks with a couple of address ranges
and wanted to monitor the availability of free IP addresses in the
shared networks. We were wondering why in some cases there was no
warning, although one shared network's usage was above the threshold.
We found the reason. In output_alarming() the code was not skipping
"All networks", but missing the last shared network in the list.
Moving "shared_p++" to the beginning of the loop seems to solve the
bug.
Reviewed-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Wolfgang Steudel <wolfgang.steudel@tu-ilmenau.de>
While the dhcpd-pools might not be threading there is no reason why
software should use worse function when always correct alternative is
equally easy to use.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Some have configuration which combines small ranges such as one host, and
greater address ranges that are important to monitor. Especially the one
host ranges tend to cause a lot of false-positive alarms, as they are
immediately 100% full when a machine requests an address.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This will allow runnign dhcpd with cron, and when nothing is wrong emails
will not be sent.
Proposed-by: Dan Pritts <danno@umich.edu>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
The earlier behavior made alarming nearly impossible to use for shared
networks only, as they often are expected to be whole lot less full than
ranges. Unfortunately if a alarm level was exceeded either by range or
shared network the exit value changed. In most of the cases that lead
alarms to be sent, without sensible message.
Reported-by: Dan Pritts <danno@umich.edu>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Some systems, such as freebsd, does not have program_invocation_short_name
available. There are also problems finding AF_INET{,6} definitions.
CC: Peter Fraser <p_fraser@hotmail.com>
Reported-by: Ryan Steinmetz <zi@freebsd.org>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
The backup count was not printed at all. This bug was introduced in
version 2.17 (May 2012) when the uthash was taken in use.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
When ./configure --enable-doxygen is used one can browse internal api
documentation from docs/html directory.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Real dhcpd.leases file should always have ethernet address markup, but
test data or malformed files might not have. Even if the check is 99.99%
useless there are the corner cases, and crashing at them is not good.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Earlier ethernet address collection did not remove duplicated. Basically
the problem was the same as in problem fixed in commit
ae7747db87, but this time affecting only
the ethernet addresses. The fix is, as one can see, to make ethernet
collection to share structure with the lease, so that if one is wrong
both are wrong the same way.
Reported-by: Gilles Bouthenot <gilles.bouthenot@univ-fcomte.fr>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
And remove extra empty lines where they are not needed.
Reviewed-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Gilles Bouthenot <gilles.bouthenot@univ-fcomte.fr>
The DHCP version is determined according to the first IP address that
appears in the configuration file. Caveat; counters are of native long
type. Since IPv6 address space has 2^128 addresses, they are subject to
overflow.
[Sami Kerola: This commit also fixed a percent sorting bug, which has
been broken always. See changes ret_percent() for the fix.]
CC: LI Zimu <lzm@cernet.edu.cn>
CC: Xing Li <xing@cernet.edu.cn>
Reviewed-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Cheer Xiao <xiaqqaix@gmail.com>
There were too clever tricks done with first and last. Earlier the aim
was to minimize '<=' and '>=' by fiddling with the numbers at the time
when they were saved. While the program logic seemed to work there were
some off by one mistakes, resulting to a count error. Even worse there
is not even that many of such comparisons, so that one cannot really even
justify added complexity. I really hope this patch is last this kind fix
ever needed.
Reported-by: Cheer Xiao <xiaqqaix@gmail.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This will mean better portability, and a good reason to get rid of
various portability autotools directives which where part of this
project.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
output.c:819:17: warning: comparison of integers of different signs:
'int' and ' unsigned int' [-Wsign-compare]
for (i = 0; i < num_ranges; i++) {
~ ^ ~~~~~~~~~~
output.c:832:17: warning: comparison of integers of different signs:
'int' and ' unsigned int' [-Wsign-compare]
for (i = 0; i < num_shared_networks; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~
Signed-off-by: Sami Kerola <kerolasa@iki.fi>