File Coverage

blib/lib/Net/DNS/RR/RP.pm
Criterion Covered Total %
statement 42 42 100.0
branch 4 4 100.0
path n/a
condition n/a
subroutine 12 12 100.0
pod 2 2 100.0
total 60 60 100.0


line stmt bran path cond sub pod time code
1               package Net::DNS::RR::RP;
2                
3 1       1   10 use strict;
  1           3  
  1           47  
4 1       1   7 use warnings;
  1           2  
  1           116  
5               our $VERSION = (qw$Id: RP.pm 2002 2025-01-07 09:57:46Z willem $)[2];
6                
7 1       1   9 use base qw(Net::DNS::RR);
  1           2  
  1           308  
8                
9                
10               =head1 NAME
11                
12               Net::DNS::RR::RP - DNS RP resource record
13                
14               =cut
15                
16 1       1   9 use integer;
  1           2  
  1           9  
17                
18 1       1   58 use Net::DNS::DomainName;
  1           3  
  1           40  
19 1       1   650 use Net::DNS::Mailbox;
  1           3  
  1           519  
20                
21                
22               sub _decode_rdata { ## decode rdata from wire-format octet string
23 1       1   3 my ( $self, $data, $offset, @opaque ) = @_;
24                
25 1           8 ( $self->{mbox}, $offset ) = Net::DNS::Mailbox2535->decode( $data, $offset, @opaque );
26 1           9 $self->{txtdname} = Net::DNS::DomainName2535->decode( $data, $offset, @opaque );
27 1           4 return;
28               }
29                
30                
31               sub _encode_rdata { ## encode rdata as wire-format octet string
32 5       5   14 my ( $self, $offset, @opaque ) = @_;
33                
34 5           9 my $txtdname = $self->{txtdname};
35 5           19 my $rdata = $self->{mbox}->encode( $offset, @opaque );
36 5           17 $rdata .= $txtdname->encode( $offset + length($rdata), @opaque );
37 5           21 return $rdata;
38               }
39                
40                
41               sub _format_rdata { ## format rdata portion of RR string.
42 2       2   4 my $self = shift;
43                
44 2           11 my @rdata = ( $self->{mbox}->string, $self->{txtdname}->string );
45 2           8 return @rdata;
46               }
47                
48                
49               sub _parse_rdata { ## populate RR from rdata in argument list
50 1       1   19 my ( $self, @argument ) = @_;
51                
52 1           3 for (qw(mbox txtdname)) { $self->$_( shift @argument ) }
  2           9  
53 1           4 return;
54               }
55                
56                
57               sub mbox {
58 4       4 1 19 my ( $self, @value ) = @_;
59 4           8 for (@value) { $self->{mbox} = Net::DNS::Mailbox2535->new($_) }
  2           11  
60 4 100         31 return $self->{mbox} ? $self->{mbox}->address : undef;
61               }
62                
63                
64               sub txtdname {
65 4       4 1 1410 my ( $self, @value ) = @_;
66 4           9 for (@value) { $self->{txtdname} = Net::DNS::DomainName2535->new($_) }
  2           32  
67 4 100         26 return $self->{txtdname} ? $self->{txtdname}->name : undef;
68               }
69                
70                
71               1;
72               __END__