Private
Server IP : 195.201.23.43  /  Your IP : 18.222.54.32
Web Server : Apache
System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64
User : kdecoratie ( 1041)
PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/webmin/virtual-server/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/webmin/virtual-server/migrate.cgi
#!/usr/bin/perl
# Migrate some virtual server backup file

require './virtual-server-lib.pl';
$can = &can_migrate_servers();
$can || &error($text{'migrate_ecannot'});
&error_setup($text{'migrate_err'});
&ReadParseMime();
&require_migration();

# Parse source file input
$src = &parse_backup_destination("src", \%in, $can > 1, undef, undef);
($mode) = &parse_backup_url($src);
if ($mode == 0) {
	-r $src || &error($text{'migrate_efile'});
	}

if ($can < 3) {
	if (!$in{'user_def'}) {
		$in{'user'} =~ /^[a-z0-9\.\-\_]+$/i ||
			&error($text{'migrate_euser'});
		$user = $in{'user'};
		defined(getpwnam($in{'user'})) &&
			&error($text{'migrate_euserclash'});
		}
	if (!$in{'pass_def'}) {
		$pass = $in{'pass'};
		}
	}
$tmpl = &get_template($in{'template'});
&can_use_template($tmpl) || &error($text{'setup_etmpl'});
if ($can < 3) {
	# Parent can be chosen
	if (!$in{'parent_def'}) {
		$parent = &get_domain_by("user", $in{'parent'}, "parent", "");
		&can_config_domain($parent) || &error($text{'edit_ecannot'});
		}
	}
else {
	# This user's master domain
	$parent = &get_domain_by_user($base_remote_user);
	$parent && &can_edit_domain($parent) || &error($text{'edit_ecannot'});
	}
if ($parent && !$tmpl->{'for_sub'}) {
	&error($text{'migrate_etmplsub'});
	}
elsif (!$parent && !$tmpl->{'for_parent'}) {
	&error($text{'migrate_etmplparent'});
	}
$ipinfo = { };
($ipinfo->{'ip'}, $ipinfo->{'virt'}, $ipinfo->{'virtalready'}, $ipinfo->{'netmask'}) =
	&parse_virtual_ip($tmpl, $parent ? $parent->{'reseller'} :
				 &reseller_admin() ? $base_remote_user : undef);
if (&supports_ip6()) {
	($ipinfo->{'ip6'}, $ipinfo->{'virt6'}, $ipinfo->{'virt6already'},
	 $ipinfo->{'netmask6'}) =
		&parse_virtual_ip6($tmpl, $parent ? $parent->{'reseller'} :
					 &reseller_admin() ? $base_remote_user : undef);
	}
if (!$in{'prefix_def'}) {
	$in{'prefix'} =~ /^[a-z0-9\.\-]+$/i ||
		&error($text{'setup_eprefix'});
	$prefix = $in{'prefix'};
	}
$in{'email_def'} || $in{'email'} =~ /\S/ || &error($text{'setup_eemail'});

my @footer_action = &vui_footer_history_back();

&ui_print_unbuffered_header(undef, $text{'migrate_title'}, "");
# Download the file
$oldsrc = $src;
$nice = &nice_backup_url($oldsrc);
if ($mode == 5) {
	# Uploaded data .. save to temp file
	&$first_print(&text('migrate_uploading', $in{'src_file'}));
	$src = &transname();
	&open_tempfile(SRC, ">$src", 0, 1);
	&print_tempfile(SRC, $in{'src_upload'});
	&close_tempfile(SRC);
	@st = stat($src);
	&$second_print(&text('migrate_uploaded', &nice_size($st[7])));
	}
elsif ($mode > 0) {
	# Fetch from some server
	&$first_print(&text('migrate_downloading', $nice));
	$temp = &transname();
	$err = &download_backup($src, $temp);
	if ($err) {
		&$second_print(&text('migrate_edownload', $err));
		goto DONE;
		}
	$src = $temp;
	@st = stat($src);
	&$second_print(&text('migrate_downloaded', &nice_size($st[7])));
	}

# Validate the file
&$first_print($text{'migrate_validating'});
$vfunc = "migration_$in{'type'}_validate";
($err, $domain, $user, $pass) =
	&$vfunc($src, undef, $user, $parent, $prefix, $pass);
if ($err) {
	&$second_print(&text('migrate_evalidate', $err));
	goto DONE;
	}
elsif (&domain_name_clash($domain)) {
	&$second_print($text{'migrate_eclash'});
	goto DONE;
	}

@footer_action = ("", $text{'index_return'});
&$second_print($text{'setup_done'});

# Call the migration function
&lock_domain_name($domain);
&$first_print(&text('migrate_doing1', "<tt>$domain</tt>", $nice));
&$indent_print();
$mfunc = "migration_$in{'type'}_migrate";
@doms = &$mfunc($src, $domain, $user, $in{'webmin'}, $in{'template'},
		$ipinfo, $pass, $parent, $prefix,
		$in{'email_def'} ? undef : $in{'email'});
&unlock_domain_name($domain);
&run_post_actions();
&$outdent_print();

# Fix htaccess files
foreach my $d (@doms) {
	&fix_script_htaccess_files($d, &public_html_dir($d));
	}

# If this user is a reseller, grant any new domains to him
if (&reseller_admin()) {
	foreach my $d (@doms) {
		$d->{'reseller'} = $base_remote_user;
		&save_domain($d);
		}
	}

if (@doms) {
	$d = $doms[0];
	&$second_print(&text('migrate_ok', "edit_domain.cgi?dom=$d->{'id'}",
	                                   "<tt>".&html_escape($in->{'dom'} || $d->{'dom'})."</tt>"));

	# Call any theme post command
	if (defined(&theme_post_save_domain)) {
		&theme_post_save_domain($d, 'create');
		}
	}
else {
	@footer_action = &vui_footer_history_back();
	&$second_print(&text('migrate_failed'));
	}

DONE:
&ui_print_footer(@footer_action);

Private