home *** CD-ROM | disk | FTP | other *** search
/ isnet Internet / Isnet Internet CD.iso / prog / hiz / 09 / 09.exe / adynware.exe / perl / lib / site / URI / URL / ftp.pm < prev    next >
Encoding:
Perl POD Document  |  1999-12-28  |  1.3 KB  |  72 lines

  1. package URI::URL::ftp;
  2. require URI::URL::_generic;
  3. @ISA = qw(URI::URL::_generic);
  4.  
  5. sub default_port { 21 }
  6.  
  7. sub _parse {
  8.     my($self, $init) = @_;
  9.     $self->URI::URL::_generic::_parse($init, qw(netloc path params frag));
  10.     1;
  11. }
  12.  
  13.  
  14. sub user
  15. {
  16.     my($self, @val) = @_;
  17.     my $old = $self->SUPER::user(@val);
  18.     defined $old ? $old : "anonymous";
  19. }
  20.  
  21. BEGIN {
  22.     $whoami = undef;
  23.     $fqdn   = undef;
  24. }
  25.  
  26. sub password
  27. {
  28.     my($self, @val) = @_;
  29.     my $old = $self->SUPER::password(@val);
  30.     unless (defined $old) {
  31.     my $user = $self->user;
  32.     if ($user eq 'anonymous' || $user eq 'ftp') {
  33.         unless (defined $fqdn) {
  34.         eval {
  35.             require Net::Domain;
  36.             $fqdn = Net::Domain::hostfqdn();
  37.         };
  38.         if ($@) {
  39.             $fqdn = '';
  40.         }
  41.         }
  42.         unless (defined $whoami) {
  43.         $whoami = $ENV{USER} || $ENV{LOGNAME} || $ENV{USERNAME};
  44.         unless ($whoami) {
  45.             if ($^O eq 'MSWin32') { $whoami = Win32::LoginName() }
  46.             else                  { chomp($whoami = `whoami`) }
  47.         }
  48.         }
  49.         $old = "$whoami\@$fqdn";
  50.     } else {
  51.         $old = "";
  52.     }
  53.     }
  54.     $old;
  55. }
  56.  
  57. sub crack
  58. {
  59.     my $self = shift;
  60.     my @c = $self->SUPER::crack;
  61.     if ($c[3] && !$c[1]) {
  62.     $c[1] = $self->user;
  63.     $c[2] = $self->password;
  64.     }
  65.     @c;
  66. }
  67.  
  68. *query  = \&URI::URL::bad_method;
  69. *equery = \&URI::URL::bad_method;
  70.  
  71. 1;
  72.