The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Build.PL 925
Changes 07
LICENSE 44
MANIFEST 11
META.json 514
META.yml 1717
cpanfile 210
dhcp.patch 1220
dist.ini 53
lib/Net/DHCP/Constants.pm 17
lib/Net/DHCP/Packet.pm 618
t/author-test-eol.t 32
t/release-distmeta.t 32
t/release-kwalitee.t 72
t/release-pod-coverage.t 93
t/release-pod-syntax.t 32
16 files changed (This is a version diff) 197117
@@ -1,26 +1,24 @@
 
+# This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v5.020.
 use strict;
 use warnings;
 
-use Module::Build 0.3601;
+use Module::Build 0.28;
 
 
 my %module_build_args = (
   "build_requires" => {
-    "File::Spec" => 0,
-    "Module::Build" => "0.3601",
-    "Test::More" => 0,
-    "Test::Warn" => 0
+    "Module::Build" => "0.28"
   },
   "configure_requires" => {
-    "Module::Build" => "0.3601"
+    "Module::Build" => "0.28"
   },
   "dist_abstract" => "Object methods to create a DHCP packet.",
   "dist_author" => [
-    "Dean Hamstead <dean\@fragfest.com.au>"
+    "Dean Hamstead <dean\@bytefoundry.com.au>"
   ],
   "dist_name" => "Net-DHCP",
-  "dist_version" => "0.693",
+  "dist_version" => "0.694",
   "license" => "perl",
   "module_name" => "Net::DHCP",
   "recommends" => {},
@@ -36,10 +34,28 @@ my %module_build_args = (
     "strict" => 0,
     "warnings" => 0
   },
-  "script_files" => []
+  "script_files" => [],
+  "test_requires" => {
+    "File::Spec" => 0,
+    "Test::More" => 0,
+    "Test::Warn" => 0
+  }
 );
 
 
+my %fallback_build_requires = (
+  "File::Spec" => 0,
+  "Module::Build" => "0.28",
+  "Test::More" => 0,
+  "Test::Warn" => 0
+);
+
+
+unless ( eval { Module::Build->VERSION(0.4004) } ) {
+  delete $module_build_args{test_requires};
+  $module_build_args{build_requires} = \%fallback_build_requires;
+}
+
 my $build = Module::Build->new(%module_build_args);
 
 $build->create_build_script;
@@ -1,4 +1,11 @@
 Net::DHCP - A DHCP packet object
+
+0.694  2014-08-27
+
+	- Fix for RT89267
+	- Added github details
+	- Some minor code style changes
+
 0.693  2012-10-16
 
         - Changes kindly sent in my Alexander Clouter
@@ -1,4 +1,4 @@
-This software is copyright (c) 2012 by Dean Hamstad.
+This software is copyright (c) 2014 by Dean Hamstad.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2012 by Dean Hamstad.
+This software is Copyright (c) 2014 by Dean Hamstad.
 
 This is free software, licensed under:
 
@@ -22,7 +22,7 @@ This is free software, licensed under:
                      Version 1, February 1989
 
  Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA  02110-1335  USA
+ 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@ That's all there is to it!
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2012 by Dean Hamstad.
+This software is Copyright (c) 2014 by Dean Hamstad.
 
 This is free software, licensed under:
 
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
 Build.PL
 Changes
 LICENSE
@@ -6,7 +7,6 @@ META.json
 META.yml
 README
 cpanfile
-dhcp.patch
 dist.ini
 docs/bootp-dhcp-parameters.txt
 examples/dhcp_sniffer.pl
@@ -1,10 +1,10 @@
 {
    "abstract" : "Object methods to create a DHCP packet.",
    "author" : [
-      "Dean Hamstead <dean@fragfest.com.au>"
+      "Dean Hamstead <dean@bytefoundry.com.au>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 4.300025, CPAN::Meta::Converter version 2.120921",
+   "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
    "license" : [
       "perl_5"
    ],
@@ -16,12 +16,21 @@
    "prereqs" : {
       "build" : {
          "requires" : {
-            "Module::Build" : "0.3601"
+            "Module::Build" : "0.28"
          }
       },
       "configure" : {
          "requires" : {
-            "Module::Build" : "0.3601"
+            "Module::Build" : "0.28"
+         }
+      },
+      "develop" : {
+         "requires" : {
+            "Pod::Coverage::TrustPod" : "0",
+            "Test::CPAN::Meta" : "0",
+            "Test::Kwalitee" : "1.12",
+            "Test::Pod" : "1.41",
+            "Test::Pod::Coverage" : "1.08"
          }
       },
       "runtime" : {
@@ -46,6 +55,6 @@
       }
    },
    "release_status" : "stable",
-   "version" : "0.693"
+   "version" : "0.694"
 }
 
@@ -1,29 +1,29 @@
 ---
 abstract: 'Object methods to create a DHCP packet.'
 author:
-  - 'Dean Hamstead <dean@fragfest.com.au>'
+  - 'Dean Hamstead <dean@bytefoundry.com.au>'
 build_requires:
-  File::Spec: 0
-  Module::Build: 0.3601
-  Test::More: 0
-  Test::Warn: 0
+  File::Spec: '0'
+  Module::Build: '0.28'
+  Test::More: '0'
+  Test::Warn: '0'
 configure_requires:
-  Module::Build: 0.3601
+  Module::Build: '0.28'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300025, CPAN::Meta::Converter version 2.120921'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: Net-DHCP
 requires:
-  Carp: 0
-  Exporter: 0
-  List::Util: 0
-  Scalar::Util: 0
-  Socket: 0
-  constant: 0
+  Carp: '0'
+  Exporter: '0'
+  List::Util: '0'
+  Scalar::Util: '0'
+  Socket: '0'
+  constant: '0'
   perl: v5.8.0
-  strict: 0
-  warnings: 0
-version: 0.693
+  strict: '0'
+  warnings: '0'
+version: '0.694'
@@ -9,7 +9,7 @@ requires "strict" => "0";
 requires "warnings" => "0";
 
 on 'build' => sub {
-  requires "Module::Build" => "0.3601";
+  requires "Module::Build" => "0.28";
 };
 
 on 'test' => sub {
@@ -19,5 +19,13 @@ on 'test' => sub {
 };
 
 on 'configure' => sub {
-  requires "Module::Build" => "0.3601";
+  requires "Module::Build" => "0.28";
+};
+
+on 'develop' => sub {
+  requires "Pod::Coverage::TrustPod" => "0";
+  requires "Test::CPAN::Meta" => "0";
+  requires "Test::Kwalitee" => "1.12";
+  requires "Test::Pod" => "1.41";
+  requires "Test::Pod::Coverage" => "1.08";
 };
@@ -1,122 +0,0 @@
-diff --git a/lib/Net/DHCP/Constants.pm b/lib/Net/DHCP/Constants.pm
-index ee2e130..53dc4c4 100755
---- a/lib/Net/DHCP/Constants.pm
-+++ b/lib/Net/DHCP/Constants.pm
-@@ -236,6 +236,8 @@ BEGIN {
-         'DHO_SUBNET_ALLOCATION'                    => 220,
-         'DHO_VIRTUAL_SUBNET'                       => 221,
- 
-+        'DHO_CLASSLESS_STATIC_ROUTE_MS'            => 249,
-+
-         'DHO_END' => 255
-     );
- 
-@@ -352,6 +354,7 @@ use constant \%RELAYAGENT_CODES;
- #   string : char* (just kidding)
- #   relays : DHCP sub-options (rfc 3046)
- #   ids : client identifier : byte (htype) + string (chaddr)
-+#   csr : classless static routes (rfc 3442)
- #   suboptions : hex encoded sub options
- #
- our %DHO_FORMATS = (
-@@ -449,6 +452,8 @@ our %DHO_FORMATS = (
-     DHO_NAME_SERVICE_SEARCH()          => 'shorts',    # rfc 2937
-     DHO_SUBNET_SELECTION()             => 'inet',      # rfc 3011
- 
-+    DHO_CLASSLESS_STATIC_ROUTE()      => 'csr',        # rfc 3442
-+    DHO_CLASSLESS_STATIC_ROUTE_MS()   => 'csr',
- );
- 
- # Links option codes with their suboption values
-@@ -671,6 +676,7 @@ Import all DHCP option codes.
-   (213) DHO_OPTION_V4_ACCESS_DOMAIN
-   (220) DHO_SUBNET_ALLOCATION
-   (221) DHO_VIRTUAL_SUBNET
-+  (249) DHO_CLASSLESS_STATIC_ROUTE_MS
-   (255) DHO_END
- 
- =item * ccc_codes
-diff --git a/lib/Net/DHCP/Packet.pm b/lib/Net/DHCP/Packet.pm
-index f0f6259..f67caf0 100755
---- a/lib/Net/DHCP/Packet.pm
-+++ b/lib/Net/DHCP/Packet.pm
-@@ -361,7 +361,7 @@ sub addOptionValue {
-     }
- 
-     # verify number of parameters
--    if ( $format eq 'string' ) {
-+    if ( $format eq 'string' || $format eq 'csr' ) {
-         @values = ($value);                # don't change format
-     }
-     elsif ( $format =~ /s$/ )
-@@ -391,6 +391,7 @@ sub addOptionValue {
-             return pack( 'C*', map { 255 & $_ } @_ );
-         },
-         string => sub { return shift },
-+        csr    => sub { return packcsr(shift) },
- 
-     );
- 
-@@ -529,6 +530,7 @@ sub getOptionValue {
-         byte   => sub { return unpack( 'C', shift ) },
-         bytes  => sub { return unpack( 'C*', shift ) },
-         string => sub { return shift },
-+        csr    => sub { return unpackcsr(shift) },
- 
-     );
- 
-@@ -656,8 +658,15 @@ sub serialize {
-     if ( $self->{isDhcp} ) {    # add MAGIC_COOKIE and options
-         $bytes .= MAGIC_COOKIE();
-         for my $key ( @{ $self->{options_order} } ) {
--            $bytes .= pack( 'C',    $key );
--            $bytes .= pack( 'C/a*', $self->{options}->{$key} );
-+            if ( ref($self->{options}->{$key}) eq 'ARRAY' ) {
-+                for my $value ( @{$self->{options}->{$key}} ) {
-+                    $bytes .= pack( 'C',    $key );
-+                    $bytes .= pack( 'C/a*', $value );
-+                }
-+            } else {
-+                $bytes .= pack( 'C',    $key );
-+                $bytes .= pack( 'C/a*', $self->{options}->{$key} );
-+            }
-         }
-         $bytes .= pack( 'C', 255 );
-     }
-@@ -962,6 +971,36 @@ sub unpackRelayAgent {     # prints a human readable 'relay agent options'
- 
- }
- 
-+sub packcsr {
-+    # catch empty value
-+    my $results = [ '' ];
-+
-+    for my $pair ( @{$_[0]} ) {
-+        push @$results, ''
-+        	if (length($results->[-1]) > 255 - 8);
-+
-+        my ($ip, $mask) = split /\//, $pair->[0];
-+        $mask = '32'
-+		unless (defined($mask));
-+
-+        my $addr = packinet($ip);
-+        $addr = substr $addr, 0, int(($mask - 1)/8 + 1);
-+
-+        $results->[-1] .= pack('C', $mask) . $addr;
-+        $results->[-1] .= packinet($pair->[1]);
-+    }
-+
-+    return $results;
-+}
-+
-+sub unpackcsr {
-+    my $csr = shift
-+      or return;
-+
-+   croak('unpack csr field still WIP');
-+
-+}
-+
- #=======================================================================
- 
- 1;
@@ -1,9 +1,9 @@
 name = Net-DHCP
-version = 0.693
-author = Dean Hamstead <dean@fragfest.com.au>
+version = 0.694
+author = Dean Hamstead <dean@bytefoundry.com.au>
 license = Perl_5
 copyright_holder = Dean Hamstad
-copyright_year = 2012
+copyright_year = 2014
 
 [GatherDir]
 [MetaYAML]
@@ -27,8 +27,6 @@ critic_config = t/.perlcriticrc
 [ConfirmRelease]
 [UploadToCPAN]
 
-[Twitter]
-hash_tags = #perl #cpan
 
 [Prereqs]
 Exporter     = 0
@@ -11,7 +11,7 @@ use warnings;
 
 our ( @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION );
 use Exporter;
-$VERSION = 0.693;
+$VERSION = 0.694;
 @ISA     = qw(Exporter);
 
 @EXPORT = qw(MAGIC_COOKIE);
@@ -716,6 +716,12 @@ L<Net::DHCP::Packet>, L<Net::DHCP::Options>
 
 Dean Hamstead E<lt>djzort@cpan.orgE<gt> and past Authors (see README)
 
+=head1 GOT PATCHES?
+
+Many young people like to use Github, so by all means send me pull requests at
+
+https://github.com/djzort/NetAddr-MAC
+
 =head1 COPYRIGHT
 
 This program is free software; you can redistribute it and/or
@@ -12,7 +12,7 @@ use warnings;
 
 our ( @ISA, @EXPORT, @EXPORT_OK, $VERSION );
 use Exporter;
-$VERSION   = 0.693;
+$VERSION   = 0.694;
 @ISA       = qw(Exporter);
 @EXPORT    = qw( packinet packinets unpackinet unpackinets );
 @EXPORT_OK = qw( );
@@ -364,11 +364,11 @@ sub addOptionValue {
     if ( $format eq 'string' || $format eq 'csr' ) {
         @values = ($value);                # don't change format
     }
-    elsif ( $format =~ /s$/ )
+    elsif ( $format =~ m/s$/ )
     {    # ends with an 's', meaning any number of parameters
         ;
     }
-    elsif ( $format =~ /2$/ ) { # ends with a '2', meaning couples of parameters
+    elsif ( $format =~ m/2$/ ) { # ends with a '2', meaning couples of parameters
         croak(
             "addOptionValue: only pairs of values expected for option '$code'")
           if ( ( @values % 2 ) != 0 );
@@ -981,7 +981,7 @@ sub packcsr {
 
         my ($ip, $mask) = split /\//, $pair->[0];
         $mask = '32'
-		unless (defined($mask));
+                unless (defined($mask));
 
         my $addr = packinet($ip);
         $addr = substr $addr, 0, int(($mask - 1)/8 + 1);
@@ -1342,6 +1342,14 @@ These are half baked, but will decode the relay agent options in the future
 returns a human readable 'relay agent options', not to be confused with
 C<decodeRelayAgent>
 
+=item I packcsr( ARRAYREF )
+
+returns the packed Classless Static Route option built from a list of cidr style address/mask combos
+
+=item I<unpackcsr>
+
+Not implemented, currently croaks.
+
 =item I<addOption ( CODE, VALUE )>
 
 I<Removed as of version 0.60. Please use C<addOptionRaw()> instead.>
@@ -1350,8 +1358,6 @@ I<Removed as of version 0.60. Please use C<addOptionRaw()> instead.>
 
 I<Removed as of version 0.60. Please use C<getOptionRaw()> instead.>
 
-=item
-
 =back
 
 =head2 DHCP OPTIONS TYPES
@@ -1714,6 +1720,12 @@ Original version by F. van Dun.
 
 See L<https://rt.cpan.org/Dist/Display.html?Queue=Net-DHCP>
 
+=head1 GOT PATCHES?
+
+Many young people like to use Github, so by all means send me pull requests at
+
+https://github.com/djzort/NetAddr-MAC
+
 =head1 COPYRIGHT
 
 This is free software. It can be distributed and/or modified under the same terms as
@@ -10,8 +10,7 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::EOL 0.07
-eval "use Test::EOL; 1;" or die $@;
-# ^^ hack to get around prereqscanner detection, remove someday
+# generated by Dist::Zilla::Plugin::Test::EOL 0.12
+use Test::EOL;
 
 all_perl_files_ok({ trailing_whitespace => 1 });
@@ -7,9 +7,8 @@ BEGIN {
   }
 }
 
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
 
-use Test::More;
+use Test::CPAN::Meta;
 
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
 meta_yaml_ok();
@@ -1,4 +1,3 @@
-#!perl
 
 BEGIN {
   unless ($ENV{RELEASE_TESTING}) {
@@ -7,11 +6,7 @@ BEGIN {
   }
 }
 
-
-# This test is generated by Dist::Zilla::Plugin::Test::Kwalitee
+# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.07
 use strict;
 use warnings;
-use Test::More;   # needed to provide plan.
-eval "use Test::Kwalitee";
-
-plan skip_all => "Test::Kwalitee required for testing kwalitee" if $@;
+use Test::Kwalitee;
@@ -7,15 +7,9 @@ BEGIN {
   }
 }
 
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
 
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
-  if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
-  if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
 
 all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -7,9 +7,8 @@ BEGIN {
   }
 }
 
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
 use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
 
 all_pod_files_ok();