File Coverage

blib/lib/Net/DRI/DRD/DotCooperation.pm
Criterion Covered Total %
statement 26 36 72.2
branch 2 6 33.3
condition 1 6 16.6
subroutine 10 14 71.4
pod 4 9 44.4
total 43 71 60.5


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, DotCooperation (.COOP) policies for Net::DRI
2             ##
3             ## Copyright (c) 2006-2009,2011,2016 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::DRD::DotCooperation;
16              
17 2     2   1071 use strict;
  2         2  
  2         44  
18 2     2   6 use warnings;
  2         2  
  2         39  
19              
20 2     2   6 use base qw/Net::DRI::DRD/;
  2         0  
  2         574  
21              
22 2     2   8 use Net::DRI::Exception;
  2         2  
  2         28  
23 2     2   6 use DateTime::Duration;
  2         1  
  2         503  
24              
25             =pod
26              
27             =head1 NAME
28              
29             Net::DRI::DRD::DotCooperation - DotCooperation (.COOP) policies for Net::DRI
30              
31             =head1 DESCRIPTION
32              
33             Please see the README file for details.
34              
35             =head1 SUPPORT
36              
37             For now, support questions should be sent to:
38              
39             Enetdri@dotandco.comE
40              
41             Please also see the SUPPORT file in the distribution.
42              
43             =head1 SEE ALSO
44              
45             Ehttp://www.dotandco.com/services/software/Net-DRI/E
46              
47             =head1 AUTHOR
48              
49             Patrick Mevzek, Enetdri@dotandco.comE
50              
51             =head1 COPYRIGHT
52              
53             Copyright (c) 2006-2009,2011,2016 Patrick Mevzek .
54             All rights reserved.
55              
56             This program is free software; you can redistribute it and/or modify
57             it under the terms of the GNU General Public License as published by
58             the Free Software Foundation; either version 2 of the License, or
59             (at your option) any later version.
60              
61             See the LICENSE file that comes with this distribution for more details.
62              
63             =cut
64              
65             ####################################################################################################
66              
67             sub new
68             {
69 1     1 0 2 my $class=shift;
70 1         5 my $self=$class->SUPER::new(@_);
71 1         4 $self->{info}->{host_as_attr}=0;
72 1         2 return $self;
73             }
74              
75 0     0 1 0 sub periods { return map { DateTime::Duration->new(years => $_) } (1..10); }
  0         0  
76 1     1 1 2 sub name { return 'DotCooperation'; }
77 1     1 1 3 sub tlds { return ('coop'); }
78 0     0 1 0 sub object_types { return ('domain','contact','ns'); }
79 0     0 0 0 sub profile_types { return qw/epp/; }
80              
81             sub transport_protocol_default
82             {
83 1     1 0 2 my ($self,$type)=@_;
84              
85 1 50       4 return ('Net::DRI::Transport::Socket',{remote_host=>'217.10.159.121'},'Net::DRI::Protocol::EPP::Extensions::COOP',{}) if $type eq 'epp'; ## .COOP test server
86 0         0 return;
87             }
88              
89             ## TODO: these SSL checks should probably be done in other DRD classes too !
90             sub transport_protocol_init
91             {
92 1     1 0 1 my ($self,$type,$tc,$tp,$pc,$pp,$test)=@_;
93              
94 1 50 33     4 if ($type eq 'epp' && !$test)
95             {
96 0   0     0 my @n=grep { ! exists($tp->{$_}) || ! defined($tp->{$_}) || ! $tp->{$_}} qw/ssl_key_file ssl_cert_file ssl_ca_file/;
  0         0  
97 0 0       0 Net::DRI::Exception::usererr_insufficient_parameters('These transport parameters must be defined: '.join(' ',@n)) if @n;
98             }
99              
100 1         2 return;
101             }
102              
103             ####################################################################################################
104              
105             sub verify_name_domain
106             {
107 0     0 0   my ($self,$ndr,$domain,$op)=@_;
108 0           return $self->_verify_name_rules($domain,$op,{check_name => 1,
109             my_tld => 1,
110             icann_reserved => 1,
111             });
112             }
113              
114             ####################################################################################################
115             1;