diff -ruN e-smith-proftpd-2.2.0.old/root/etc/e-smith/templates/etc/proftpd.conf/00localAccess e-smith-proftpd-2.2.0/root/etc/e-smith/templates/etc/proftpd.conf/00localAccess
--- e-smith-proftpd-2.2.0.old/root/etc/e-smith/templates/etc/proftpd.conf/00localAccess 2006-03-17 00:09:50.000000000 +0000
+++ e-smith-proftpd-2.2.0/root/etc/e-smith/templates/etc/proftpd.conf/00localAccess 2013-01-24 01:12:35.000000000 +0000
@@ -1,17 +1,9 @@
{
# Work out local access specification
use esmith::NetworksDB;
- use Net::IPv4Addr qw(ipv4_parse);
my $ndb = esmith::NetworksDB->open_ro();
- my @local_access = $ndb->local_access_spec;
- my @cidr_access = ();
- foreach my $part (@local_access)
- {
- my $cidr = join '/', ipv4_parse($part);
- push @cidr_access, $cidr;
- }
- $localAccess = join(', ', @cidr_access);
+ @local_access = $ndb->local_access_spec;
return "";
}
diff -ruN e-smith-proftpd-2.2.0.old/root/etc/e-smith/templates/etc/proftpd.conf/15LimitLOGIN e-smith-proftpd-2.2.0/root/etc/e-smith/templates/etc/proftpd.conf/15LimitLOGIN
--- e-smith-proftpd-2.2.0.old/root/etc/e-smith/templates/etc/proftpd.conf/15LimitLOGIN 2003-03-13 20:06:04.000000000 +0000
+++ e-smith-proftpd-2.2.0/root/etc/e-smith/templates/etc/proftpd.conf/15LimitLOGIN 2013-01-24 01:12:42.000000000 +0000
@@ -4,11 +4,19 @@
}
{
my $access = $ftp{LoginAccess} || "private";
- $OUT = ($access eq 'public') ?
- " AllowAll"
- :
- " Order Allow,Deny\n" .
- " Allow from $localAccess\n" .
- " Deny from all";
+ if ($access eq 'public')
+ {
+ $OUT = " AllowAll";
+ }
+ else
+ {
+ use Net::IPv4Addr qw(ipv4_parse);
+
+ $OUT = " Order Allow,Deny\n";
+ $OUT .= join "\n",
+ map { " Allow from " . join '/', ipv4_parse($_) }
+ @local_access;
+ $OUT .= " Deny from all";
+ }
}
diff -ruN e-smith-proftpd-2.2.0.old/root/etc/e-smith/templates/etc/proftpd.conf/60AnonymousIBay e-smith-proftpd-2.2.0/root/etc/e-smith/templates/etc/proftpd.conf/60AnonymousIBay
--- e-smith-proftpd-2.2.0.old/root/etc/e-smith/templates/etc/proftpd.conf/60AnonymousIBay 2008-10-07 18:36:59.000000000 +0100
+++ e-smith-proftpd-2.2.0/root/etc/e-smith/templates/etc/proftpd.conf/60AnonymousIBay 2013-01-24 01:12:46.000000000 +0000
@@ -5,10 +5,13 @@
#------------------------------------------------------------
use esmith::AccountsDB;
+ use Net::IPv4Addr qw(ipv4_parse);
$OUT .= "";
my $adb = esmith::AccountsDB->open_ro();
+ my @local = map { join '/', ipv4_parse($_) } @local_access;
+ my @all = ('all');
foreach my $ibay ($adb->ibays)
{
my $key = $ibay->key;
@@ -16,39 +19,38 @@
next if ($key eq "Primary");
- my $allow;
my $pass;
my $access = $ibay->prop('PublicAccess') || 'none';
if ($access eq 'none')
{
- $allow = '127.0.0.1';
+ @allow = ('127.0.0.1');
$pass = 1;
}
elsif ($access eq 'local')
{
- $allow = $localAccess;
+ @allow = @local;
$pass = 0;
}
elsif ($access eq 'local-pw')
{
- $allow = $localAccess;
+ @allow = @local;
$pass = 1;
}
elsif ($access eq 'global')
{
- $allow = 'all';
+ @allow = @all;
$pass = 0;
}
elsif ($access eq 'global-pw')
{
- $allow = 'all';
+ @allow = @all;
$pass = 1;
}
elsif ($access eq 'global-pw-remote')
{
- $allow = 'all';
+ @allow = @all;
$pass = 1;
}
@@ -68,7 +70,7 @@
$OUT .= " DisplayChdir .message\n";
$OUT .= " \n";
$OUT .= " Order Allow,Deny\n";
- $OUT .= " Allow from $allow\n";
+ $OUT .= " Allow from $_\n" foreach @allow;
$OUT .= " Deny from all\n";
$OUT .= " \n";
$OUT .= " \n";