Handle hostnames with upper-case letters
[webmin.git] / samba / save_smb.cgi
1 #!/usr/local/bin/perl
2 # save_net.cgi
3 # Save inputs from conf_net.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_pcs'}") unless $access{'conf_smb'};
14
15 &error_setup($text{'savesmb_fail'});
16 &setval("workgroup", $in{workgroup_def} ? "" : $in{workgroup}, "");
17
18 if ($in{'wins'} == 0) {
19         &delval("wins server");
20         &setval("wins support", "true");
21         }
22 elsif ($in{'wins'} == 1) {
23         &setval("wins support", "false");
24         &setval("wins server", $in{'wins_server'}, "");
25         }
26 else {
27         &delval("wins server");
28         &setval("wins support", "false");
29         }
30
31 if ($in{server_string_def} == 1) {
32         &delval("server string");
33         }
34 else {
35         &setval("server string",
36                 $in{server_string_def} == 2 ? "" : $in{server_string}, "NONE");
37         }
38
39 &setval("netbios name", $in{'netbios_name'}, "");
40
41 &setval("netbios aliases", $in{'netbios_aliases'}, "");
42
43 &setval("default", $in{default}, "");
44
45 &setval("auto services", join(' ', split(/\0/, $in{auto_services})), "");
46
47 if (!$in{max_disk_size_def} && $in{max_disk_size} !~ /^\d+$/) {
48         &error(&text('savesmb_size', $in{max_disk_size}));
49         }
50 &setval("max disk size", $in{max_disk_size_def} ? 0 : $in{max_disk_size}, 0);
51
52 &setval("message command", $in{message_command}, "");
53
54 $in{os_level} =~ /^\d+$/ ||
55         &error(&text('savesmb_oslevel', $in{os_level}));
56 &setval("os level", $in{os_level}, 0);
57
58 &setval("protocol", $in{protocol}, "");
59
60 &setval("preferred master", $in{preferred_master}, "auto");
61
62 &setval("security", $in{security}, "");
63
64 if ($in{security} eq "server" && $in{password_server} !~ /\S/) {
65         &error($text{'savesmb_server'});
66         }
67 &setval("password server", $in{password_server}, "");
68
69 if ($in{remote_def}) { &delval("remote announce"); }
70 else {
71         for($i=0; defined($in{"remote_ip$i"}); $i++) {
72                 if ($in{"remote_ip$i"} !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/)
73                         { next; }
74                 push(@rem, $in{"remote_ip$i"} .
75                    ($in{"remote_wg$i"} =~ /\S/ ? "/".$in{"remote_wg$i"} : ""));
76                 }
77         &setval("remote announce", join(' ', @rem), "");
78         }
79
80 if ($global) { &modify_share("global", "global"); }
81 else { &create_share("global"); }
82 &unlock_file($config{'smb_conf'});
83 &webmin_log("smb", undef, undef, \%in);
84 &redirect("");
85