|
|
1.1 ! root 1: /* ! 2: * This routine is compatible with the Unix T/S system call uname, ! 3: * which figures out the name of the local system. ! 4: * However, we do it by reading the file /usr/include/whoami.h. ! 5: * This avoids having to recompile uucp for each site and hence ! 6: * avoids having to distribute the source to uucp to people who ! 7: * have only binary licenses. ! 8: */ ! 9: ! 10: static char *SccsId = "@(#)uname.c 2.4 5/3/83"; ! 11: ! 12: #include "params.h" ! 13: ! 14: ! 15: #ifdef UNAME ! 16: # define DONE ! 17: #endif ! 18: ! 19: #ifdef GHNAME ! 20: uname(uptr) ! 21: struct utsname *uptr; ! 22: { ! 23: gethostname(uptr->nodename, sizeof (uptr->nodename)); ! 24: } ! 25: # define DONE ! 26: #endif ! 27: ! 28: #ifndef DONE ! 29: #define HDRFILE "/etc/whoami.h" ! 30: ! 31: uname(uptr) ! 32: struct utsname *uptr; ! 33: { ! 34: char buf[BUFSIZ]; ! 35: FILE *fd; ! 36: ! 37: fd = fopen(HDRFILE, "r"); ! 38: if (fd == NULL) { ! 39: fprintf(stderr, "Cannot open %s\n", HDRFILE); ! 40: exit(1); ! 41: } ! 42: ! 43: for (;;) { /* each line in the file */ ! 44: if (fgets(buf, sizeof buf, fd) == NULL) { ! 45: fprintf(stderr, "no sysname in %s\n", HDRFILE); ! 46: fclose(fd); ! 47: exit(2); ! 48: } ! 49: if (sscanf(buf, "#define sysname \"%[^\"]\"", uptr->nodename) == 1) { ! 50: fclose(fd); ! 51: return; ! 52: } ! 53: } ! 54: } ! 55: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.