File Coverage

blib/lib/Net/Frame/Layer/DNS/RR/PTR.pm
Criterion Covered Total %
statement 21 33 63.6
branch 1 6 16.6
condition n/a
subroutine 7 10 70.0
pod 6 6 100.0
total 35 55 63.6


line stmt bran cond sub pod time code
1             #
2             # $Id: PTR.pm 49 2009-05-31 13:15:34Z VinsWorldcom $
3             #
4             package Net::Frame::Layer::DNS::RR::PTR;
5 6     6   28 use strict; use warnings;
  6     6   10  
  6         159  
  6         27  
  6         11  
  6         152  
6              
7 6     6   32 use Net::Frame::Layer qw(:consts :subs);
  6         11  
  6         1441  
8             our @ISA = qw(Net::Frame::Layer Exporter);
9              
10             our @AS = qw(
11             ptrdname
12             );
13             __PACKAGE__->cgBuildIndices;
14             __PACKAGE__->cgBuildAccessorsScalar(\@AS);
15              
16 6     6   32 use Net::Frame::Layer::DNS qw(:subs);
  6         11  
  6         2267  
17              
18             sub new {
19             shift->SUPER::new(
20 1     1 1 210 ptrdname => 'localhost',
21             @_,
22             );
23             }
24              
25             sub getLength {
26 0     0 1 0 my $self = shift;
27 0         0 return length($self->ptrdname)
28             }
29              
30             sub pack {
31 2     2 1 161 my $self = shift;
32              
33 2         5 my $name = dnsAton($self->ptrdname);
34              
35 2 50       14 $self->raw($self->SUPER::pack('H*',
36             $name
37             )) or return;
38              
39 2         48 return $self->raw;
40             }
41              
42             sub unpack {
43 0     0 1 0 my $self = shift;
44              
45 0         0 my ($name, $ptr) = dnsNtoa($self->raw);
46              
47 0         0 $self->ptrdname($name);
48              
49 0         0 $self->payload(substr $self->raw, $ptr);
50              
51 0         0 return $self;
52             }
53              
54             sub encapsulate {
55 0     0 1 0 my $self = shift;
56              
57 0 0       0 return $self->nextLayer if $self->nextLayer;
58              
59 0 0       0 if ($self->payload) {
60 0         0 return 'DNS::RR';
61             }
62              
63 0         0 NF_LAYER_NONE;
64             }
65              
66             sub print {
67 2     2 1 178 my $self = shift;
68              
69 2         10 my $l = $self->layer;
70 2         23 my $buf = sprintf
71             "$l: ptrdname:%s",
72             $self->ptrdname;
73              
74 2         164 return $buf;
75             }
76              
77             1;
78              
79             __END__