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