Revision history for Net-ISC-DHCPd

0.1709   Wed Feb  3 18:47:29 UTC 2016
       - shared-network with periods now parses correctly

0.1707   Thu Feb 19 05:05:07 UTC 2015
       - dropped LazyInit because I don't like the way it works

0.1706   *unreleased*
       - Subtype Mac in Types.pm now accepts more macaddress formats (it
         converts them to the format ISC expects)
       - HardwareEthernet now uses the Mac subtype instead of Str

0.1705   Wed Aug 20 05:38:54 UTC 2014
       - moved slurp into children to simplify main parser
       - README is now autogenerated from pod
       - added SEE ALSO
       - passed $fh into parse instead of using _filehandle (speed fix)
       - change from regex method to $regex var
       - removed BUILD from parse stage
       - changed the way comments are parsed (speed fix)
       - various minor tweaks to the parser for speed
       - simpler parent and root methods
       - testing cleanup
       - quoted key supports spaces in the name now
       - changing to NetAddr::IP::LazyInit (speed fix) (more testing needed)
       - shared-network updated, now can contain a host entry
       - subnets updated to be able to contain classes
       - Include and Function now use Config.pm's children()
       - Functions are now full fledged objects, meaning they can contain
         keyvalues, classes, conditionals, blocks, etc.

0.1704   Fri Aug  1 22:19:43 UTC 2014
       - Fixed Leases.pm to support ip => ip_address mapping
       - Fixed filename_callback to be defined at the root

0.1703   Mon Jul 28 08:05:12 UTC 2014
       - POE::Filter::DHCPd::Lease version bump to 0.0701 to fix parse errors
       - speed tests added for Leases
       - added support for using fh filehandle argument for Leases
       - fixed Lease parser to support host {} and comments
       - added find_all_children method to recursively find objects of a
         certain type, like hosts or subnets
       - bugfix for IPv6 NetAddr::IP support.  Changed 'canon' method to
         'short' because they do almost the same thing and 'short' is
         available in older versions of NetAddr::IP
       - changed README file with the new issues URL
       - changed fixed-address and hardwareethernet to be standalone objects
         instead of keyvalues.  This makes host entries easier to parse
       - added support for filename_callback so that includes can have their
         paths changed before being parsed

0.1702   Mon Jul 21 04:25:45 UTC 2014
       - fixing version format
       - changed bugtracker to github because it's easier to manage
       - added more tests for remove_<class>
       - bumped minimum perl version to 5.12.5.  That was the minimum version
         I could make the code run on.
       - removed children must be grouped in add_child to speed up parsing
       - changed parser to load child modules on demand (memory and speed
         improvements)
       - recursive includes (include files can include other files)
       - added speed test for larger DHCP files

0.17.1   Wed Jul 16 08:45:36 UTC 2014
       - Added support for the Failover Peer statement
       - Added Authoritative.pm module (fixes gh#4)
       - Fix type coercion in OMAPI module
       - support for range x.x.x.x;
       - Bumping minimum perl version to 5.12.5.  5.10.1 fails from getpos
         errors due to changes in the way filehandles work.  5.12.5 will be
         the version I test releases against.

0.17     Sun Jun  1 22:31:11 UTC 2014
       - Added make_immutable everywhere which greatly speeds up everything
       - fix to 00-load.t to remove old module and add new ones

0.16     Sun Jun  1 22:31:11 UTC 2014
       - Specifying minimum perl version of 5.8.3
         * Moose should require something similar so I don't think this will
         * break anyone.
       - [RT68736] Unit tests for pools
       - [RT60044] Conditional (if/then/else) support
       - [RT67742] Class support
       - [RT81382] Braces on the same line/weird formatting
       - [RT81269] OptionSpace does not require encapsulate
         * This breaks compatibility with old optionspace names
       - Support for named groups
       - Support for basic DHCPv6 commands
       - Subclass support
       - Added more child nodes to Include
       - Added zone statement
       - Whitespace changes in most regexes to allow non-standard configs
       - Multiline support for all commands
         * If a semicolon isn't found then a line will be concatenated until a
         * valid statement is found
       - method auto names are now based on $attr instead of $name
         * this affects things like find_classes, which used to be find_classs

0.15     Fri May  2 16:38:56 UTC 2014
       - [RT81567] Test failures due to hash randomisation in perl 5.17.6
       - [RT90966] New Moose may break your code

0.14     Thu Oct 25 19:49:38 2012
       - [RT80374] Debug is enabled with DHCP_OMAPI_DEBUG=1
       - [RT80373] Changed part of the documentation

0.13     Wed Oct  5 12:43:42 CEST 2011
       - Add custom warnings group for Role->parse() warnings. This can be
         silenced with (no warnings 'net_isc_dhcpd_config_parse';)
       - Add example config parser script
       - Add more child nodes to Config::Include
         * Net::ISC::DHCPd::Config::Key
         * Net::ISC::DHCPd::Config::Group
         * Net::ISC::DHCPd::Config::Block
       - Add more child nodes to Config::Pool
         * Net::ISC::DHCPd::Config::Host

0.12     Tue Oct  4 15:06:11 CEST 2011
       - [RT71372] Contributor: Michael Rath
       - Change child nodes has the same order as input
       - Config::Block has _body (ArrayRef) instead of body (Str)
       - Config::Block body text is indented as expected
       - Config::Key->_build_regex handle quotes
       - Add trailing ";" to Config::Key block (not sure why though...)
       - Add support for comments before elements. Generated output will
         also have comments

0.11     Mon Oct  3 21:17:46 CEST 2011
       - [RT71372] Add missing ::Config::Group to children
       - [RT71372] Quick fix to missing blocks
       - [RT71372] Fix parsing of "next-server" inside subnet
       - [RT71372] Add parsing of key{} blocks
       - Add support for logging with ISC_DHCPD_TRACE=1

0.1001   Sun Feb  6 19:34:21 CET 2011
       - Fix failing test t/15-server.t: Can't exec "t/data/dhcpd3"
         http://www.cpantesters.org/cpan/report/407056b2-1a81-11e0-9650-a8c85b103c27

0.10     Fri Jan  7 07:39:58 CET 2011
       - Fix (RT60044) partially fix for this ticket: OptionSpace can end
         without encapsulation.
         TODO: Conditions (if/elsif/else) are not yet supported
         Contributor: Nikolay A Petrov
       - Fix (RT64173) remove set() fom pod, since it does not exist
         Contributor: kornerr
       - Change (RT64174) OMAPI lease attribute "ends" can be modified
         Contributor: kornerr

0.09     Tue Aug 10 20:50:37 CEST 2010
       - Add find_foos() and remove_foos() methods for child Config objects
       - Add find_leases() method for child Lease objects
       - Add shared-network can have a name
       - Add Net::ISC::DHCPd::Role::Lease
       - Change max one "filename" per Host and Subnet object
         - This needs to be improved: Check is only run on add_filename()
       - Change $dhcpd->test(...): errstr() can hold the output
         from the dhcpd3 binary, instead of the numeric exit value.
       - Change "leases" attribute has auto_deref
       - Improved documentation

0.0802   Tue Aug  3 08:23:56 CEST 2010
       - Remove html/

0.0801   Mon Aug  2 19:34:37 CEST 2010
       - Fix POD links: L<...>

0.08     Mon Aug  2 14:03:35 CEST 2010
       - Add (RT59816) support for "include ...;"
         generate() can either flatten includes or just print the
         "include" statement. parsing of includes is a manual
         operation.
         Contributor: napetrov
       - Add Function methods to manipulate body
       - Change filehandle is replaced with _filehandle
       - Change attributes holding a file is changed from Str
         to File (from MooseX::Types::Path::Class)
       - Change +attr=>default with builders

0.07     Fri Jun 18 01:30:15 CEST 2010
       - Add (RT58391) OMAPI lookup by hardware_address, even though
         it does not appear to described in the dhcpd manual (?)
         Contributor: Jeff Bair
       - Add (RT58391) post check after OMAPI read() to see if lookup
         attributes match retrieved data. This is because omapi/omshell
         seem to have a bug where lease lookup with "state" is ignored.
         This is subject for change!
         Contributor: Jeff Bair

0.06     Thu Jun 17 20:23:51 CEST 2010
       - Fix version number (didn't know _ made it a dev release)
       - Fix _DEBUG is default off (0)
       - Change OMAPI::Meta::Class is renamed to OMAPI::Sugar
       - Add (RT58391) t/20-omapi.t test which proves (?!) that state() is
         ignored by omapi/omshell.

0.05_02  Fri May 28 23:40:21 CEST 2010
       - Fix RT57947: Minor improvement for Net::ISC::DHCPd::OMAPI:
         "key" not required for localhost
         Contributor: Patrick

0.05_01  Sat Apr 24 16:52:43 CEST 2010
       - Fix RT56775: 10-leases-parse.t fails in non-UTC timezones
         Contributor: Alexey Illarionov

0.05     Mon Dec  7 21:16:00 2009 +0100
       - Add OMAPI write() and remove()

0.04     Wed Sep 23 01:06:58 2009 +0200
       - Add Supports ArrayRef[HashRef], when setting attributes
       - Change depth attribute is not in use, so therefore lazy

0.03     Tue Juli 21 15:41:01 CET 2009
       - Fix RT49694: Problem in generate when in a host section a
         "filename "pxelinux.0";" entry exists
         Contributor: Nito Martinez
       - Add types for coercion support
       - Can talk with the DHCP server, using omshell
        + stop remote server
        + read leases
        - write leases (should work)
        + read host
        - write hosts (should work)
        - read/write groups (should work)

0.02     Tue Juli 21 15:41:01 CET 2009
       - Add parse leases
       - Add test leases and config file

0.01     Sun May 17 23:45:00 CET 2009
       - Add parsing of config works
       - Add generating config works