5 require './wuftpd-lib.pl';
6 &error_setup($text{'anon_err'});
8 &lock_file($config{'ftpaccess'});
9 $conf = &get_ftpaccess();
11 # save anonymous-root options
12 for($i=0; defined($dir = $in{"dir_$i"}); $i++) {
14 -d $dir || &error(&text('anon_edir', $dir));
15 push(@aroot, { 'name' => 'anonymous-root',
16 'values' => [ $dir, $in{"class_$i"} ] } );
18 &save_directive($conf, 'anonymous-root', \@aroot);
20 #save guest-root options
21 for($i=0; defined($dir = $in{"gdir_$i"}); $i++) {
23 -d $dir || &error(&text('anon_edir', $dir));
24 push(@groot, { 'name' => 'guest-root',
25 'values' => [ $dir, $in{"uids_$i"} ] } );
27 &save_directive($conf, 'guest-root', \@groot);
29 # save autogroup options
30 for($i=0; defined($agroup = $in{"agroup_$i"}); $i++) {
32 defined(getgrnam($agroup)) || &error(&text('anon_egroup', $agroup));
33 push(@agroup, { 'name' => 'autogroup',
34 'values' => [ $agroup,
35 split(/\0/, $in{"aclass_$i"}) ] } );
37 &save_directive($conf, 'autogroup', \@agroup);
40 if ($in{'passwd_def'}) {
41 &save_directive($conf, 'passwd-check', [ ]);
44 &save_directive($conf, 'passwd-check',
45 [ { 'name' => 'passwd-check',
46 'values' => [ $in{'level'}, $in{'action'} ] } ] );
48 foreach $a (split(/\s+/, $in{'email'})) {
49 push(@email, { 'name' => 'deny-email', 'values' => [ $a ] } );
51 &save_directive($conf, 'deny-email', \@email);
54 &unlock_file($config{'ftpaccess'});
55 &webmin_log("anon", undef, undef, \%in);