APM: Net::FTP recieves file but still reaches timeout without saving

Jeremy Brooks jbrooks4 at austin.rr.com
Wed Sep 1 08:40:16 CDT 2004


Well,  the problem was zone-alarm running on the server.  
That begs the question, why did ncftp work just fine?

On Tue, 2004-08-31 at 14:02, Jeremy Brooks wrote:
> good afternoon,
> 
> I've written a simple test script (see inline) that connects,
> authenticates and gets a file from a Microsoft IIS 5.0 ftp server.
> In about 19 out of twenty executions the script timesout before actually
> getting the file.  However, without fail, I see the <file size> number
> of bytes received over the passive mode data connection.
> The file's size is 5169 bytes.
> 
> ----------------Netstat -an --inet--------------------
> tcp  0    25 65.16.122.206:33723  207.200.10.26:21        ESTABLISHED
> tcp  5170  0 65.16.122.206:33724  207.200.10.26:1577      CLOSE_WAIT
> ------------------------------------------------------
> 
> 
> I've traced the time out to Net::Cmd.pm line 269 where we use select to
> block on the handle used to read data from the server.  
> 
> I've enabled passive connections in Net::FTP using FTP_PASSIVE, pasv(),
> and Passive=>1.  All  these methods seem to work in that the passive
> data connection is established back the server but it's as if Net::FTP
> just doesn't do anything with it after the server sends the file.
> I've also tried rasing the timeout to 6 minutes which changed nothing
> but how long it took me to trouble shoot.  When things work, the
> transfer takes on a couple of seconds so I set Timeout=>10.
> 
> ncftp works 100% of the time from the same client machine to the same
> server.  
> 
> Have you any ideas on what's happening here and why it works
> occasionally?
> 
> 
> the script:
> -----------------------------------------------
> #!/usr/bin/perl
> 
> use Net::FTP;
> 
> $ftp =  Net::FTP->new("data.teledynamics.com",Hash=>\*STDOUT,
>                       Debug=>1,Passive=>1,Timeout=>10)
>         or die "could not make handle\n";
> 
> $ftp->login("user","pass") or die "could not login\n";
> $ftp->binary();
> 
> ### Here's where we hang
> $ftp->get("/images/ZES120.jpg") or die "could not get file\n";
> 
> 
> $ftp->quit;
> 
> print "OK ", $ftp->message,"\n";
> ---------------------------------------------------------------
> 
> 
> thanks in advance!
> 
> Jeremy Brooks
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Austin mailing list
> Austin at mail.pm.org
> http://mail.pm.org/mailman/listinfo/austin



More information about the Austin mailing list