Net-Frame-Layer-DNS
view release on metacpan or search on metacpan
lib/Net/Frame/Layer/DNS/RR/AAAA.pm view on Meta::CPAN
#
# $Id: AAAA.pm 49 2009-05-31 13:15:34Z VinsWorldcom $
#
package Net::Frame::Layer::DNS::RR::AAAA;
use strict; use warnings;
use Net::Frame::Layer qw(:consts :subs);
our @ISA = qw(Net::Frame::Layer Exporter);
our @AS = qw(
address
);
__PACKAGE__->cgBuildIndices;
__PACKAGE__->cgBuildAccessorsScalar(\@AS);
use Net::Frame::Layer::DNS;
sub new {
shift->SUPER::new(
address => '::1',
@_,
);
}
sub getLength { 16 }
sub pack {
my $self = shift;
$self->raw($self->SUPER::pack('a*',
inet6Aton($self->address)
)) or return;
return $self->raw;
}
sub unpack {
my $self = shift;
$self->address(inet6Ntoa(substr $self->raw, 0, 16));
$self->payload(substr $self->raw, 16);
return $self;
}
sub encapsulate {
my $self = shift;
return $self->nextLayer if $self->nextLayer;
if ($self->payload) {
return 'DNS::RR';
}
NF_LAYER_NONE;
}
sub print {
my $self = shift;
my $l = $self->layer;
my $buf = sprintf
"$l: address:%s",
$self->address;
return $buf;
}
1;
__END__
=head1 NAME
Net::Frame::Layer::DNS::RR::AAAA - DNS Resource Record AAAA rdata type
=head1 SYNOPSIS
use Net::Frame::Layer::DNS::RR::AAAA;
my $rdata = Net::Frame::Layer::DNS::RR::AAAA->new(
address => '::1',
);
$rdata->pack;
print 'RAW: '.$rdata->dump."\n";
# Create RR with rdata
use Net::Frame::Layer::DNS::RR qw(:consts);
my $layer = Net::Frame::Layer::DNS::RR->new(
type => NF_DNS_TYPE_AAAA
rdata => $rdata->pack
);
$layer->pack;
=head1 DESCRIPTION
This modules implements the encoding and decoding of the DNS Resource
( run in 0.964 second using v1.01-cache-2.11-cpan-39bf76dae61 )