X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_domain.pm;h=bdaf79b2f2a47024481f457c06b2e3e3fac9b477;hb=22c70177969f30e2e419b32cb5d475c143f10b12;hp=c88b3e6683171d45f7310f901b6b4fe29c8b8502;hpb=eb9668a6f3181ee02cb335272c5ee4616e61fd09;p=freeside.git diff --git a/FS/FS/svc_domain.pm b/FS/FS/svc_domain.pm index c88b3e668..bdaf79b2f 100644 --- a/FS/FS/svc_domain.pm +++ b/FS/FS/svc_domain.pm @@ -7,7 +7,7 @@ use vars qw( @ISA $whois_hack $conf ); use Carp; use Date::Format; -use Net::Whois 1.0; +#use Net::Whois::Raw; use FS::Record qw(fields qsearch qsearchs dbh); use FS::Conf; use FS::svc_Common; @@ -230,7 +230,11 @@ sub delete { my $error = $domain_record->delete; if ( $error ) { $dbh->rollback if $oldAutoCommit; - return $error; + return "can't delete DNS entry: ". + join(' ', map $domain_record->$_(), + qw( reczone recaf rectype recdata ) + ). + ":$error"; } } @@ -256,6 +260,8 @@ sub replace { return "Can't change domain - reorder." if $old->getfield('domain') ne $new->getfield('domain'); + # Better to do it here than to force the caller to remember that svc_domain is weird. + $new->setfield(action => 'M'); my $error = $new->SUPER::replace($old); return $error if $error; } @@ -340,7 +346,8 @@ sub check { " (or unknown registry - try \$whois_hack)"; } - $recref->{action} =~ /^(M|N)$/ or return "Illegal action"; + $recref->{action} =~ /^(M|N)$/ + or return "Illegal action: ". $recref->{action}; $recref->{action} = $1; if ( $recref->{catchall} ne '' ) { @@ -361,11 +368,13 @@ sub domain_record { my $self = shift; my %order = ( - SOA => 1, - NS => 2, - MX => 3, - CNAME => 4, - A => 5, + 'SOA' => 1, + 'NS' => 2, + 'MX' => 3, + 'CNAME' => 4, + 'A' => 5, + 'TXT' => 6, + 'PTR' => 7, ); sort { $order{$a->rectype} <=> $order{$b->rectype} } @@ -384,15 +393,16 @@ sub catchall_svc_acct { =item whois -Returns the Net::Whois::Domain object (see L) for this domain, or -undef if the domain is not found in whois. +# Returns the Net::Whois::Domain object (see L) for this domain, or +# undef if the domain is not found in whois. (If $FS::svc_domain::whois_hack is true, returns that in all cases instead.) =cut sub whois { - $whois_hack or new Net::Whois::Domain $_[0]->domain; + #$whois_hack or new Net::Whois::Domain $_[0]->domain; + $whois_hack or die "whois_hack not set...\n"; } =item _whois