3 # Save hostsentry options
5 require './sentry-lib.pl';
7 &error_setup($text{'hostsentry_err'});
10 -r $in{'wtmp'} || &error($text{'hostsentry_ewtmp'});
11 @ignore = split(/\s+/, $in{'ignore'});
12 foreach $u (@ignore) {
13 defined(getpwnam($u)) || &error(&text('hostsentry_eignore', $u));
15 for($i=0; defined($in{"mod_$i"}); $i++) {
16 push(@mods, $in{"mod_$i"}) if ($in{"mod_$i"});
18 if (defined($in{'foreign'})) {
19 @foreign = split(/\s+/, $in{'foreign'});
21 if (defined($in{'multiple'})) {
22 @multiple = split(/\s+/, $in{'multiple'});
23 foreach $m (@multiple) {
25 &error(&text('hostsentry_emultiple', $m));
29 # Write to the appropriate files
30 $conf = &get_hostsentry_config();
31 &lock_config_files($conf);
32 &save_config($conf, "WTMP_FILE", $in{'wtmp'});
34 &unlock_config_files($conf);
36 $ign = &find_value("IGNORE_FILE", $conf);
38 &open_tempfile(IGN, ">$ign");
39 foreach $i (@ignore) {
40 &print_tempfile(IGN, $i,"\n");
45 $mods = &find_value("MODULE_FILE", $conf);
47 &open_tempfile(MODS, ">$mods");
49 &print_tempfile(MODS, $m,"\n");
51 &close_tempfile(MODS);
54 $basedir = &get_hostsentry_dir();
55 if (scalar(@foreign)) {
56 &lock_file("$basedir/moduleForeignDomain.allow");
57 &open_tempfile(FOREIGN, ">$basedir/moduleForeignDomain.allow");
58 foreach $f (@foreign) {
59 &print_tempfile(FOREIGN, $f,"\n");
61 &close_tempfile(FOREIGN);
62 &unlock_file("$basedir/moduleForeignDomain.allow");
64 if (scalar(@multiple)) {
65 &lock_file("$basedir/moduleMultipleLogins.allow");
66 &open_tempfile(MULTIPLE, ">$basedir/moduleMultipleLogins.allow");
67 foreach $m (@multiple) {
68 &print_tempfile(MULTIPLE, $m,"\n");
70 &close_tempfile(MULTIPLE);
71 &unlock_file("$basedir/moduleMultipleLogins.allow");
77 $err = &start_hostsentry();
78 &error($err) if ($err);
80 &webmin_log("hostsentry");