1#!/usr/local/bin/perl 2# save_misc.cgi 3# Save inputs from conf_misc.cgi 4 5require './samba-lib.pl'; 6&ReadParse(); 7&lock_file($config{'smb_conf'}); 8$global = &get_share("global"); 9 10# check acls 11 12&error_setup("$text{'eacl_aviol'}ask_epass.cgi"); 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 20if (!$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 25if (!$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 30if (!$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 39if (!$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 44if (!$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 49if (!$in{smbrun_def} && !(-x $in{smbrun})) { 50 &error(&text('savemisc_smbrun', $in{smbrun})); 51 } 52&setval("smbrun", $in{smbrun_def} ? "" : $in{smbrun}, ""); 53 54if (!$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 61if ($global) { &modify_share("global", "global"); } 62else { &create_share("global"); } 63&unlock_file($config{'smb_conf'}); 64&webmin_log("misc", undef, undef, \%in); 65&redirect(""); 66 67sub parent_dir 68{ 69$_[0] =~ /^(.*\/)[^\/]+$/; return $1; 70} 71