Annotation of 43BSD/contrib/notes/src/gname.c, revision 1.1

1.1     ! root        1: #include "parms.h"
        !             2: #include "structs.h"
        !             3: 
        !             4: #ifdef RCSIDENT
        !             5: static char rcsid[] = "$Header: gname.c,v 1.7.0.1 85/03/17 20:55:37 notes Rel $";
        !             6: #endif RCSIDENT
        !             7: 
        !             8: 
        !             9: /* 
        !            10:  *     get the user id ( and his name from th password file )
        !            11:  *     the easy way - with system calls.
        !            12:  */
        !            13: getname (who_me, anon)                                 /* anon=true for anonymous */
        !            14: struct auth_f  *who_me;
        !            15: {
        !            16:     static char name[PASSWDLEN];                       /* must contain the /etc/passwd entry */
        !            17:     register    count;
        !            18:     register char  *s,
        !            19:                    *d;
        !            20:     static int  gotname = 0;                           /* whether we have done a getpw */
        !            21:     static int  gotstat = 0;                           /* status getpw returned */
        !            22: 
        !            23:     if (gotname == 0 && anon == 0)                     /* grab name if we will require it */
        !            24:     {
        !            25:        gotstat = getpw (globuid, name);                /* grab it */
        !            26:        gotname = 1;                                    /* set flag saying we have it */
        !            27:     }
        !            28:     if (gotstat || anon)
        !            29:     {
        !            30:        s = "Anonymous:";
        !            31:        who_me -> aid = Anonuid;
        !            32:     }
        !            33:     else
        !            34:     {
        !            35:        s = name;
        !            36:        who_me -> aid = globuid;
        !            37:     }
        !            38:     d = who_me -> aname;                               /* copy his name */
        !            39:     count = NAMESZ;
        !            40:     while (((*d++ = *s++) != ':') && --count);
        !            41:     *--d = '\0';
        !            42:     s = Authsystem;                                    /* copy his system */
        !            43:     d = who_me -> asystem;
        !            44:     count = HOMESYSSZ;
        !            45:     while (((*d++ = *s++)) != '\0' && --count);                /* move system */
        !            46:     *--d = '\0';
        !            47: }

unix.superglobalmegacorp.com

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