File Coverage

blib/lib/Net/LDNS/RR.pm
Criterion Covered Total %
statement 234 235 99.5
branch 1 2 50.0
condition n/a
subroutine 79 79 100.0
pod 4 4 100.0
total 318 320 99.3


line stmt bran cond sub pod time code
1             package Net::LDNS::RR;
2              
3 13     13   4405 use Net::LDNS::RR::A;
  13         29  
  13         334  
4 13     13   3869 use Net::LDNS::RR::A6;
  13         23  
  13         286  
5 13     13   4137 use Net::LDNS::RR::AAAA;
  13         26  
  13         345  
6 13     13   3635 use Net::LDNS::RR::AFSDB;
  13         22  
  13         323  
7 13     13   3707 use Net::LDNS::RR::APL;
  13         23  
  13         297  
8 13     13   3821 use Net::LDNS::RR::ATMA;
  13         27  
  13         312  
9 13     13   3828 use Net::LDNS::RR::CAA;
  13         23  
  13         312  
10 13     13   3670 use Net::LDNS::RR::CDS;
  13         23  
  13         340  
11 13     13   3877 use Net::LDNS::RR::CERT;
  13         24  
  13         397  
12 13     13   3705 use Net::LDNS::RR::CNAME;
  13         24  
  13         339  
13 13     13   3700 use Net::LDNS::RR::DHCID;
  13         25  
  13         346  
14 13     13   3807 use Net::LDNS::RR::DLV;
  13         20  
  13         344  
15 13     13   3779 use Net::LDNS::RR::DNAME;
  13         22  
  13         371  
16 13     13   3851 use Net::LDNS::RR::DNSKEY;
  13         36  
  13         355  
17 13     13   3733 use Net::LDNS::RR::DS;
  13         22  
  13         356  
18 13     13   3679 use Net::LDNS::RR::EID;
  13         24  
  13         375  
19 13     13   3920 use Net::LDNS::RR::EUI48;
  13         28  
  13         391  
20 13     13   3926 use Net::LDNS::RR::EUI64;
  13         23  
  13         395  
21 13     13   3763 use Net::LDNS::RR::GID;
  13         24  
  13         380  
22 13     13   3740 use Net::LDNS::RR::GPOS;
  13         25  
  13         412  
23 13     13   3924 use Net::LDNS::RR::HINFO;
  13         22  
  13         435  
24 13     13   3789 use Net::LDNS::RR::HIP;
  13         22  
  13         427  
25 13     13   3909 use Net::LDNS::RR::IPSECKEY;
  13         26  
  13         414  
26 13     13   3770 use Net::LDNS::RR::ISDN;
  13         24  
  13         435  
27 13     13   3696 use Net::LDNS::RR::KEY;
  13         22  
  13         427  
28 13     13   3825 use Net::LDNS::RR::KX;
  13         24  
  13         432  
29 13     13   3757 use Net::LDNS::RR::L32;
  13         22  
  13         433  
30 13     13   3731 use Net::LDNS::RR::L64;
  13         21  
  13         466  
31 13     13   3875 use Net::LDNS::RR::LOC;
  13         24  
  13         476  
32 13     13   3885 use Net::LDNS::RR::LP;
  13         22  
  13         492  
33 13     13   4050 use Net::LDNS::RR::MAILA;
  13         21  
  13         485  
34 13     13   3959 use Net::LDNS::RR::MAILB;
  13         21  
  13         1137  
35 13     13   3982 use Net::LDNS::RR::MB;
  13         26  
  13         521  
36 13     13   3930 use Net::LDNS::RR::MD;
  13         22  
  13         521  
37 13     13   3895 use Net::LDNS::RR::MF;
  13         24  
  13         491  
38 13     13   3762 use Net::LDNS::RR::MG;
  13         21  
  13         510  
39 13     13   3851 use Net::LDNS::RR::MINFO;
  13         25  
  13         507  
40 13     13   3793 use Net::LDNS::RR::MR;
  13         23  
  13         513  
41 13     13   3851 use Net::LDNS::RR::MX;
  13         32  
  13         527  
42 13     13   3662 use Net::LDNS::RR::NAPTR;
  13         22  
  13         519  
43 13     13   3542 use Net::LDNS::RR::NID;
  13         21  
  13         508  
44 13     13   3803 use Net::LDNS::RR::NIMLOC;
  13         24  
  13         521  
45 13     13   3659 use Net::LDNS::RR::NINFO;
  13         23  
  13         540  
46 13     13   3507 use Net::LDNS::RR::NS;
  13         20  
  13         526  
47 13     13   3684 use Net::LDNS::RR::NSAP;
  13         24  
  13         543  
48 13     13   3609 use Net::LDNS::RR::NSEC;
  13         23  
  13         568  
49 13     13   3612 use Net::LDNS::RR::NSEC3;
  13         27  
  13         579  
50 13     13   3704 use Net::LDNS::RR::NSEC3PARAM;
  13         25  
  13         570  
51 13     13   3593 use Net::LDNS::RR::NULL;
  13         21  
  13         551  
52 13     13   3543 use Net::LDNS::RR::NXT;
  13         25  
  13         586  
53 13     13   4192 use Net::LDNS::RR::PTR;
  13         21  
  13         1709  
54 13     13   4748 use Net::LDNS::RR::PX;
  13         28  
  13         634  
55 13     13   4425 use Net::LDNS::RR::RKEY;
  13         22  
  13         628  
56 13     13   4310 use Net::LDNS::RR::RP;
  13         24  
  13         615  
57 13     13   3783 use Net::LDNS::RR::RRSIG;
  13         24  
  13         785  
58 13     13   3630 use Net::LDNS::RR::RT;
  13         24  
  13         600  
59 13     13   3536 use Net::LDNS::RR::SINK;
  13         22  
  13         675  
60 13     13   3851 use Net::LDNS::RR::SOA;
  13         23  
  13         703  
61 13     13   4299 use Net::LDNS::RR::SPF;
  13         24  
  13         641  
62 13     13   3808 use Net::LDNS::RR::SRV;
  13         27  
  13         805  
63 13     13   3800 use Net::LDNS::RR::SSHFP;
  13         21  
  13         726  
64 13     13   3638 use Net::LDNS::RR::TA;
  13         23  
  13         675  
65 13     13   4160 use Net::LDNS::RR::TALINK;
  13         24  
  13         782  
66 13     13   3870 use Net::LDNS::RR::TKEY;
  13         22  
  13         673  
67 13     13   3618 use Net::LDNS::RR::TLSA;
  13         27  
  13         708  
68 13     13   3767 use Net::LDNS::RR::TXT;
  13         24  
  13         677  
69 13     13   3557 use Net::LDNS::RR::TYPE;
  13         23  
  13         1136  
70 13     13   3841 use Net::LDNS::RR::UID;
  13         24  
  13         730  
71 13     13   3674 use Net::LDNS::RR::UINFO;
  13         23  
  13         705  
72 13     13   3663 use Net::LDNS::RR::UNSPEC;
  13         24  
  13         839  
73 13     13   3810 use Net::LDNS::RR::URI;
  13         23  
  13         909  
74 13     13   3564 use Net::LDNS::RR::WKS;
  13         25  
  13         721  
75 13     13   3587 use Net::LDNS::RR::X25;
  13         23  
  13         720  
76              
77 13     13   55 use Carp;
  13         13  
  13         2657  
78              
79 13     13   9616 use overload '<=>' => \&do_compare, 'cmp' => \&do_compare, '""' => \&to_string;
  13         7412  
  13         1027  
80              
81             sub new {
82 10     10 1 162184 my ( $class, $string ) = @_;
83              
84 10 50       28 if ( $string ) {
85 10         842 return $class->new_from_string( $string );
86             }
87             else {
88 0         0 croak "Must provide string to create RR";
89             }
90             }
91              
92             sub name {
93 1     1 1 2991 my ( $self ) = @_;
94              
95 1         44 return $self->owner;
96             }
97              
98             sub do_compare {
99 3     3 1 297147 my ( $self, $other, $swapped ) = @_;
100              
101 3         29 return $self->compare( $other );
102             }
103              
104             sub to_string {
105 13     13 1 21327 my ( $self ) = @_;
106              
107 13         385 return $self->string;
108             }
109              
110             1;
111              
112             =head1 NAME
113              
114             Net::LDNS::RR - common baseclass for all classes representing resource records.
115              
116             =head1 SYNOPSIS
117              
118             my $rr = Net::LDNS::RR->new('www.iis.se IN A 91.226.36.46');
119              
120             =head1 OVERLOADS
121              
122             This class overloads stringify and comparisons ('""', '<=>' and 'cmp').
123              
124             =head1 CLASS METHOD
125              
126             =over
127              
128             =item new($string)
129              
130             Creates a new RR object of a suitable subclass, given a string representing an RR in common presentation format.
131              
132             =back
133              
134             =head1 INSTANCE METHODS
135              
136             =over
137              
138             =item owner()
139              
140             =item name()
141              
142             These two both return the owner name of the RR.
143              
144             =item ttl()
145              
146             Returns the ttl of the RR.
147              
148             =item type()
149              
150             Return the type of the RR.
151              
152             =item class()
153              
154             Returns the class of the RR.
155              
156             =item string()
157              
158             Returns a string with the RR in presentation format.
159              
160             =item do_compare($other)
161              
162             Calls the XS C method with the arguments it needs, rather than the ones overloading gives.
163              
164             =item to_string
165              
166             Calls the XS C method with the arguments it needs, rather than the ones overloading gives. Functionally identical to L from the
167             Perl level, except for being a tiny little bit slower.
168              
169             =item rd_count()
170              
171             The number of RDATA objects in this RR.
172              
173             =item rdf($postion)
174              
175             The raw data of the RDATA object in the given position. The first item is in
176             position 0. If an attempt is made to fetch RDATA from a position that doesn't
177             have any, an exception will be thrown.
178              
179             =back