mirror of
https://github.com/webmin/webmin.git
synced 2025-07-20 16:48:46 +00:00
86 lines
2.2 KiB
Perl
Executable File
86 lines
2.2 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# save_net.cgi
|
|
# Save inputs from conf_net.cgi
|
|
|
|
require './samba-lib.pl';
|
|
&ReadParse();
|
|
&lock_file($config{'smb_conf'});
|
|
$global = &get_share("global");
|
|
|
|
# check acls
|
|
|
|
&error_setup("$text{'eacl_aviol'}ask_epass.cgi");
|
|
&error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'};
|
|
|
|
&error_setup($text{'savesmb_fail'});
|
|
&setval("workgroup", $in{workgroup_def} ? "" : $in{workgroup}, "");
|
|
|
|
if ($in{'wins'} == 0) {
|
|
&delval("wins server");
|
|
&setval("wins support", "true");
|
|
}
|
|
elsif ($in{'wins'} == 1) {
|
|
&setval("wins support", "false");
|
|
&setval("wins server", $in{'wins_server'}, "");
|
|
}
|
|
else {
|
|
&delval("wins server");
|
|
&setval("wins support", "false");
|
|
}
|
|
|
|
if ($in{server_string_def} == 1) {
|
|
&delval("server string");
|
|
}
|
|
else {
|
|
&setval("server string",
|
|
$in{server_string_def} == 2 ? "" : $in{server_string}, "NONE");
|
|
}
|
|
|
|
&setval("netbios name", $in{'netbios_name'}, "");
|
|
|
|
&setval("netbios aliases", $in{'netbios_aliases'}, "");
|
|
|
|
&setval("default", $in{default}, "");
|
|
|
|
&setval("auto services", join(' ', split(/\0/, $in{auto_services})), "");
|
|
|
|
if (!$in{max_disk_size_def} && $in{max_disk_size} !~ /^\d+$/) {
|
|
&error(&text('savesmb_size', $in{max_disk_size}));
|
|
}
|
|
&setval("max disk size", $in{max_disk_size_def} ? 0 : $in{max_disk_size}, 0);
|
|
|
|
&setval("message command", $in{message_command}, "");
|
|
|
|
$in{os_level} =~ /^\d+$/ ||
|
|
&error(&text('savesmb_oslevel', $in{os_level}));
|
|
&setval("os level", $in{os_level}, 0);
|
|
|
|
&setval("protocol", $in{protocol}, "");
|
|
|
|
&setval("preferred master", $in{preferred_master}, "auto");
|
|
|
|
&setval("security", $in{security}, "");
|
|
|
|
if ($in{security} eq "server" && $in{password_server} !~ /\S/) {
|
|
&error($text{'savesmb_server'});
|
|
}
|
|
&setval("password server", $in{password_server}, "");
|
|
|
|
if ($in{remote_def}) { &delval("remote announce"); }
|
|
else {
|
|
for($i=0; defined($in{"remote_ip$i"}); $i++) {
|
|
if ($in{"remote_ip$i"} !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/)
|
|
{ next; }
|
|
push(@rem, $in{"remote_ip$i"} .
|
|
($in{"remote_wg$i"} =~ /\S/ ? "/".$in{"remote_wg$i"} : ""));
|
|
}
|
|
&setval("remote announce", join(' ', @rem), "");
|
|
}
|
|
|
|
if ($global) { &modify_share("global", "global"); }
|
|
else { &create_share("global"); }
|
|
&unlock_file($config{'smb_conf'});
|
|
&webmin_log("smb", undef, undef, \%in);
|
|
&redirect("");
|
|
|