$_attr_data{$attr};
}
- sub _standard_keys
+ sub _standard_keys
{
keys %_attr_data;
}
Proto => 'tcp',
Type => SOCK_STREAM)
or die "bind: $!";
+
+ foreach my $file (keys %{$self->{_input}}) {
+ my $ref = \$self->{_input}{$file}{content};
+ $$ref =~ s/{{port}}/$self->sockport/eg;
+ }
+
return $self;
}
print STDERR "in child\n" if $log;
- my $conn = {
- 'paths' => FTPPaths->new($self->{'_input'}),
- 'socket' => $socket,
+ my $conn = {
+ 'paths' => FTPPaths->new($self->{'_input'},
+ $self->{'_server_behavior'}),
+ 'socket' => $socket,
'state' => $_connection_states{NEWCONN},
'dir' => '/',
'restart' => 0,
}
sub initialize {
- my ($self, $urls) = @_;
+ my ($self, $urls, $behavior) = @_;
my $paths = {_type => 'd'};
# From a path like '/foo/bar/baz.txt', construct $paths such that
}
$self->{'_paths'} = $paths;
+ $self->{'_behavior'} = $behavior;
}
sub get_info {
my $size = 0;
if ($info->{'_type'} eq 'f') {
$size = length $info->{'content'};
+ if ($self->{'_behavior'}{'bad_list'}) {
+ $size = 0;
+ }
}
my $date = strftime ("%b %e %H:%M", localtime);
return "$mode_str 1 0 0 $size $date $name";
my $info = $self->get_info($path);
return undef unless defined $info;
my $list = [];
-
+
if ($info->{'_type'} eq 'd') {
for my $item (keys %$info) {
next if $item =~ /^_/;