@@ -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();