view release on metacpan or search on metacpan
"Dean Hamstead <dean\@fragfest.com.au>"
],
"dist_name" => "Net-DHCPv6",
"dist_version" => "0.003",
"license" => "mit",
"module_name" => "Net::DHCPv6",
"recursive_test_files" => 1,
"requires" => {
"Carp" => 0,
"Const::Fast::Exporter" => 0,
"Ref::Util" => 0,
"namespace::clean" => 0,
"perl" => "5.024",
"strictures" => 2
},
"test_requires" => {
"File::Slurper" => 0,
"File::Spec" => 0,
"IO::Handle" => 0,
"IPC::Open3" => 0,
"Test2::Mock" => 0,
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08",
"Test::Portability::Files" : "0",
"Test::Vars" : "0"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"Const::Fast::Exporter" : "0",
"Ref::Util" : "0",
"namespace::clean" : "0",
"perl" : "5.024",
"strictures" : "2"
}
},
"test" : {
"requires" : {
"File::Slurper" : "0",
"File::Spec" : "0",
"IO::Handle" : "0",
version: '0.003'
Net::DHCPv6::X::Internal:
file: lib/Net/DHCPv6/X/Internal.pm
version: '0.003'
Net::DHCPv6::X::Truncated:
file: lib/Net/DHCPv6/X/Truncated.pm
version: '0.003'
requires:
Carp: '0'
Const::Fast::Exporter: '0'
Ref::Util: '0'
namespace::clean: '0'
perl: '5.024'
strictures: '2'
resources:
bugtracker: https://github.com/djzort/perl-Net-DHCPv6/issues
homepage: https://github.com/djzort/perl-Net-DHCPv6
repository: https://github.com/djzort/perl-Net-DHCPv6.git
version: '0.003'
x_author_pledge:
version: 1
Makefile.PL view on Meta::CPAN
"ExtUtils::MakeMaker" => 0,
"Module::Build" => "0.28"
},
"DISTNAME" => "Net-DHCPv6",
"LICENSE" => "mit",
"MIN_PERL_VERSION" => "5.024",
"NAME" => "Net::DHCPv6",
"PREREQ_PM" => {
"Carp" => 0,
"Const::Fast::Exporter" => 0,
"Ref::Util" => 0,
"namespace::clean" => 0,
"strictures" => 2
},
"TEST_REQUIRES" => {
"File::Slurper" => 0,
"File::Spec" => 0,
"IO::Handle" => 0,
"IPC::Open3" => 0,
"Test2::Mock" => 0,
"Test2::V1" => "1.302217",
Makefile.PL view on Meta::CPAN
my %FallbackPrereqs = (
"Carp" => 0,
"Const::Fast::Exporter" => 0,
"File::Slurper" => 0,
"File::Spec" => 0,
"IO::Handle" => 0,
"IPC::Open3" => 0,
"Module::Build" => "0.28",
"Ref::Util" => 0,
"Test2::Mock" => 0,
"Test2::V1" => "1.302217",
"Test::More" => 0,
"namespace::clean" => 0,
"strictures" => 2
);
unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
delete $WriteMakefileArgs{TEST_REQUIRES};
# This file is generated by Dist::Zilla::Plugin::CPANFile v6.037
# Do not edit this file directly. To change prereqs, edit the `dist.ini` file.
requires "Carp" => "0";
requires "Const::Fast::Exporter" => "0";
requires "Ref::Util" => "0";
requires "namespace::clean" => "0";
requires "perl" => "5.024";
requires "strictures" => "2";
on 'build' => sub {
requires "Module::Build" => "0.28";
};
on 'test' => sub {
requires "File::Slurper" => "0";
lib/Net/DHCPv6/Helpers.pm view on Meta::CPAN
#!/bin/false
# ABSTRACT: Internal helper methods for IPv6 address resolution
# PODNAME: Net::DHCPv6::Helpers
use strictures 2;
package Net::DHCPv6::Helpers;
$Net::DHCPv6::Helpers::VERSION = '0.003';
use Carp qw( croak );
use Net::DHCPv6::Constants qw( $IPV6_ADDR_LEN );
use Ref::Util qw( is_plain_arrayref );
use Socket qw( AF_INET6 inet_ntop inet_pton );
use namespace::clean;
sub _resolve_ipv6 {
my ( $class, $arg ) = @_;
return unless defined $arg;
if ( CORE::length( $arg ) == $IPV6_ADDR_LEN ) {
# If it looks like IPv6 text (hex digits + colons), parse it
if ( $arg =~ m/^[0-9a-fA-F:]+$/ && $arg =~ m/:/ ) {
lib/Net/DHCPv6/Option/BootfileParam.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::BootfileParam;
$Net::DHCPv6::Option::BootfileParam::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$OPTION_BOOTFILE_PARAM
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
$args{code} = $OPTION_BOOTFILE_PARAM;
my $data_list = $args{parameters} // [];
$data_list = [$data_list] unless is_plain_arrayref( $data_list );
$args{data} = join( $EMPTY, map { pack( 'n', CORE::length ) . $_ } @{$data_list} );
my $self = $class->SUPER::new( %args );
lib/Net/DHCPv6/Option/DnsServers.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::DnsServers;
$Net::DHCPv6::Option::DnsServers::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$IPV6_ADDR_LEN $OPTION_DNS_SERVERS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
my $addresses = $class->_pick_addrs( \%args, 'servers' );
if ( !defined $addresses && $args{addresses} ) {
my $list = is_plain_arrayref( $args{addresses} ) ? $args{addresses} : [ $args{addresses} ];
$addresses = [ map { $class->_resolve_ipv6( $_ ) } @{$list} ];
}
lib/Net/DHCPv6/Option/DomainList.pm view on Meta::CPAN
package Net::DHCPv6::Option::DomainList;
$Net::DHCPv6::Option::DomainList::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Option ();
use Net::DHCPv6::Constants qw(
$DN_COMPRESS_MASK $DN_LABEL_MASK $OPTION_DOMAIN_LIST
);
use Net::DHCPv6::X::Truncated ();
use Net::DHCPv6::X::BadOption ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
my $MAX_PTR_DEPTH = 255; ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
sub _encode_domain {
my ( $domain ) = @_;
return chr( 0 ) unless defined $domain && CORE::length( $domain );
my @labels = split m/[.]/, $domain;
return join( $EMPTY, map { pack( 'C', CORE::length ) . $_ } @labels ) . chr( 0 );
}
lib/Net/DHCPv6/Option/NisServers.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::NisServers;
$Net::DHCPv6::Option::NisServers::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$IPV6_ADDR_LEN $OPTION_NIS_SERVERS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
my $addresses = $class->_pick_addrs( \%args, 'servers' );
if ( !defined $addresses && $args{addresses} ) {
my $list = is_plain_arrayref( $args{addresses} ) ? $args{addresses} : [ $args{addresses} ];
$addresses = [ map { $class->_resolve_ipv6( $_ ) } @{$list} ];
}
lib/Net/DHCPv6/Option/NispServers.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::NispServers;
$Net::DHCPv6::Option::NispServers::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$IPV6_ADDR_LEN $OPTION_NISP_SERVERS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
my $addresses = $class->_pick_addrs( \%args, 'servers' );
if ( !defined $addresses && $args{addresses} ) {
my $list = is_plain_arrayref( $args{addresses} ) ? $args{addresses} : [ $args{addresses} ];
$addresses = [ map { $class->_resolve_ipv6( $_ ) } @{$list} ];
}
lib/Net/DHCPv6/Option/SipServerA.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::SipServerA;
$Net::DHCPv6::Option::SipServerA::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$IPV6_ADDR_LEN $OPTION_SIP_SERVER_A
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
my $addresses = $class->_pick_addrs( \%args, 'servers' );
if ( !defined $addresses && $args{addresses} ) {
my $list = is_plain_arrayref( $args{addresses} ) ? $args{addresses} : [ $args{addresses} ];
$addresses = [ map { $class->_resolve_ipv6( $_ ) } @{$list} ];
}
lib/Net/DHCPv6/Option/SipServerD.pm view on Meta::CPAN
package Net::DHCPv6::Option::SipServerD;
$Net::DHCPv6::Option::SipServerD::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Option ();
use Net::DHCPv6::Constants qw(
$DN_COMPRESS_MASK $DN_LABEL_MASK $OPTION_SIP_SERVER_D
);
use Net::DHCPv6::X::Truncated ();
use Net::DHCPv6::X::BadOption ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
my $MAX_PTR_DEPTH = 255; ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
sub _encode_domain {
my ( $domain ) = @_;
return chr( 0 ) unless defined $domain && CORE::length( $domain );
my @labels = split m/[.]/, $domain;
return join( $EMPTY, map { pack( 'C', CORE::length ) . $_ } @labels ) . chr( 0 );
}
lib/Net/DHCPv6/Option/SntpServers.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::SntpServers;
$Net::DHCPv6::Option::SntpServers::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$IPV6_ADDR_LEN $OPTION_SNTP_SERVERS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
my $addresses = $class->_pick_addrs( \%args, 'servers' );
if ( !defined $addresses && $args{addresses} ) {
my $list = is_plain_arrayref( $args{addresses} ) ? $args{addresses} : [ $args{addresses} ];
$addresses = [ map { $class->_resolve_ipv6( $_ ) } @{$list} ];
}
lib/Net/DHCPv6/Option/UserClass.pm view on Meta::CPAN
use strictures 2;
package Net::DHCPv6::Option::UserClass;
$Net::DHCPv6::Option::UserClass::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Net::DHCPv6::Constants qw(
$OPTION_USER_CLASS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
sub new {
my ( $class, %args ) = @_;
$args{code} = $OPTION_USER_CLASS;
my $data_list = $args{user_class_data} // [];
$data_list = [$data_list] unless is_plain_arrayref( $data_list );
$args{data} = join( $EMPTY, map { pack( 'n', CORE::length ) . $_ } @{$data_list} );
my $self = $class->SUPER::new( %args );
lib/Net/DHCPv6/Option/VendorClass.pm view on Meta::CPAN
package Net::DHCPv6::Option::VendorClass;
$Net::DHCPv6::Option::VendorClass::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Carp qw( croak );
use Net::DHCPv6::Constants qw(
$OPTION_VENDOR_CLASS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
my $ENT_NUM_LEN = 4; ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
sub new {
my ( $class, %args ) = @_;
croak 'VendorClass requires enterprise_number' unless defined $args{enterprise_number};
$args{code} = $OPTION_VENDOR_CLASS;
my $data_list = $args{vendor_data} // $args{data} // [];
$data_list = [$data_list] unless is_plain_arrayref( $data_list );
lib/Net/DHCPv6/Option/VendorOpts.pm view on Meta::CPAN
package Net::DHCPv6::Option::VendorOpts;
$Net::DHCPv6::Option::VendorOpts::VERSION = '0.003';
use Net::DHCPv6::OptionList ();
use Carp qw( croak );
use Net::DHCPv6::Constants qw(
$OPTION_VENDOR_OPTS
);
use Net::DHCPv6::X::Truncated ();
use parent 'Net::DHCPv6::Option';
use Ref::Util qw( is_plain_arrayref );
use namespace::clean;
my $EMPTY = q();
my $ENT_NUM_LEN = 4; ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
sub new {
my ( $class, %args ) = @_;
croak 'VendorOpts requires enterprise_number' unless defined $args{enterprise_number};
$args{code} = $OPTION_VENDOR_OPTS;
my $sub_data = $args{sub_options} // $EMPTY;
$sub_data = join( $EMPTY, map { $_->as_bytes } @{$sub_data} ) if is_plain_arrayref( $sub_data );
lib/Net/DHCPv6/OptionList.pm view on Meta::CPAN
#!/bin/false
# ABSTRACT: Shared container for a collection of DHCPv6 options
# PODNAME: Net::DHCPv6::OptionList
use strictures 2;
package Net::DHCPv6::OptionList;
$Net::DHCPv6::OptionList::VERSION = '0.003';
use Net::DHCPv6::Option::Generic ();
use Carp qw( croak );
use Ref::Util qw( is_ref );
use namespace::clean;
my $EMPTY = q();
my $OPT_HDR_SIZE = 4; ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
our %OPTION_CLASS;
sub new {
my $class = shift;
return bless {