aboutsummaryrefslogtreecommitdiff
path: root/tests/ftpserver.pl
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2007-09-17 18:12:11 +0000
committerDan Fandrich <dan@coneharvesters.com>2007-09-17 18:12:11 +0000
commit9b11a84e74086390602237c52d0ed7a95b1c37f9 (patch)
treecf8deb8c37eccf506da3a8ecea6bf7bac628b47a /tests/ftpserver.pl
parent26f8de459acf240c181d1b96c523c5d3cf0370a1 (diff)
Make the ftp server connect to the address given by curl in the PORT/EPRT
instead of hard-coding it to 127.0.0.1
Diffstat (limited to 'tests/ftpserver.pl')
-rw-r--r--tests/ftpserver.pl11
1 files changed, 8 insertions, 3 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index e32c019bd..a5b474f5c 100644
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -623,6 +623,7 @@ sub PASV_command {
sub PORT_command {
my ($arg, $cmd) = @_;
my $port;
+ my $addr;
# We always ignore the given IP and use localhost.
@@ -633,6 +634,7 @@ sub PORT_command {
return 0;
}
$port = ($5<<8)+$6;
+ $addr = "$1.$2.$3.$4";
}
# EPRT |2|::1|49706|
elsif(($cmd eq "EPRT") && ($grok_eprt)) {
@@ -642,6 +644,7 @@ sub PORT_command {
}
sendcontrol "200 Thanks for dropping by. We contact you later\r\n";
$port = $3;
+ $addr = $2;
}
else {
sendcontrol "500 we don't like $cmd now\r\n";
@@ -653,10 +656,12 @@ sub PORT_command {
return 1;
}
- # We fire up a new sockfilt to do the data tranfer for us.
+ # We fire up a new sockfilt to do the data transfer for us.
# FIX: make it use IPv6 if need be
- $slavepid = open2(\*DREAD, \*DWRITE,
- "./server/sockfilt --connect $port --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6");
+ my $filtcmd="./server/sockfilt --connect $port --addr $addr --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6";
+ $slavepid = open2(\*DREAD, \*DWRITE, $filtcmd);
+
+ print STDERR "$filtcmd\n" if($verbose);
print DWRITE "PING\n";
my $pong;