Annotation of 43BSD/contrib/news/src/uname.c, revision 1.1.1.1

1.1       root        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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.