home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
perl_ste.zip
/
auto
/
Net
/
FTP
/
new.al
< prev
next >
Wrap
Text File
|
1997-11-28
|
1KB
|
65 lines
# NOTE: Derived from ./blib/lib/Net/FTP.pm. Changes made here will be lost.
package Net::FTP;
sub new
{
my $pkg = shift;
my $peer = shift;
my %arg = @_;
my $host = $peer;
my $fire = undef;
# Should I use Net::Ping here ?? --GMB
if(exists($arg{Firewall}) || !defined(inet_aton($peer)))
{
$fire = $arg{Firewall}
|| $ENV{FTP_FIREWALL}
|| $NetConfig{ftp_firewall}
|| undef;
if(defined $fire)
{
$peer = $fire;
delete $arg{Port};
}
}
my $ftp = $pkg->SUPER::new(PeerAddr => $peer,
PeerPort => $arg{Port} || 'ftp(21)',
Proto => 'tcp',
Timeout => defined $arg{Timeout}
? $arg{Timeout}
: 120
) or return undef;
${*$ftp}{'net_ftp_host'} = $host; # Remote hostname
${*$ftp}{'net_ftp_type'} = 'A'; # ASCII/binary/etc mode
${*$ftp}{'net_ftp_firewall'} = $fire
if(defined $fire);
${*$ftp}{'net_ftp_passive'} = int
exists $arg{Passive}
? $arg{Passive}
: exists $ENV{FTP_PASSIVE}
? $ENV{FTP_PASSIVE}
: defined $fire
? $NetConfig{ftp_ext_passive}
: $NetConfig{ftp_int_passive}; # Whew! :-)
$ftp->autoflush(1);
$ftp->debug(exists $arg{Debug} ? $arg{Debug} : undef);
unless ($ftp->response() == CMD_OK)
{
$ftp->close();
undef $ftp;
}
$ftp;
}
1;