2 # Save advanced options
4 require './webmin-lib.pl';
6 &error_setup($text{'advanced_err'});
7 &get_miniserv_config(\%miniserv);
9 # Save global temp dir setting
10 if ($in{'tempdir_def'}) {
11 delete($gconfig{'tempdir'});
14 -d $in{'tempdir'} || &error($text{'advanced_etemp'});
15 $gconfig{'tempdir'} = $in{'tempdir'};
18 # Save temp clearing options
19 $gconfig{'tempdirdelete'} = $in{'tempdirdelete'};
20 if ($in{'tempdelete_def'}) {
21 $gconfig{'tempdelete_days'} = '';
24 $in{'tempdelete'} =~ /^[0-9\.]+$/ ||
25 &error($text{'advanced_etempdelete'});
26 $gconfig{'tempdelete_days'} = $in{'tempdelete'};
29 # Save per-module temp dirs
30 for($i=0; defined($tmod = $in{'tmod_'.$i}); $i++) {
32 $tdir = $in{'tdir_'.$i};
33 %minfo = &get_module_info($tmod);
34 -d $tdir || &error(&text('advanced_etdir', $minfo{'desc'}));
35 push(@tdirs, [ $tmod, $tdir ]);
37 &save_tempdirs(\%gconfig, \@tdirs);
40 if ($in{'umask_def'}) {
41 delete($gconfig{'umask'});
44 $in{'umask'} =~ /^[0-7]{3}$/ || &error($text{'advanced_eumask'});
45 $gconfig{'umask'} = $in{'umask'};
49 if (defined($in{'chattr'})) {
50 $gconfig{'chattr'} = $in{'chattr'};
54 if ($in{'nice_def'}) {
55 delete($gconfig{'nice'});
58 $gconfig{'nice'} = $in{'nice'};
61 # Save scheduling class
62 if (defined($in{'sclass'})) {
63 $gconfig{'sclass'} = $in{'sclass'};
64 $gconfig{'sprio'} = $in{'sprio'};
67 &lock_file("$config_directory/config");
68 &write_file("$config_directory/config", \%gconfig);
69 &unlock_file("$config_directory/config");
71 if (defined($in{'preload'})) {
72 # Save preload option, forcing new mode
74 $miniserv{'premodules'} = 'WebminCore';
77 delete($miniserv{'premodules'});
79 &save_preloads(\%miniserv, [ ]);
82 # Save pre-cache option
83 if ($in{'precache_mode'} == 0) {
84 $miniserv{'precache'} = 'none';
86 elsif ($in{'precache_mode'} == 1) {
87 $miniserv{'precache'} = '';
90 $in{'precache'} =~ /\S/ || &error($text{'advanced_eprecache'});
91 $miniserv{'precache'} = $in{'precache'};
94 &lock_file($ENV{'MINISERV_CONFIG'});
95 &put_miniserv_config(\%miniserv);
96 &unlock_file($ENV{'MINISERV_CONFIG'});
99 &webmin_log("advanced");