home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
perl_ste.zip
/
auto
/
Net
/
FTP
/
_data_cmd.al
< prev
next >
Wrap
Text File
|
1997-11-28
|
1KB
|
67 lines
# NOTE: Derived from ./blib/lib/Net/FTP.pm. Changes made here will be lost.
package Net::FTP;
sub _data_cmd
{
my $ftp = shift;
my $cmd = uc shift;
my $ok = 1;
my $where = delete ${*$ftp}{'net_ftp_rest'} || 0;
if(${*$ftp}{'net_ftp_passive'} &&
!defined ${*$ftp}{'net_ftp_pasv'} &&
!defined ${*$ftp}{'net_ftp_port'})
{
my $data = undef;
$ok = defined $ftp->pasv;
$ok = $ftp->_REST($where)
if $ok && $where;
if($ok)
{
$ftp->command($cmd,@_);
$data = $ftp->_dataconn();
$ok = CMD_INFO == $ftp->response();
if($ok)
{
$data->reading
if $data && $cmd =~ /RETR|LIST|NLST/;
return $data
}
$data->_close
if $data;
}
return undef;
}
$ok = $ftp->port
unless (defined ${*$ftp}{'net_ftp_port'} ||
defined ${*$ftp}{'net_ftp_pasv'});
$ok = $ftp->_REST($where)
if $ok && $where;
return undef
unless $ok;
$ftp->command($cmd,@_);
return 1
if(defined ${*$ftp}{'net_ftp_pasv'});
$ok = CMD_INFO == $ftp->response();
return $ok
unless exists ${*$ftp}{'net_ftp_intern_port'};
return $ftp->_dataconn()
if $ok;
close(delete ${*$ftp}{'net_ftp_listen'});
return undef;
}
1;