dhcpd-pools -- History of visible changes.

Copyright (C) 2006- Sami Kerola <kerolasa@iki.fi>
See the end for copying conditions.

Please send dhcpd-pools bug reports to kerolasa@iki.fi.

gpg: Signature is crated using RSA key ID 8ED396E37E38D471A00530D3A9553245FDE9B739.


Version 2.29
Boris Lytochkin (1):
      introduce -A arg: treat single subnets as shared-network with CIDR as their name

Manuel Hachtkemper (1):
      alarming: add additional performance data

Sami Kerola (47):
      tell in README when ./bootstrap is needed
      add dhcpd-pools website content to a subdirectory
      add sitemap url to robots.txt file
      use long options in .indent.pro file
      webpages: make index page mobile device friendly
      webpages: compress sitemap.txt file
      getdata: flip ranges if they are in greater smaller order
      tests: add range definition flip test
      contrib: add archlinux package build file
      contrib: remove unnecessary cgi script
      contrib: remove awk file duplicate
      getdata: get rid of remaining stdbool usage
      argument parsing: fix compiler warning
      add dhcpd-pools Description Of A Project file
      fix doap file git repository and license section
      output: check alarming mode can output successfully
      build-sys: update bootstrap from gnulib
      build-sys: update gnulib .gitignore file
      analyze: use while() when for() is less fit to purpose
      build-sys: default to ./configure --enable-silent-rules
      build-sys: always use restrict found by autoconf
      docs: fix couple typos and improve a sentence in README
      output: remove unnecessary increment
      portability: add gnulib modules earlier missing
      remove const and pure function attributes
      man: improve synopsis and output limit
      man: remove old html table only option argument from manual
      getdata: report position in config file when parsing fails
      output: fix timestamp localization on html page
      output: add include avoid referringt to undefined definition
      getdata: remove POSIX_FADV_NOREUSE
      style: use same argument names in header and source file
      contrib: Klaus Slott told about opensuse package
      getdata: fpos_t is not easy to print correctly
      lib: update .gitignore
      fix typo
      variable: add const to print_mac_addreses_tmp
      lib: update .gitignore
      add --ip-version option to force either IPv4 or IPv6 analysis
      lib: update .gitignore
      getdata: add cidr range support
      build-sys: update bootstrap from gnulib
      docs: update doxygen configuration file
      docs: tell what needs to be done when releasing new version
      docs: add build instruction link to the project web page
      docs: update maintainer gpg key
      release: 2.29

Version 2.28
Sami Kerola (26):
      portability: Solaris 10 does not have err.h
      fix couple compiler warnings
      make binary exec path dynamic in scripts referring to it
      update doxygen.conf file
      add --snet-alarms option to suppress excess range alarms
      add --warn-count and --crit-count options to suppress alarm noise
      improve README file instructions
      make html output to use Bootstrap and DataTables
      fix typo in README
      correct return value FIXME items
      use more descriptive names in limit bits enum definition
      remove upper limit of sort order definitions
      fix protocol specifier in html output
      use bitmap for booleans and other config that has known size
      simplify output format selection, and passing
      fix doxygen build
      fix improve variable names
      print include system error message when output fails
      drop a core when bug condition happens
      make usage() easier to read
      unify quotation in error messages
      add --warn-count and --crit-count test, and fix related bug
      test all sorting options
      change NAN markup to make tests work on mac
      fix out of tree build tests
      release: 2.28

Version 2.27
Sami Kerola (9):
      docs: remove very basic git usage info
      docs: remove todo items that will never happen
      output: remove empty element from xml
      add touched addresses counts to xml and json reports
      add xml format check
      improve html output
      add hint about configure options to README
      man: fix character class change
      gitignore: update gnulib file list
      release: 2.27

Version 2.26
$ git shortlog v2.25..v2.26
Sami Kerola (15):
      news: add the note about .sig pgp key id
      reindent all files
      declare global variables only once
      add appropriate sorting function for struct leases_t
      update kernel.org url in README
      getdata: fix buffer-overflows reported by address sanitizer
      update bootstrap from gnulib
      getdata: fix buffer overflow [AddressSanitizer]
      other: reduce variable scope
      output: prefer thread safe function localtime_r()
      tests: add regression test to avoid shared-net off by one alarming
      issue
      output: avoid division by zero
      other: disallow unsigned counter ever to have minus value
      maint: remove unnecessary braces, spaces, update gnulib .gitignore
      release: 2.26

Wolfgang Steudel (1):
      alarming: include last shared network in alarming [off by one]

Version 2.25
$ git shortlog v2.24..v2.25
Sami Kerola (14):
      build-sys: use more strict method to check __builtin_expect
      getdata: add missing HAVE_POSIX_FADVISE protection
      getdata: fix consecutive range definition regression
      man: add tip analysis of include files can be useful
      thanks: add Fredrik LysÃ©n & Conor McCarthy
      generic: use pure and const function attributes when possible
      tests: fix testing error
      output: make nagios output have performance data
      build-sys: update gitinore file
      output: use symbolic exit values for nagios commands
      build-sys: update bootstrap script
      build-sys: require automake 1.12 to get working test-driver
      contrib: add release siging key to contrib/
      release: 2.25

Version 2.24
$ git shortlog v2.23..v2.24
Sami Kerola (22):
      build-sys: update configure.ac
      output: make output limits to apply to alarm return values
      tests: add alarming tests
      output: allow alarming, in case of success, be silent
      tests: fix tests to use the new OK printing limit
      docs: inform how the limits affect to printing when alarming is in use
      output: allow user to ignore small ranges and shared networks
      tests: test small network alarm ignoring
      docs: add an example how to use limits with alarming
      thanks: Dan Pritts
      xstrstr: speed up analysis by avoiding string comparisons
      other: memcmp() is tiny bit quicker than strncmp()
      build-sys: update gnulib modules
      build-sys: AC_PROG_CC_C99 is obsolete; use AC_PROG_CC
      getdata: use correct file caching advice
      analyze: remove unnecessary function
      getdata: memccpy() is better than own similar function
      getdata: split busy function to segments used via function pointer
      various: split functions to IPv4 and IPv6 versions
      various: fix memory leaks
      getdata: fix one ip ranges when they have trailing spaces in definition
      release: 2.24

Version 2.23
$ git shortlog v2.22..v2.23
Sami Kerola (3):
      gnulib: add gnulib modules
      build-sys: update bootstrap from gnulib
      release: 2.23

Version 2.22
$ git shortlog v2.21..v2.22
Cheer Xiao (1):
      getdata: treat binding states abandoned, expired and release like free

Sami Kerola (19):
      tests: add complete check including multiple ranges and shared networks
      include: add missing declarations to dhcpd-pool.h
      cppcheck: fix variable scoping
      build-sys: update .gitignore
      build-sys: add git-version-gen and test.sh to release package
      docs: fix spelling mistakes in manual page
      build-sys: ensure distribution has version file
      build-sys: update git-version-gen from gnulib
      tests: binding states commit needs to be reflected in expected results
      build-sys: reorder gnulib macro in relation to C standard
      getdata: posix_fadvise() error checking
      getdata: certain input files caused SIGSEGV
      tests: check how command works with invalid input
      getdata: make a lease address detection more robust
      getdata: make single address ranges work
      tests: add a test for one ip range
      build-sys: fix gnulib function order
      build-sys: use non-recursive build
      release: 2.22

Version 2.21
$ git shortlog v2.20..v2.21
Cheer Xiao (10):
      IPv6: add DHCPv6 support
      sort: Use a comparer instead of returner
      sort: Get rid of global comparer
      counting & output: Convert all counters to double
      fix: Put prototype of field_selector back to dhcpd-pools.h
      sort: let field_selector return NULL at the end
      counting: Let get_range_size return double
      sort: let comp_* functions compare double
      tests: update expected/v6
      output: fix doc of output_double

Gilles Bouthenot (5):
      output: add json format support
      json output: add newline at end
      json output: remove useless, empty fields
      json output: bugfix: correct range specify only first ip
      contrib: add munin plugins

Sami Kerola (29):
      build-sys: remove c++ compiler check
      tools: add indent command configuration file
      tests: add basic tests
      build-sys: update .gitignore
      tests: add v6 check
      output: remove unnecessary new line printing
      build-sys: more clean ups
      json output: use defined output file for all printing
      tests: add json tests, and make fail output loud
      ouput format: fix active lease printing
      output ethernet: do not crash if ethernet is missing
      docs: add doxygen tags, configuration file, and autotooling
      backup counting: fix output regression
      clean up: remove unused functions
      clean up: move code to more proper location
      hash: make delete to use HASH_ITER if it is available
      clean up: move global variables to config structure
      clean up: use enum as symbolic bit masks
      clean up: convert parsing magic numbers to symbolic values
      clean up: rename get_order() to merge() and mark static
      clean up: fix few indentation slips
      getdata: be consistant with symbolic numbers
      smatch scan: fix few warnings
      build-sys: allow tests run parallel
      build-sys: update .gitignore files
      docs: thanks to Cheer Xiao this software has IPv6 support
      tests: fix make distcheck
      docs: fix doxygen make distcheck breakage
      release: 2.21

Version 2.20
$ git shortlog v2.19..v2.20
Cheer Xiao (3):
      ignore /gnulib/
      Replace all htonl in getdata.c with ntohl.
      Fix spelling mistakes.

Sami Kerola (20):
      analyze: use simpler comparison
      analyze: sort ranges before analysis
      sort: fix if else return statements
      getdata: fix if else return statements
      analyze, getdata: write functions in frequency order
      getdata: stop looking after interesting field
      getdata: skip strings before nth_field analysis
      analyze: use gnulib
      sort: fix get_order() if else return statement
      (un)likely: use __builtin_expect to inform expected path
      header: let gnulib do what it is best of
      xstrstr: add function attributes
      docs: fix spelling mistakes
      getdata & analyze: fix first_ip and last_ip arithmetics
      man: use configured dhcpd.conf and dhcpd.leases paths
      build-sys: update gitignore
      build-sys: clean up configure.ac
      build-sys: make alarm warning & critical default configurable
      man: fix errors in alarm warning and critical options text
      release: 2.20

Version 2.19
$ git shortlog v2.18..v2.19
Sami Kerola (19):
      alarming: make native nagios support to dhcpd-pools
      docs: add examples to manual page
      docs: add note how to limit alarming scope
      contrib: add nagios.conf example
      build-sys: create only xz compressed distribution package
      all: fix compiler warninings
      style: fix few indentation issues
      build-sys: use AM_CPPFLAGS rather than INCLUDES
      output: fix sign-compare warning [clang]
      build-sys: add what autoscan found bein missing
      build-sys: be conservative about posix_fadvice
      docs: clarify man page
      build-sys: add gnulib
      build-sys: clean gnulib & autotools checks
      performance: add few restict and const key words
      build-sys: remove files which where added by accident
      docs: mention gnulib in README file
      build-sys: update gitignore
      release: 2.19

Version 2.18
$ git shortlog v2.17..v2.18
Ryan Steinmetz (1):
      build-sys: make build work under FreeBSD

Sami Kerola (2):
      build-sys: add --with-uthash=DIR ./configure option
      analyze: a lot of IP counts being missed

Version 2.17
# git shortlog v2.16..v2.17
Enno Gröper (1):
      analyse: critical bug in the counting code

Sami Kerola (16):
      dhcpd-pools.h: move string.h to include
      dhcpd-pools.h: move string.h to include
      docs: TODO update
      Merge branch 'master' of
      ssh://dhcpd-pools.git.sourceforge.net/gitroot/dhc
      build: smatch compiler warnings fixed
      docs: enhance manual page readability
      all files: use restrict key word for all pointer arguments
      build-sys: C99 has true and false
      docs: update thanks
      TODO: update bugs
      contrib: add first .awk algorithm test version to contrib
      docs: update TODO
      getdata: fix configuration parser bug
      getdata: do not mix boolean and int data types [cppcheck]
      output: verify stream status when closing files
      build-sys: update news for release v2.17

Version 2.16
# git shortlog v2.15..v2.16
Sami Kerola (25):
      docs: help screen & man page
      docs: add missing full-html flag
      headers: include-what-you-use fixes
      other: free backup ranges
      prepare_memory bug: initialization missing
      licensing: use FreeBSD license (was GNUv3)
      parse_leases: exit at read error
      getdata: realloc instead of asserting
      getdata: potential overflow due unit change
      bug: use uint32_t for IP numbers
      analyze: use more logical variable names
      getdata: initialize memory
      all: include-what-you-see fixes
      analyze: debugging leftover removed
      THANKS: add Ahmed AL Dakhil
      maint: coding style fixes
      output: change to full html behaviour
      build-sys: autotools configure.ac update
      docs: NEWS update
      docs: remove version from manual page
      licensing: set placeholder properly
      bug: use uint32_t for IP numbers
      build-sys: ignore gprof & gcov files
      getdata: new xstrstr function for performance
      other: fix two warnings
      build-sys: update news for release v2.16

Version 2.15
# git shortlog v2.14..v2.15
Sami Kerola (13):
      dhcpd-pools.h: function attributes declarations
      dhcpd-pools.h: indentation fix
      getdata.c: initialize variables to have safe values
      autotools: point correct location of src
      flose files & free memory when not needed
      dhcpd-pools.h: portable program_invocation_short_name
      build-sys: use git version as program version output
      build-sys: git describe listed wrong tag
      getdata: increase max number of shared networks
      clean_up: checking errno at exit does not make sense
      make range allocation dynamic
      shared network names to be dynamically allocated
      thanks: list update

Version 2.14
# git shortlog v2.13..v2.14
Sami Kerola (18):
      Fix to range dynamic-bootp specifier
      Automake 2.64 is needed.
      Arithmetic comparisons to be same way around
      The xml output is dirty and marked as FIXME
      Optimization on basis of gcov
      Use what libc will provide
      Not a syscall error, warn should be warnx.
      Impossible to reach sections removed
      posix_fadvice advice parameter change
      Do not analyze if sort field selector is rubbish.
      autogen.sh: test bug fix & clean up to messages
      autogen.sh: typo fix in previous commit
      Copyright notice change to GNU license 3
      Allow xml output with leases to use output file
      INSTALL file is unnecessary
      fix to safe_strdup prototype.
      ignore INSTALL file
      configure.ac: autoscan updates
      Release 2.14

Version 2.13
* Autoreconf to get ./configure et al up to date.
* PACKAGE_URL introduced to configure.ac
* Dominic Germain sent xml, and detailed xml, outputs patch.
* Dominic Germain pointed out include directive bug, which broke
  shared network name.
* Anonymous contrib addition snmptest.pl which should provide
  some sort of SNMP integration.
* Range statements have dynamic-bootp flag and it no longer will
  break analysis.

Version 2.12
* Dan Thorson fixed formating.
* Roar Pettersen pointed out posix_fadvice portability bug.
* Roar Pettersen pointed out fclose(stdout) portability bug.
* Clean up will ran at exit instead of end of program.
* Stian Øvrevåge pointed out shared network assignment bug.

Version 2.11
* Dan Thorson fixed memory boundary check for backup leases.

Version 2.10
* posix_fadvice to make read-ahead quicker.
* Dan Thorson contributions:
  o HTML output to be more beatyful.
  o Full HTML output.
  o Finglish to English translation.
* Usage of autotools more properly.

Version 2.9

* Include files & shared network name bug fixed.
* If first range had no leases analysis crashed.
* Linux style indent.

Version 2.8
* dhcpd-pools.c: Default will skip merge sorting.
* getdata.c: Interpretation of range wrote without spaces fixed.
* getdata.c: Shared network name ending to brace fixed.
* Failover backup IP counting.
* CSV output bug fixed.

Version 2.7
* Some automake files to help make install pass without complains.
* Function names to error messages where they where missing.
* Some sort options where missing from help screen.
* Manual page update.
* Multi key sorting.
* Range flip to support reverse order printing.
* Output function & errno caused FreeBSD-7.0 to exit with error
  when there was no trouble.
* Code cleanup.

Version 2.6
* I forgot to follow include when I rewrote dhcpd.conf parser.
* And the dhcpd.conf parser was still quite stupid.
* All networks count was broken. Results before this version where bogus.
* Feature: Touched IP counting.

Version 2.5
* Feature:
* Reverse order sorting
* Option parsing fixed.
* FreeBSD-7.0 output to file did not work.
* Completely new dhcpd.conf parser.

Version 2.4
* Feature:
* Range output sorting.

Version 2.3
* Bugfixes:
* Ranges was matching strings that where not ranges.
* Unchomped new lines made ascii raport to look bad.


Version 2.2
* Bugfixes:
*. No ranges in dhcpd.conf -> crash.
* Better error messages.
* Possibility to limit output.
* Dhcpd.conf include statement will be followed.


Version 2.1
* Bugfixs:
*. Range statements misinterpred.
*. CSV output format.
*. Manual page.


Version 2.0

* Version 1.x was awk script this is one done with C.
* Only new feature is HTML output.


-------------------------------------------------------
Copying information:

Copyright (C) 2006, Sami Kerola <kerolasa@iki.fi>

   Permission is granted to anyone to make or distribute verbatim
   copies of this document as received, in any medium, provided
   that the copyright notice and this permission notice are
   preserved, thus giving the recipient permission to
   redistribute in turn.

   Permission is granted to distribute modified versions of this
   document, or of portions of it, under the above conditions,
   provided also that they carry prominent notices stating who
   last changed them.
