File Coverage

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