X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=tests%2FFTPServer.pm;h=8c7cada7cd728368631eb3f951a73e62c6938c32;hp=7c7f3e584b4f0ed0c774013b314aa1113a319f3a;hb=f0438edcf2e34169fb0792119ac9ce10ae35a564;hpb=caae3b70f46bd519857b595f7f06ea0179551336 diff --git a/tests/FTPServer.pm b/tests/FTPServer.pm index 7c7f3e58..8c7cada7 100644 --- a/tests/FTPServer.pm +++ b/tests/FTPServer.pm @@ -748,7 +748,7 @@ sub __wildcard_to_regex { my %_attr_data = ( # DEFAULT _localAddr => 'localhost', - _localPort => 8021, + _localPort => undef, _reuseAddr => 1, _rootDir => Cwd::getcwd(), ); @@ -781,6 +781,16 @@ sub new { $self->{$attrname} = $self->_default_for($attrname); } } + # create server socket + "0" =~ /(0)/; # Perl 5.7 / IO::Socket::INET bug workaround. + $self->{_server_sock} + = IO::Socket::INET->new (LocalHost => $self->{_localAddr}, + LocalPort => $self->{_localPort}, + Listen => 1, + Reuse => $self->{_reuseAddr}, + Proto => 'tcp', + Type => SOCK_STREAM) + or die "bind: $!"; return $self; } @@ -803,21 +813,13 @@ sub run my $old_ils = $/; $/ = "\r\n"; - # create server socket - "0" =~ /(0)/; # Perl 5.7 / IO::Socket::INET bug workaround. - my $server_sock = IO::Socket::INET->new (LocalHost => $self->{_localAddr}, - LocalPort => $self->{_localPort}, - Listen => 1, - Reuse => $self->{_reuseAddr}, - Proto => 'tcp', - Type => SOCK_STREAM) or die "bind: $!"; - if (!$initialized) { $synch_callback->(); $initialized = 1; } $SIG{CHLD} = sub { wait }; + my $server_sock = $self->{_server_sock}; # the accept loop while (my $client_addr = accept (my $socket, $server_sock)) @@ -833,14 +835,14 @@ sub run print STDERR "got a connection from: $client_ipnum\n" if $log; # fork off a process to handle this connection. - my $pid = fork(); - unless (defined $pid) { - warn "fork: $!"; - sleep 5; # Back off in case system is overloaded. - next; - } + # my $pid = fork(); + # unless (defined $pid) { + # warn "fork: $!"; + # sleep 5; # Back off in case system is overloaded. + # next; + # } - if ($pid == 0) { # Child process. + if (1) { # Child process. # install signals $SIG{URG} = sub { @@ -929,6 +931,11 @@ sub run $/ = $old_ils; } +sub sockport { + my $self = shift; + return $self->{_server_sock}->sockport; +} + 1; # vim: et ts=4 sw=4