3 # Save messages, banners and other options
5 require './wuftpd-lib.pl';
6 &error_setup($text{'message_err'});
9 &lock_file($config{'ftpaccess'});
10 $conf = &get_ftpaccess();
11 foreach $c (&find_value('class', $conf)) {
16 for($i=0; defined($path = $in{"mpath_$i"}); $i++) {
18 $path =~ /^\S+$/ || &error(&text('message_epath', $path));
19 if ($in{"mwhen_$i"} == 0) {
22 elsif ($in{"mwhen_$i"} == 1) {
26 $in{"mcwd_$i"} =~ /^\S+$/ ||
27 &error(&text('message_ecwd', $path));
28 $when = "cwd=".$in{"mcwd_$i"};
30 @classes = split(/\s+/, $in{"mclasses_$i"});
31 foreach $c (@classes) {
32 $hasclass{$c} || &error(&text('message_eclass', $c));
34 push(@message, { 'name' => 'message',
35 'values' => [ $path, $when, @classes ] } );
37 &save_directive($conf, 'message', \@message);
40 for($i=0; defined($path = $in{"rpath_$i"}); $i++) {
42 $path =~ /^\S+$/ || &error(&text('message_epath', $path));
43 if ($in{"rwhen_$i"} == 0) {
46 elsif ($in{"rwhen_$i"} == 1) {
50 $in{"rcwd_$i"} =~ /^\S+$/ ||
51 &error(&text('message_ecwd', $path));
52 $when = "cwd=".$in{"rcwd_$i"};
54 @classes = split(/\s+/, $in{"rclasses_$i"});
55 foreach $c (@classes) {
56 $hasclass{$c} || &error(&text('message_eclass', $c));
58 push(@readme, { 'name' => 'readme',
59 'values' => [ $path, $when, @classes ] } );
61 &save_directive($conf, 'readme', \@readme);
64 &save_directive($conf, 'greeting', [ { 'name' => 'greeting',
65 'values' => [ $in{'greeting'} ] } ]);
66 if ($in{'banner_def'}) {
67 &save_directive($conf, 'banner', [ ]);
70 -r $in{'banner'} || &error(&text('message_ebanner', $in{'banner'}));
71 &save_directive($conf, 'banner', [ { 'name' => 'banner',
72 'values' => [ $in{'banner'} ] } ]);
74 if ($in{'hostname_def'}) {
75 &save_directive($conf, 'hostname', [ ]);
78 $in{'hostname'} =~ /^\S+$/ || &error($text{'message_ehostname'});
79 &save_directive($conf, 'hostname',
80 [ { 'name' => 'hostname',
81 'values' => [ $in{'hostname'} ] } ]);
83 if ($in{'email_def'}) {
84 &save_directive($conf, 'email', [ ]);
87 $in{'email'} =~ /^\S+$/ || &error($text{'message_eemail'});
88 &save_directive($conf, 'email', [ { 'name' => 'email',
89 'values' => [ $in{'email'} ] } ]);
94 &unlock_file($config{'ftpaccess'});
95 &webmin_log("message", undef, undef, \%in);