File: //proc/self/root/scripts.20110531.215904.25158/xferpoint
#!/usr/bin/perl
# cpanel - xferpoint Copyright(c) 2010 cPanel, Inc.
# All rights Reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
BEGIN { unshift @INC, '/usr/local/cpanel'; }
use strict;
use Cpanel::Hostname ();
use Cpanel::SafeRun::Simple ();
use Cpanel::AcctUtils ();
use Cpanel::DomainIp ();
use Cpanel::DomainTools ();
our $VERSION = '0.5';
if ( $ARGV[0] eq '--version' ) {
print "VERSION: $VERSION\n";
exit;
}
my $user = shift(@ARGV);
my $sourceip = shift;
my $destip = shift;
my $domain = shift;
my $shared_ip = shift;
my @nameservers = @ARGV;
my $hostname = Cpanel::Hostname::gethostname();
if ( !$user || !$sourceip || !$destip || !$domain || !$shared_ip ) {
die "Usage: $0 user sourceip destip domain sharedip [nameserver1 nameserver2 ...]";
}
if ( !Cpanel::AcctUtils::accountexists($user) ) {
die "The user '$user' doesn't exist.\n";
}
foreach my $ip ( $sourceip, $destip, $shared_ip ) {
next if $ip == -1;
if ( !Cpanel::DomainIp::isvalidipv4($ip) ) {
die "'$ip' is not a valid ip.\n";
}
}
if ( !Cpanel::DomainTools::is_valid( $domain, { wildcard_disallowed => 1 } ) ) {
die "'$domain' is not valid as a domain name.\n";
}
if (@nameservers && scalar @nameservers < 2) {
die "There must be at least two nameservers given.\n";
}
print "[xferpoint] server:$hostname user:$user\n";
system '/scripts/xfertool', '--disallowlogins', $user;
system '/scripts/xfertool', '--blockdynamiccontent', $user;
system '/scripts/xfertool', '--setupmaildest', $user, 'secondary';
if ( -x '/usr/local/cpanel/bin/swapip' ) {
system '/usr/local/cpanel/bin/swapip', $sourceip, $destip, $shared_ip, $domain;
}
if (@nameservers) {
foreach my $dns (@nameservers) {
if ( !Cpanel::DomainTools::is_valid($dns) ) {
die "$dns is not valid.\n";
}
}
system '/scripts/xfertool', '--changenameservers', $user, @nameservers;
}
else {
print "[xferpoint] not updating nameservers (none provided)\n";
}
print "[xferpoint] complete\n";