The program counts quotes, which is never true/false value, and one of
the symbolic parse state values was missed in bd5ee58.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
No other function than mergesort_ranges() can use the merge(), so calling
it with rather generic name and making it static seems right to me.
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>
Gilles reported the full-json is currently broken, which the new check
demonstrates. Luckily the issue occurs only when active leases details
are being queried, leaving the count to be correct. That said bug is a
bug, and that should be corrected.
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 gnulib will set AC_GNU_SOURCE equivivelant if necessary. The awk is
relevant only for contrib stuff, and compiler program was something I had
not understood quite right some years ago when I added it.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
The counting of total maximum address space seems to be broken at the
moment, and the check is expected to fail until a counting fix is
available.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
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>
I have no idea why that was there. My guess is that I had no idea at the
time I added the line what it does.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Making dhcpd.conf and dhcpd.leases file references being dynamic causes
manual contents being replaced at compile time, so make some other data
items dynamic as well.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
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 allow nth_field function to begin from first field, and stop
immediately when it ends, which makes function much more simple and quite
a bit quicker.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
At the other day I where wondering why so much time was spent on analysis
function, when I realized regression. At the time uthash was introduced
to the project range sorting got to be dropped, which caused same leases
to be walked in analysis time after time.
Now when the regression is removed, and the test cases run about 28% over
all quicker. The rule of thumb is that the greater the data set the
bigger is the benefit having this fix. My largest test data is now
roughly 35% faster.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>