3 # Save inputs from conf_net.cgi
5 require './samba-lib.pl';
7 &lock_file($config{'smb_conf'});
8 $global = &get_share("global");
12 &error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
13 &error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'};
15 &error_setup($text{'savesmb_fail'});
16 &setval("workgroup", $in{workgroup_def} ? "" : $in{workgroup}, "");
18 if ($in{'wins'} == 0) {
19 &delval("wins server");
20 &setval("wins support", "true");
22 elsif ($in{'wins'} == 1) {
23 &setval("wins support", "false");
24 &setval("wins server", $in{'wins_server'}, "");
27 &delval("wins server");
28 &setval("wins support", "false");
31 if ($in{server_string_def} == 1) {
32 &delval("server string");
35 &setval("server string",
36 $in{server_string_def} == 2 ? "" : $in{server_string}, "NONE");
39 &setval("netbios name", $in{'netbios_name'}, "");
41 &setval("netbios aliases", $in{'netbios_aliases'}, "");
43 &setval("default", $in{default}, "");
45 &setval("auto services", join(' ', split(/\0/, $in{auto_services})), "");
47 if (!$in{max_disk_size_def} && $in{max_disk_size} !~ /^\d+$/) {
48 &error(&text('savesmb_size', $in{max_disk_size}));
50 &setval("max disk size", $in{max_disk_size_def} ? 0 : $in{max_disk_size}, 0);
52 &setval("message command", $in{message_command}, "");
54 $in{os_level} =~ /^\d+$/ ||
55 &error(&text('savesmb_oslevel', $in{os_level}));
56 &setval("os level", $in{os_level}, 0);
58 &setval("protocol", $in{protocol}, "");
60 &setval("preferred master", $in{preferred_master}, "auto");
62 &setval("security", $in{security}, "");
64 if ($in{security} eq "server" && $in{password_server} !~ /\S/) {
65 &error($text{'savesmb_server'});
67 &setval("password server", $in{password_server}, "");
69 if ($in{remote_def}) { &delval("remote announce"); }
71 for($i=0; defined($in{"remote_ip$i"}); $i++) {
72 if ($in{"remote_ip$i"} !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/)
74 push(@rem, $in{"remote_ip$i"} .
75 ($in{"remote_wg$i"} =~ /\S/ ? "/".$in{"remote_wg$i"} : ""));
77 &setval("remote announce", join(' ', @rem), "");
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);