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_ - 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