diff options
Diffstat (limited to 'contrib/perl5/lib/Sys/Hostname.pm')
| -rw-r--r-- | contrib/perl5/lib/Sys/Hostname.pm | 121 | 
1 files changed, 0 insertions, 121 deletions
| diff --git a/contrib/perl5/lib/Sys/Hostname.pm b/contrib/perl5/lib/Sys/Hostname.pm deleted file mode 100644 index 95f9a99a7abf..000000000000 --- a/contrib/perl5/lib/Sys/Hostname.pm +++ /dev/null @@ -1,121 +0,0 @@ -package Sys::Hostname; - -use Carp; -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(hostname); - -=head1 NAME - -Sys::Hostname - Try every conceivable way to get hostname - -=head1 SYNOPSIS - -    use Sys::Hostname; -    $host = hostname; - -=head1 DESCRIPTION - -Attempts several methods of getting the system hostname and -then caches the result.  It tries C<syscall(SYS_gethostname)>, -C<`hostname`>, C<`uname -n`>, and the file F</com/host>. -If all that fails it C<croak>s. - -All nulls, returns, and newlines are removed from the result. - -=head1 AUTHOR - -David Sundstrom E<lt>F<sunds@asictest.sc.ti.com>E<gt> - -Texas Instruments - -=cut - -sub hostname { - -  # method 1 - we already know it -  return $host if defined $host; - -  if ($^O eq 'VMS') { - -    # method 2 - no sockets ==> return DECnet node name -    eval { local $SIG{__DIE__}; $host = (gethostbyname('me'))[0] }; -    if ($@) { return $host = $ENV{'SYS$NODE'}; } - -    # method 3 - has someone else done the job already?  It's common for the -    #    TCP/IP stack to advertise the hostname via a logical name.  (Are -    #    there any other logicals which TCP/IP stacks use for the host name?) -    $host = $ENV{'ARPANET_HOST_NAME'}  || $ENV{'INTERNET_HOST_NAME'} || -            $ENV{'MULTINET_HOST_NAME'} || $ENV{'UCX$INET_HOST'}      || -            $ENV{'TCPWARE_DOMAINNAME'} || $ENV{'NEWS_ADDRESS'}; -    return $host if $host; - -    # method 4 - does hostname happen to work? -    my($rslt) = `hostname`; -    if ($rslt !~ /IVVERB/) { ($host) = $rslt =~ /^(\S+)/; } -    return $host if $host; - -    # rats! -    $host = ''; -    Carp::croak "Cannot get host name of local machine";   - -  } -  elsif ($^O eq 'MSWin32') { -    ($host) = gethostbyname('localhost'); -    chomp($host = `hostname 2> NUL`) unless defined $host; -    return $host; -  } -  else {  # Unix - -    # method 2 - syscall is preferred since it avoids tainting problems -    eval { -	local $SIG{__DIE__}; -	{ -	    package main; -	    require "syscall.ph"; -	} -	$host = "\0" x 65; ## preload scalar -	syscall(&main::SYS_gethostname, $host, 65) == 0; -    } - -    # method 2a - syscall using systeminfo instead of gethostname -    #           -- needed on systems like Solaris -    || eval { -	local $SIG{__DIE__}; -	{ -	    package main; -	    require "sys/syscall.ph"; -	    require "sys/systeminfo.ph"; -	} -	$host = "\0" x 65; ## preload scalar -	syscall(&main::SYS_systeminfo, &main::SI_HOSTNAME, $host, 65) != -1; -    } - -    # method 3 - trusty old hostname command -    || eval { -	local $SIG{__DIE__}; -	$host = `(hostname) 2>/dev/null`; # bsdish -    } - -    # method 4 - sysV uname command (may truncate) -    || eval { -	local $SIG{__DIE__}; -	$host = `uname -n 2>/dev/null`; ## sysVish -    } - -    # method 5 - Apollo pre-SR10 -    || eval { -	local $SIG{__DIE__}; -	($host,$a,$b,$c,$d)=split(/[:\. ]/,`/com/host`,6); -    } - -    # bummer -    || Carp::croak "Cannot get host name of local machine";   - -    # remove garbage  -    $host =~ tr/\0\r\n//d; -    $host; -  } -} - -1; | 
