File Coverage

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


line stmt bran cond sub pod time code
1             package Net::DNS::RR::TXT;
2              
3 8     8   54 use strict;
  8         36  
  8         350  
4 8     8   39 use warnings;
  8         13  
  8         933  
5             our $VERSION = (qw$Id: TXT.pm 2003 2025-01-21 12:06:06Z willem $)[2];
6              
7 8     8   47 use base qw(Net::DNS::RR);
  8         13  
  8         816  
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   50 use integer;
  8         16  
  8         81  
19              
20 8     8   343 use Carp;
  8         48  
  8         676  
21 8     8   4158 use Net::DNS::Text;
  8         27  
  8         4317  
22              
23              
24             sub _decode_rdata { ## decode rdata from wire-format octet string
25 7608     7608   12174 my ( $self, $data, $offset ) = @_;
26              
27 7608         11684 my $limit = $self->{rdlength};
28 7608         14801 my $rdata = substr $$data, $offset, $limit;
29 7608         14438 my $array = $self->{txtdata} = [];
30 7608         10174 my $index = 0;
31 7608         13027 while ( $index < $limit ) {
32 14949         37418 ( my $text, $index ) = Net::DNS::Text->decode( \$rdata, $index );
33 14948         34219 push @$array, $text;
34             }
35 7607         15905 return;
36             }
37              
38              
39             sub _encode_rdata { ## encode rdata as wire-format octet string
40 295     295   510 my $self = shift;
41              
42 295         540 my $txtdata = $self->{txtdata};
43 295         634 return join '', map { $_->encode } @$txtdata;
  295         818  
44             }
45              
46              
47             sub _format_rdata { ## format rdata portion of RR string.
48 883     883   1515 my $self = shift;
49              
50 883         1789 my $txtdata = $self->{txtdata};
51 883         2092 return ( map { $_->unicode } @$txtdata );
  896         3243  
52             }
53              
54              
55             sub _parse_rdata { ## populate RR from rdata in argument list
56 391     391   849 my ( $self, @argument ) = @_;
57              
58 391         776 $self->{txtdata} = [map { Net::DNS::Text->new($_) } @argument];
  404         1415  
59 391         1035 return;
60             }
61              
62              
63             sub txtdata {
64 11     11 1 39 my ( $self, @value ) = @_;
65              
66 11 100       25 $self->{txtdata} = [map { Net::DNS::Text->new($_) } @value] if scalar @value;
  2         9  
67              
68 11   100     28 my $txtdata = $self->{txtdata} || [];
69              
70 11 100       40 return ( map { $_->value } @$txtdata ) if wantarray;
  6         18  
71              
72 5 100       30 return defined(wantarray) ? join( ' ', map { $_->value } @$txtdata ) : '';
  3         9  
73             }
74              
75              
76 5     5 0 859 sub char_str_list { return my @txt = &txtdata } # uncoverable pod
77              
78              
79             1;
80             __END__