mirror of
https://github.com/webmin/webmin.git
synced 2026-02-15 19:22:38 +00:00
92 lines
2.0 KiB
Perl
Executable File
92 lines
2.0 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Change OSDN download settings
|
|
|
|
require './webmin-lib.pl';
|
|
&error_setup($text{'proxy_err'});
|
|
&ReadParse();
|
|
|
|
if ($in{'clear'}) {
|
|
# Just clearing Webmin's cache
|
|
&ui_print_header(undef, $text{'clear_title'}, "");
|
|
|
|
$sz = &disk_usage_kb($main::http_cache_directory)*1024;
|
|
if ($sz > 0) {
|
|
opendir(DIR, $main::http_cache_directory);
|
|
@files = readdir(DIR);
|
|
closedir(DIR);
|
|
&system_logged("rm -rf ".
|
|
quotemeta($main::http_cache_directory));
|
|
print &text('clear_done', &nice_size($sz), @files-2),"<p>\n";
|
|
&webmin_log("osdnclear");
|
|
}
|
|
else {
|
|
print &text('clear_none'),"<p>\n";
|
|
}
|
|
|
|
&ui_print_footer("", $text{'index_return'});
|
|
exit;
|
|
}
|
|
|
|
&lock_file("$config_directory/config");
|
|
if ($config{'osdn'}) {
|
|
# Parse mirror selection from list
|
|
if ($in{'mirror'} eq "*") {
|
|
$in{'other'} =~ /^\S+$/ || &error($text{'proxy_eother'});
|
|
$gconfig{'osdn_mirror'} = $in{'other'};
|
|
}
|
|
else {
|
|
$gconfig{'osdn_mirror'} = $in{'mirror'};
|
|
}
|
|
}
|
|
else {
|
|
# Use manually entered mirror
|
|
if ($in{'mirror_def'}) {
|
|
$gconfig{'osdn_mirror'} = undef;
|
|
}
|
|
else {
|
|
$in{'mirror'} =~ /^\S+$/ || &error($text{'proxy_eother'});
|
|
$gconfig{'osdn_mirror'} = $in{'mirror'};
|
|
}
|
|
}
|
|
|
|
# Save cache size
|
|
if ($in{'cache_def'}) {
|
|
delete($gconfig{'cache_size'});
|
|
}
|
|
else {
|
|
$in{'cache'} =~ /^\d+$/ || &error($text{'proxy_ecache'});
|
|
$gconfig{'cache_size'} = $in{'cache_units'}*$in{'cache'};
|
|
}
|
|
|
|
# Save cache days
|
|
if ($in{'days_def'}) {
|
|
delete($gconfig{'cache_days'});
|
|
}
|
|
else {
|
|
$in{'days'} =~ /^\d+$/ || &error($text{'proxy_edays'});
|
|
$gconfig{'cache_days'} = $in{'days'};
|
|
}
|
|
|
|
# Save modules
|
|
if ($in{'mods_def'} == 0) {
|
|
delete($gconfig{'cache_mods'});
|
|
}
|
|
else {
|
|
@mods = split(/\0/, $in{'mods'});
|
|
@mods || &error($text{'proxy_emods'});
|
|
if ($in{'mods_def'} == 1) {
|
|
$gconfig{'cache_mods'} = join(" ", @mods);
|
|
}
|
|
else {
|
|
$gconfig{'cache_mods'} = "!".join(" ", @mods);
|
|
}
|
|
}
|
|
|
|
# Write out the file
|
|
&write_file("$config_directory/config", \%gconfig);
|
|
&unlock_file("$config_directory/config");
|
|
&webmin_log('osdn', undef, undef, \%in);
|
|
|
|
&redirect("");
|
|
|