home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
perl_ste.zip
/
auto
/
Net
/
FTP
/
_dataconn.al
< prev
next >
Wrap
Text File
|
1997-11-28
|
922b
|
47 lines
# NOTE: Derived from ./blib/lib/Net/FTP.pm. Changes made here will be lost.
package Net::FTP;
##
## Communication methods
##
sub _dataconn
{
my $ftp = shift;
my $data = undef;
my $pkg = "Net::FTP::" . $ftp->type;
eval "require " . $pkg;
$pkg =~ s/ /_/g;
delete ${*$ftp}{'net_ftp_dataconn'};
if(defined ${*$ftp}{'net_ftp_pasv'})
{
my @port = split(/,/,${*$ftp}{'net_ftp_pasv'});
$data = $pkg->new(PeerAddr => join(".",@port[0..3]),
PeerPort => $port[4] * 256 + $port[5],
Proto => 'tcp'
);
}
elsif(defined ${*$ftp}{'net_ftp_listen'})
{
$data = ${*$ftp}{'net_ftp_listen'}->accept($pkg);
close(delete ${*$ftp}{'net_ftp_listen'});
}
if($data)
{
${*$data} = "";
$data->timeout($ftp->timeout);
${*$ftp}{'net_ftp_dataconn'} = $data;
${*$data}{'net_ftp_cmd'} = $ftp;
}
$data;
}
1;