]> sjero.net Git - wget/blobdiff - tests/FTPServer.pm
[mq]: cfg-mk
[wget] / tests / FTPServer.pm
index 981ddea63d21e680e7934bdfcf6bc6aabd3ac0f3..2758ab1e5abdf0956f268b0857fd76f599c4ee7e 100644 (file)
@@ -457,7 +457,7 @@ sub __open_data_connection
         $_attr_data{$attr};
     }
 
-    sub _standard_keys 
+    sub _standard_keys
     {
         keys %_attr_data;
     }
@@ -562,9 +562,10 @@ sub run
 
             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,
@@ -693,7 +694,7 @@ sub new {
 }
 
 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
@@ -714,6 +715,7 @@ sub initialize {
     }
 
     $self->{'_paths'} = $paths;
+    $self->{'_behavior'} = $behavior;
 }
 
 sub get_info {
@@ -763,6 +765,9 @@ sub _format_for_list {
     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";
@@ -773,7 +778,7 @@ sub get_list {
     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 =~ /^_/;