1: /*
2: * This software is Copyright (c) 1986 by Rick Adams.
3: *
4: * Permission is hereby granted to copy, reproduce, redistribute or
5: * otherwise use this software as long as: there is no monetary
6: * profit gained specifically from the use or reproduction or this
7: * software, it is not sold, rented, traded or otherwise marketed, and
8: * this copyright notice is included prominently in any copy
9: * made.
10: *
11: * The author make no claims as to the fitness or correctness of
12: * this software for any use whatsoever, and it is provided as is.
13: * Any use of this software is at the user's own risk.
14: *
15: * This routine is compatible with the Unix T/S system call uname,
16: * which figures out the name of the local system.
17: * However, we do it by reading the file /usr/include/whoami.h.
18: * This avoids having to recompile uucp for each site and hence
19: * avoids having to distribute the source to uucp to people who
20: * have only binary licenses.
21: */
22:
23: #ifdef SCCSID
24: static char *SccsId = "@(#)uname.c 2.9 1/20/86";
25: #endif /* SCCSID */
26:
27: #include "params.h"
28:
29: #ifdef UNAME
30: # define DONE
31: #endif /* UNAME */
32:
33: #ifdef GHNAME
34: uname(uptr)
35: struct utsname *uptr;
36: {
37: char *cp;
38: gethostname(uptr->nodename, sizeof (uptr->nodename));
39: cp = index(uptr->nodename, '.');
40: if (cp)
41: *cp = '\0';
42: }
43: # define DONE
44: #endif
45:
46: #ifdef UUNAME
47: uname(uptr)
48: struct utsname *uptr;
49: {
50: FILE *uucpf;
51: register char *p;
52: /* uucp name is stored in /etc/uucpname or /local/uucpname */
53:
54: if (((uucpf = fopen("/etc/uucpname", "r")) == NULL &&
55: (uucpf = fopen("/local/uucpname", "r")) == NULL) ||
56: fgets(uptr->nodename, sizeof (uptr->nodename), uucpf) == NULL) {
57: fprintf(stderr, "no sysname in %s\n", "/etc/uucpname");
58: return;
59: }
60: p = index(uptr->nodename, '\n');
61: if (p)
62: *p = '\0';
63: if (uucpf != NULL)
64: fclose(uucpf);
65: }
66: #define DONE
67: #endif /* UUNAME */
68:
69: #ifndef DONE
70: #define HDRFILE "/usr/include/whoami.h"
71:
72: uname(uptr)
73: struct utsname *uptr;
74: {
75: char buf[BUFSIZ];
76: FILE *fd;
77:
78: fd = fopen(HDRFILE, "r");
79: if (fd == NULL) {
80: fprintf(stderr, "Cannot open %s\n", HDRFILE);
81: exit(1);
82: }
83:
84: for (;;) { /* each line in the file */
85: if (fgets(buf, sizeof buf, fd) == NULL) {
86: fprintf(stderr, "no sysname in %s\n", HDRFILE);
87: fclose(fd);
88: exit(2);
89: }
90: if (sscanf(buf, "#define sysname \"%[^\"]\"", uptr->nodename) == 1) {
91: fclose(fd);
92: return;
93: }
94: }
95: }
96: #endif
Defined functions
uname
defined in line
72; used 4 times
Defined variables
Defined macros
DONE
defined in line
66; used 1 times