From ff3e574187d8a4b7968daedf23741f80c3b714e0 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Mon, 4 May 2009 10:30:23 +0000 Subject: David McCreedy's patch to fix test suite harness to allow test FTP server and client on different machines, providing FTP client address when running the FTP test server. --- tests/ftpserver.pl | 10 ++++++++-- tests/runtests.pl | 8 ++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index f2acd72d8..63826adcc 100644 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -83,6 +83,7 @@ my $ext; # append to log/pid file names my $grok_eprt; my $port = 8921; # just a default my $listenaddr = "127.0.0.1"; # just a default +my $client; my $pidfile = ".ftpd.pid"; # a default, use --pidfile my $SERVERLOGS_LOCK="log/serverlogs.lock"; # server logs advisor read lock @@ -114,7 +115,12 @@ do { } elsif($ARGV[0] eq "--addr") { $listenaddr = $ARGV[1]; - $listenaddr =~ s/^\[(.*)\]$/\1/; + $listenaddr =~ s/^\[(.*)\]$/\1/; + shift @ARGV; + } + elsif($ARGV[0] eq "--client") { + $client = $ARGV[1]; + $client =~ s/^\[(.*)\]$/\1/; shift @ARGV; } } while(shift @ARGV); @@ -705,7 +711,7 @@ sub PORT_command { # We fire up a new sockfilt to do the data transfer for us. # FIX: make it use IPv6 if need be - my $filtcmd="./server/sockfilt --connect $port --addr $addr --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6"; + my $filtcmd="./server/sockfilt --connect $port --addr $client --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6"; $slavepid = open2(\*DREAD, \*DWRITE, $filtcmd); print STDERR "$filtcmd\n" if($verbose); diff --git a/tests/runtests.pl b/tests/runtests.pl index 467b70670..47dfd0e28 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -943,6 +943,8 @@ sub runftpserver { my $ip=$HOSTIP; my $nameext; my $cmd; + my $addr; + my $addr_client; if($ipv6) { # if IPv6, use a different setup @@ -966,18 +968,20 @@ sub runftpserver { # start our server: my $flag=$debugprotocol?"-v ":""; $flag .= "-s \"$srcdir\" "; - my $addr; if($id) { $flag .="--id $id "; } if($ipv6) { $flag .="--ipv6 "; $addr = $HOST6IP; + $addr_client = $CLIENT6IP; } else { $addr = $HOSTIP; + $addr_client = $CLIENTIP; } - $cmd="$perl $srcdir/ftpserver.pl --pidfile $pidfile $flag --port $port --addr \"$addr\""; + $cmd="$perl $srcdir/ftpserver.pl --pidfile $pidfile $flag --port $port --addr \"$addr\" --client \"$addr_client\""; + my ($ftppid, $pid2) = startnew($cmd, $pidfile, 15, 0); if($ftppid <= 0 || !kill(0, $ftppid)) { -- cgit v1.2.3