File Coverage

blib/lib/Net/DNS/RR/TXT.pm
Criterion Covered Total %
statement 48 48 100.0
branch 6 6 100.0
path n/a
condition 2 2 100.0
subroutine 12 12 100.0
pod 1 2 100.0
total 69 70 100.0


line stmt bran path cond sub pod time code
1               package Net::DNS::RR::TXT;
2                
3 8       8   48 use strict;
  8           13  
  8           278  
4 8       8   36 use warnings;
  8           32  
  8           644  
5               our $VERSION = (qw$Id: TXT.pm 2003 2025-01-21 12:06:06Z willem $)[2];
6                
7 8       8   40 use base qw(Net::DNS::RR);
  8           18  
  8           741  
8                
9               =encoding utf8
10                
11                
12               =head1 NAME
13                
14               Net::DNS::RR::TXT - DNS TXT resource record
15                
16               =cut
17                
18 8       8   38 use integer;
  8           13  
  8           67  
19                
20 8       8   252 use Carp;
  8           12  
  8           512  
21 8       8   3049 use Net::DNS::Text;
  8           18  
  8           3215  
22                
23                
24               sub _decode_rdata { ## decode rdata from wire-format octet string
25 8408       8408   10053 my ( $self, $data, $offset ) = @_;
26                
27 8408           8786 my $limit = $self->{rdlength};
28 8408           10694 my $rdata = substr $$data, $offset, $limit;
29 8408           10717 my $array = $self->{txtdata} = [];
30 8408           8299 my $index = 0;
31 8408           10790 while ( $index < $limit ) {
32 16549           24713 ( my $text, $index ) = Net::DNS::Text->decode( \$rdata, $index );
33 16548           26563 push @$array, $text;
34               }
35 8407           11819 return;
36               }
37                
38                
39               sub _encode_rdata { ## encode rdata as wire-format octet string
40 295       295   300 my $self = shift;
41                
42 295           320 my $txtdata = $self->{txtdata};
43 295           358 return join '', map { $_->encode } @$txtdata;
  295           395  
44               }
45                
46                
47               sub _format_rdata { ## format rdata portion of RR string.
48 883       883   1028 my $self = shift;
49                
50 883           1119 my $txtdata = $self->{txtdata};
51 883           1378 return ( map { $_->unicode } @$txtdata );
  896           1812  
52               }
53                
54                
55               sub _parse_rdata { ## populate RR from rdata in argument list
56 391       391   644 my ( $self, @argument ) = @_;
57                
58 391           516 $self->{txtdata} = [map { Net::DNS::Text->new($_) } @argument];
  404           862  
59 391           649 return;
60               }
61                
62                
63               sub txtdata {
64 11       11 1 36 my ( $self, @value ) = @_;
65                
66 11 100         21 $self->{txtdata} = [map { Net::DNS::Text->new($_) } @value] if scalar @value;
  2           7  
67                
68 11     100     24 my $txtdata = $self->{txtdata} || [];
69                
70 11 100         24 return ( map { $_->value } @$txtdata ) if wantarray;
  6           32  
71                
72 5 100         14 return defined(wantarray) ? join( ' ', map { $_->value } @$txtdata ) : '';
  3           9  
73               }
74                
75                
76 5       5 0 576 sub char_str_list { return my @txt = &txtdata } # uncoverable pod
77                
78                
79               1;
80               __END__