File Coverage

blib/lib/Net/Frame/Layer/DNS/RR/CNAME.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: CNAME.pm 49 2009-05-31 13:15:34Z VinsWorldcom $
3             #
4             package Net::Frame::Layer::DNS::RR::CNAME;
5 6     6   28 use strict; use warnings;
  6     6   11  
  6         156  
  6         28  
  6         8  
  6         149  
6              
7 6     6   28 use Net::Frame::Layer qw(:consts :subs);
  6         10  
  6         1347  
8             our @ISA = qw(Net::Frame::Layer Exporter);
9              
10             our @AS = qw(
11             cname
12             );
13             __PACKAGE__->cgBuildIndices;
14             __PACKAGE__->cgBuildAccessorsScalar(\@AS);
15              
16 6     6   30 use Net::Frame::Layer::DNS qw(:subs);
  6         11  
  6         2487  
17              
18             sub new {
19             shift->SUPER::new(
20 1     1 1 163 cname => 'localhost',
21             @_,
22             );
23             }
24              
25             sub getLength {
26 0     0 1 0 my $self = shift;
27 0         0 return length($self->cname)
28             }
29              
30             sub pack {
31 2     2 1 120 my $self = shift;
32              
33 2         6 my $name = dnsAton($self->cname);
34              
35 2 50       10 $self->raw($self->SUPER::pack('H*',
36             $name
37             )) or return;
38              
39 2         41 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->cname($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 165 my $self = shift;
68              
69 2         9 my $l = $self->layer;
70 2         20 my $buf = sprintf
71             "$l: cname:%s",
72             $self->cname;
73              
74 2         128 return $buf;
75             }
76              
77             1;
78              
79             __END__