|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T l
Length: 1408 (0x580) Types: TextFile Names: »local.c«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦2fafebccf⟧ »EurOpenD3/mail/smail3.1.19.tar.Z« └─⟦bcd2bc73f⟧ └─⟦this⟧ »pd/pathalias/local.c«
/* pathalias -- by steve bellovin, as told to peter honeyman */ #ifndef lint static char *sccsid = "@(#)local.c 9.1 87/10/04"; #endif /* lint */ #include <stdio.h> #include "config.h" #ifdef UNAME #include <sys/utsname.h> char * local() { static struct utsname uts; uname(&uts); return(uts.nodename); } #else /* !UNAME */ char * local() { static char lname[64]; gethostname(lname, sizeof(lname)); return(lname); } #ifndef GETHOSTNAME static gethostname(name, len) char *name; { FILE *whoami, *fopen(), *popen(); char *ptr, *index(); *name = '\0'; /* try /etc/whoami */ if ((whoami = fopen("/etc/whoami", "r")) != 0) { (void) fgets(name, len, whoami); (void) fclose(whoami); if ((ptr = index(name, '\n')) != 0) *ptr = '\0'; } if (*name) return 0; /* try /usr/include/whoami.h */ if ((whoami = fopen("/usr/include/whoami.h", "r")) != 0) { while (!feof(whoami)) { char buf[100]; if (fgets(buf, 100, whoami) == 0) break; if (sscanf(buf, "#define sysname \"%[^\"]\"", name)) break; } (void) fclose(whoami); if (*name) return 0; } /* ask uucp */ if ((whoami = popen("uuname -l", "r")) != 0) { (void) fgets(name, len, whoami); (void) pclose(whoami); if ((ptr = index(name, '\n')) != 0) *ptr = '\0'; } if (*name) return 0; /* aw hell, i give up! is this really unix? */ return -1; } #endif /* GETHOSTNAME */ #endif /* UNAME */