Sys::Hostname fails under Solaris 2.5 when setuid
Tim Bunce [Fri, 5 Sep 1997 00:00:00 +0000 (00:00 +0000)]
(this is the same change as commit b6d5cd8ca8d16f83d5c4c7a0bc602634e3efb321, but as applied)

lib/Sys/Hostname.pm

index d23310a..95f9a99 100644 (file)
@@ -78,6 +78,19 @@ sub hostname {
        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__};