home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _a9f9457a00e4e444e4289eda891a49ed < prev    next >
Text File  |  2000-03-15  |  1KB  |  59 lines

  1. package URI::ftp;
  2.  
  3. require URI::_server;
  4. require URI::_userpass;
  5. @ISA=qw(URI::_server URI::_userpass);
  6.  
  7. use strict;
  8. use vars qw($whoami $fqdn);
  9. use URI::Escape qw(uri_unescape);
  10.  
  11. sub default_port { 21 }
  12.  
  13. sub path { shift->path_query(@_) }  # XXX
  14.  
  15. sub _user     { shift->SUPER::user(@_);     }
  16. sub _password { shift->SUPER::password(@_); }
  17.  
  18. sub user
  19. {
  20.     my $self = shift;
  21.     my $user = $self->_user(@_);
  22.     $user = "anonymous" unless defined $user;
  23.     $user;
  24. }
  25.  
  26. sub password
  27. {
  28.     my $self = shift;
  29.     my $pass = $self->_password(@_);
  30.     unless (defined $pass) {
  31.     my $user = $self->user;
  32.     if ($user eq 'anonymous' || $user eq 'ftp') {
  33.         # anonymous ftp login password
  34.         unless (defined $fqdn) {
  35.         eval {
  36.             require Net::Domain;
  37.             $fqdn = Net::Domain::hostfqdn();
  38.         };
  39.         if ($@) {
  40.             $fqdn = '';
  41.         }
  42.         }
  43.         unless (defined $whoami) {
  44.         $whoami = $ENV{USER} || $ENV{LOGNAME} || $ENV{USERNAME};
  45.         unless ($whoami) {
  46.             if ($^O eq 'MSWin32') { $whoami = Win32::LoginName() }
  47.             else {
  48.                 $whoami = getlogin || getpwuid($<) || 'unknown';
  49.             }
  50.         }
  51.         }
  52.         $pass = "$whoami\@$fqdn";
  53.     }
  54.     }
  55.     $pass;
  56. }
  57.  
  58. 1;
  59.