);
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;
sub table { 'svc_domain'; }
-=item insert
+=item insert [ , OPTION => VALUE ... ]
Adds this domain to the database. If there is an error, returns the error,
otherwise returns false.
appropriate records are added to the domain_record table (see
L<FS::domain_record>).
+Currently available options are: I<depend_jobnum>
+
+If I<depend_jobnum> is set (to a scalar jobnum or an array reference of
+jobnums), all provisioning jobs will have a dependancy on the supplied
+jobnum(s) (they will not run until the specific job(s) complete(s)).
+
=cut
sub insert {
return "Domain not found (see whois)";
}
- $error = $self->SUPER::insert;
+ $error = $self->SUPER::insert(@_);
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error;
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";
}
}
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;
}
" (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 '' ) {
return "Unknown catchall" unless $svc_acct;
}
- $self->ut_textn('purpose');
+ $self->ut_textn('purpose')
+ or $self->SUPER::check;
}
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} }
=item whois
-Returns the Net::Whois::Domain object (see L<Net::Whois>) for this domain, or
-undef if the domain is not found in whois.
+# Returns the Net::Whois::Domain object (see L<Net::Whois>) 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