Handle hostnames with upper-case letters
[webmin.git] / samba / save_misc.cgi
1 #!/usr/local/bin/perl
2 # save_misc.cgi
3 # Save inputs from conf_misc.cgi
4
5 require './samba-lib.pl';
6 &ReadParse();
7 &lock_file($config{'smb_conf'});
8 $global = &get_share("global");
9
10 # check acls
11
12 &error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
13 &error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'};
14  
15 &error_setup($text{'savemisc_fail'});
16 &setval("debug level", $in{debug_level}, "");
17
18 &setval("getwd cache", $in{getwd_cache}, "no");
19
20 if (!$in{lock_directory_def} && !(-d &parent_dir($in{lock_directory}))) {
21         &error($text{'savemisc_lockdir'});
22         }
23 &setval("lock directory", $in{lock_directory_def}?"":$in{lock_directory}, "");
24
25 if (!$in{log_file_def} && !(-d &parent_dir($in{log_file}))) {
26         &error($text{'savemisc_logdir'});
27         }
28 &setval("log file", $in{log_file_def} ? "" : $in{log_file}, "");
29
30 if (!$in{max_log_size_def} && $in{max_log_size} !~ /^\d+$/) {
31         &error(&text('savemisc_logsize',$in{max_log_size}));
32         }
33 &setval("max log size", $in{max_log_size_def} ? 0 : $in{max_log_size}, 0);
34
35 &setval("read raw", $in{read_raw}, "yes");
36
37 &setval("write raw", $in{write_raw}, "yes");
38
39 if (!$in{read_size_def} && $in{read_size} !~ /^\d+$/) {
40         &error(&text('savemisc_overlap',$in{read_size}));
41         }
42 &setval("read size", $in{read_size_def} ? 0 : $in{read_size}, 0);
43
44 if (!$in{root_directory_def} && !(-d $in{root_directory})) {
45         &error(&text('savemisc_chroot', $in{root_directory}));
46         }
47 &setval("root directory", $in{root_directory_def}?"":$in{root_directory}, "");
48
49 if (!$in{smbrun_def} && !(-x $in{smbrun})) {
50         &error(&text('savemisc_smbrun', $in{smbrun}));
51         }
52 &setval("smbrun", $in{smbrun_def} ? "" : $in{smbrun}, "");
53
54 if (!$in{time_offset_def} && $in{time_offset} !~ /^\d+$/) {
55         &error(&text('savemisc_time',$in{time_offset}));
56         }
57 &setval("time offset", $in{time_offset_def} ? 0 : $in{time_offset}, 0);
58
59 &setval("read prediction", $in{read_prediction}, "no");
60
61 if ($global) { &modify_share("global", "global"); }
62 else { &create_share("global"); }
63 &unlock_file($config{'smb_conf'});
64 &webmin_log("misc", undef, undef, \%in);
65 &redirect("");
66
67 sub parent_dir
68 {
69 $_[0] =~ /^(.*\/)[^\/]+$/; return $1;
70 }