File Coverage

blib/lib/Net/DNS/RR/DSYNC.pm
Criterion Covered Total %
statement 52 52 100.0
branch 4 4 100.0
path n/a
condition 4 4 100.0
subroutine 14 14 100.0
pod 4 4 100.0
total 78 78 100.0


line stmt bran path cond sub pod time code
1               package Net::DNS::RR::DSYNC;
2                
3 1       1   6 use strict;
  1           2  
  1           34  
4 1       1   3 use warnings;
  1           1  
  1           70  
5               our $VERSION = (qw$Id: DSYNC.pm 2003 2025-01-21 12:06:06Z willem $)[2];
6                
7 1       1   4 use base qw(Net::DNS::RR);
  1           1  
  1           94  
8                
9                
10               =head1 NAME
11                
12               Net::DNS::RR::DSYNC - DNS DSYNC resource record
13                
14               =cut
15                
16 1       1   5 use integer;
  1           1  
  1           7  
17                
18 1       1   36 use Net::DNS::Parameters qw(:type);
  1           2  
  1           135  
19 1       1   5 use Net::DNS::DomainName;
  1           1  
  1           537  
20                
21                
22               sub _decode_rdata { ## decode rdata from wire-format octet string
23 1       1   2 my ( $self, $data, $offset, @opaque ) = @_;
24                
25 1           3 @{$self}{qw(rrtype scheme port)} = unpack "\@$offset nCn", $$data;
  1           2  
26 1           2 $self->{target} = Net::DNS::DomainName->decode( $data, $offset + 5, @opaque );
27 1           2 return;
28               }
29                
30                
31               sub _encode_rdata { ## encode rdata as wire-format octet string
32 5       5   5 my $self = shift;
33                
34 5           7 my $target = $self->{target};
35 5           6 return pack 'nCn a*', @{$self}{qw(rrtype scheme port)}, $target->encode;
  5           10  
36               }
37                
38                
39               sub _format_rdata { ## format rdata portion of RR string.
40 3       3   3 my $self = shift;
41                
42 3           4 my @params = map { $self->$_ } qw(rrtype scheme port);
  9           12  
43 3           3 my $target = $self->{target};
44 3           6 return ( @params, $target->string );
45               }
46                
47                
48               sub _parse_rdata { ## populate RR from rdata in argument list
49 2       2   6 my ( $self, @argument ) = @_;
50                
51 2           6 $self->$_( shift @argument ) foreach qw(rrtype scheme port target);
52 2           3 return;
53               }
54                
55                
56               sub rrtype {
57 8       8 1 16 my ( $self, @value ) = @_;
58 8           9 for (@value) { $self->{rrtype} = typebyname($_) }
  3           25  
59 8           9 my $typecode = $self->{rrtype};
60 8 100         21 return defined $typecode ? typebyval($typecode) : undef;
61               }
62                
63                
64               sub scheme {
65 8       8 1 793 my ( $self, @value ) = @_;
66 8           12 for (@value) { $self->{scheme} = 0 + $_ }
  3           5  
67 8     100     22 return $self->{scheme} || 0;
68               }
69                
70                
71               sub port {
72 8       8 1 821 my ( $self, @value ) = @_;
73 8           10 for (@value) { $self->{port} = 0 + $_ }
  3           4  
74 8     100     24 return $self->{port} || 0;
75               }
76                
77                
78               sub target {
79 5       5 1 806 my ( $self, @value ) = @_;
80 5           6 for (@value) { $self->{target} = Net::DNS::DomainName->new($_) }
  3           9  
81 5 100         28 return $self->{target} ? $self->{target}->name : undef;
82               }
83                
84                
85               1;
86               __END__