Handle hostnames with upper-case letters
[webmin.git] / spam / save_user.cgi
1 #!/usr/local/bin/perl
2 # save_user.cgi
3 # Save other user options
4
5 require './spam-lib.pl';
6 &error_setup($text{'user_err'});
7 &ReadParse();
8 &set_config_file_in(\%in);
9 &can_use_check("user");
10 &execute_before("user");
11 &lock_spam_files();
12 $conf = &get_config();
13
14 if ($in{'dns'} == 1) {
15         &save_directives($conf, 'dns_available', [ 'yes' ], 1);
16         }
17 elsif ($in{'dns'} == 0) {
18         &save_directives($conf, 'dns_available', [ 'no' ], 1);
19         }
20 elsif ($in{'dns'} == -1) {
21         &save_directives($conf, 'dns_available', [ ], 1);
22         }
23 else {
24         local $test = "test";
25         if ($in{'dnslist'}) {
26                 $test .= ": $in{'dnslist'}";
27                 }
28         if ($config{'defaults'} && !$in{'dnslist'}) {
29                 &save_directives($conf, 'dns_available', [ ]);
30                 }
31         else {
32                 &save_directives($conf, 'dns_available', [ $test ], 1);
33                 }
34         }
35
36 &parse_opt($conf, "razor_timeout", \&check_timeout);
37
38 &parse_opt($conf, "dcc_path", \&check_path);
39 &parse_opt($conf, "dcc_body_max", \&check_max);
40 &parse_opt($conf, "dcc_timeout", \&check_timeout);
41 &parse_opt($conf, "dcc_fuz1_max", \&check_max);
42 &parse_opt($conf, "dcc_fuz2_max", \&check_max);
43 if (!&version_atleast(3)) {
44         &parse_yes_no($conf, "dcc_add_header");
45         }
46
47 &parse_opt($conf, "pyzor_path", \&check_path);
48 &parse_opt($conf, "pyzor_body_max", \&check_max);
49 &parse_opt($conf, "pyzor_timeout", \&check_timeout);
50 &parse_yes_no($conf, "pyzor_add_header");
51
52 &flush_file_lines();
53 &unlock_spam_files();
54 &execute_after("user");
55 &webmin_log("user");
56 &redirect($redirect_url);
57
58 sub check_timeout
59 {
60 $_[0] =~ /^\d+$/ || &error(&text('user_etimeout', $_[0]));
61 }
62
63 sub check_path
64 {
65 $_[0] =~ /^\// && -r $_[0] || &error(&text('user_epath', $_[0]));
66 }
67
68 sub check_max
69 {
70 $_[0] =~ /^\d+$/ || &error(&text('user_emax', $_[0]));
71 }
72