1 #define PERL_NO_GET_CONTEXT
7 #if defined(I_UNISTD) && defined(HAS_GETHOSTNAME)
11 /* a reasonable default */
12 #ifndef MAXHOSTNAMELEN
13 # define MAXHOSTNAMELEN 256
16 /* swiped from POSIX.xs */
17 #if defined(__VMS) && !defined(__POSIX_SOURCE)
18 # if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
24 # include <sys/utsname.h>
27 MODULE = Sys::Hostname PACKAGE = Sys::Hostname
36 #ifdef HAS_GETHOSTNAME
38 char tmps[MAXHOSTNAMELEN];
39 retval = PerlSock_gethostname(tmps, sizeof(tmps));
40 sv = newSVpv(tmps, 0);
46 char tmps[MAXHOSTNAMELEN];
49 io = PerlProc_popen(PHOSTNAME, "r");
52 while (PerlIO_read(io, &c, sizeof(c)) == 1) {
53 if (isSPACE(c) || p - tmps >= sizeof(tmps))
59 sv = newSVpvn(tmps, p - tmps);
65 if (PerlEnv_uname(&u) == -1)
67 sv = newSVpv(u.nodename, 0);
73 #ifndef HAS_GETHOSTNAME
79 PUSHs(sv_2mortal(sv));