Viewing file: save_smb.cgi (2.21 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/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("");
|