MOON
Server: Apache
System: Linux cl1170g 4.19.62-mod-std-ipv6-64-rescue #828825 SMP Tue Jul 30 13:54:49 UTC 2019 x86_64
User: wh0f20bb (1057)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //proc/thread-self/root/root/webmin-1.740/backup-config/backup.cgi
#!/usr/bin/perl
# Do an immediate backup

use strict;
use warnings;
require './backup-config-lib.pl';
our (%in, %text, %config, $module_config_file);
&ReadParse();

# Validate inputs
&error_setup($text{'backup_err'});
my $dest = &parse_backup_destination("dest", \%in);
my ($configfile, $nofiles, $others) = &parse_backup_what("what", \%in);
my @mods = split(/\0/, $in{'mods'});
@mods || ($nofiles && !$configfile) || &error($text{'backup_emods'});

# Go for it
my ($mode, $user, $pass, $server, $path, $port) = &parse_backup_url($dest);
my $err;
if ($mode != 4) {
	# Save somewhere, and tell the user
	&ui_print_header(undef, $text{'backup_title'}, "");
	print &text('backup_doing', &nice_dest($dest, 1)),"<p>\n";
	my $size;
	my @files;
	$err = &execute_backup(\@mods, $dest, \$size, \@files,
			       $configfile, $nofiles,
			       [ split(/\t+/, $others) ]);
	if ($err) {
		print &text('backup_failed', $err),"<p>\n";
		}
	else {
		print &text('backup_done', &nice_size($size),
			    scalar(@files)),"<p>\n";
		}
	&ui_print_footer("", $text{'index_return2'});
	}
else {
	# Output file in browser
	my $temp = &transname();
	my $size;
	$err = &execute_backup(\@mods, $temp, \$size, undef,
			       $configfile, $nofiles,
			       [ split(/\t+/, $others) ]);
	if ($err) {
		&unlink_file($temp);
		&error($err);
		}
	print "Content-type: application/octet-stream\n\n";
	my $buf;
	open(TEMP, $temp);
	while(read(TEMP, $buf, 1024)) {
		print $buf;
		}
	close(TEMP);
	&unlink_file($temp);
	}

if (!$err) {
	# Save config
	$config{'dest'} = $dest;
	$config{'mods'} = join(" ", @mods);
	$config{'configfile'} = $in{'configfile'};
	$config{'nofiles'} = $in{'nofiles'};
	&lock_file($module_config_file);
	&save_module_config();
	&unlock_file($module_config_file);
	&webmin_log("backup", undef, $dest, { 'mods' => \@mods });
	}