Handle hostnames with upper-case letters
[webmin.git] / xinetd / save_defaults.cgi
1 #!/usr/local/bin/perl
2 # save_defaults.cgi
3 # Save default options
4
5 require './xinetd-lib.pl';
6 &ReadParse();
7 &error_setup($text{'defs_err'});
8 &lock_file($config{'xinetd_conf'});
9 @conf = &get_xinetd_config();
10 foreach $c (@conf) {
11         if ($c->{'name'} eq 'defaults') {
12                 $defs = $c;
13                 $found++;
14                 }
15         }
16 if (!$found) {
17         $defs = { 'name' => 'defaults',
18                   'members' => [ ] };
19         }
20
21 # Parse and save inputs
22 &set_member_value($defs, 'only_from', $in{'from_def'} ? undef :
23                   $in{'from'} ? split(/\s+/, $in{'from'}) : ("") );
24 &set_member_value($defs, 'no_access', $in{'access_def'} ? undef :
25                   $in{'access'} ? split(/\s+/, $in{'access'}) : ("") );
26 if ($in{'log_mode'} == 0) {
27         &set_member_value($defs, 'log_type');
28         }
29 elsif ($in{'log_mode'} == 1) {
30         &set_member_value($defs, 'log_type', 'SYSLOG', $in{'facility'},
31                           $in{'level'} ? ( $in{'level'} ) : ( ) );
32         }
33 elsif ($in{'log_mode'} == 2) {
34         $in{'file'} =~ /^\S+$/ || &error($text{'defs_efile'});
35         $in{'soft'} =~ /^\d*$/ || &error($text{'defs_esoft'});
36         $in{'hard'} =~ /^\d*$/ || &error($text{'defs_ehard'});
37         &set_member_value($defs, 'log_type', 'FILE', $in{'file'},
38                           $in{'soft'} ? ( $in{'soft'} ) : ( ),
39                           $in{'hard'} ? ( $in{'hard'} ) : ( ) );
40         }
41 &set_member_value($defs, 'log_on_success', split(/\0/, $in{'success'}));
42 &set_member_value($defs, 'log_on_failure', split(/\0/, $in{'failure'}));
43 if ($found) {
44         &modify_xinet($defs);
45         }
46 else {
47         &create_xinet($defs);
48         }
49 &unlock_file($config{'xinetd_conf'});
50 &webmin_log("defaults", undef, undef, $defs->{'quick'});
51 &redirect("");
52