File Coverage

blib/lib/Net/DRI/Protocol/Whois.pm
Criterion Covered Total %
statement 18 34 52.9
branch 0 2 0.0
condition n/a
subroutine 6 10 60.0
pod 1 2 50.0
total 25 48 52.0


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, Whois Protocol (RFC3912)
2             ##
3             ## Copyright (c) 2007-2010,2013 Patrick Mevzek . All rights reserved.
4             ##
5             ## This file is part of Net::DRI
6             ##
7             ## Net::DRI is free software; you can redistribute it and/or modify
8             ## it under the terms of the GNU General Public License as published by
9             ## the Free Software Foundation; either version 2 of the License, or
10             ## (at your option) any later version.
11             ##
12             ## See the LICENSE file that comes with this distribution for more details.
13             ####################################################################################################
14              
15             package Net::DRI::Protocol::Whois;
16              
17 1     1   629 use strict;
  1         2  
  1         29  
18 1     1   4 use warnings;
  1         2  
  1         31  
19              
20 1     1   4 use base qw(Net::DRI::Protocol);
  1         1  
  1         80  
21              
22 1     1   4 use Net::DRI::Util;
  1         2  
  1         14  
23 1     1   4 use Net::DRI::Exception;
  1         1  
  1         17  
24 1     1   333 use Net::DRI::Protocol::Whois::Message;
  1         2  
  1         6  
25              
26             =pod
27              
28             =head1 NAME
29              
30             Net::DRI::Protocol::Whois - Whois Protocol (RFC3912) for Net::DRI
31              
32             =head1 DESCRIPTION
33              
34             Please see the README file for details.
35              
36             =head1 SUPPORT
37              
38             For now, support questions should be sent to:
39              
40             Enetdri@dotandco.comE
41              
42             Please also see the SUPPORT file in the distribution.
43              
44             =head1 SEE ALSO
45              
46             Ehttp://www.dotandco.com/services/software/Net-DRI/E
47              
48             =head1 AUTHOR
49              
50             Patrick Mevzek, Enetdri@dotandco.comE
51              
52             =head1 COPYRIGHT
53              
54             Copyright (c) 2007-2010,2013 Patrick Mevzek .
55             All rights reserved.
56              
57             This program is free software; you can redistribute it and/or modify
58             it under the terms of the GNU General Public License as published by
59             the Free Software Foundation; either version 2 of the License, or
60             (at your option) any later version.
61              
62             See the LICENSE file that comes with this distribution for more details.
63              
64             =cut
65              
66             ####################################################################################################
67              
68             sub new
69             {
70 0     0 1   my ($c,$ctx,$rp)=@_;
71 0           my $drd=$ctx->{registry}->driver();
72 0           my $self=$c->SUPER::new($ctx);
73 0           $self->name('whois');
74 0           my $version=Net::DRI::Util::check_equal($rp->{version},['1.0'],'1.0');
75 0           $self->version($version);
76              
77 0           my @tlds=$drd->tlds();
78             ## Net::DRI::Exception::usererr_invalid_parameters('Whois can not be used for registry handling multiple TLDs: '.join(',',@tlds)) unless (@tlds==1 || lc($tlds[0]) eq 'com');
79 0 0         $drd->set_factories($self) if $drd->can('set_factories');
80 0     0     $self->factories('message',sub { return Net::DRI::Protocol::Whois::Message->new(@_)->version($version); });
  0            
81 0           $self->_load(uc($tlds[0]));
82 0           return $self;
83             }
84              
85             sub _load
86             {
87 0     0     my ($self,$tld)=@_;
88 0           return $self->SUPER::_load('Net::DRI::Protocol::Whois::Domain::'.$tld);
89             }
90              
91             sub transport_default
92             {
93 0     0 0   my ($self)=@_;
94 0           return (protocol_connection => 'Net::DRI::Protocol::Whois::Connection', protocol_version => 1);
95             }
96              
97             ####################################################################################################
98             1;