|
|
1.1 ! root 1: #ident "@(#)getname.c 1.4 'attmail mail(1) command'" ! 2: #ident "@(#)mailx:getname.c 1.3.1.1" ! 3: /* Copyright (c) 1984 AT&T */ ! 4: /* All Rights Reserved */ ! 5: ! 6: /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ ! 7: /* The copyright notice above does not evidence any */ ! 8: /* actual or intended publication of such source code. */ ! 9: ! 10: /* ! 11: * mailx -- a modified version of a University of California at Berkeley ! 12: * mail program ! 13: */ ! 14: ! 15: #include "rcv.h" ! 16: #include <pwd.h> ! 17: #ifdef preSVr4 ! 18: extern struct passwd *getpwnam(); ! 19: extern struct passwd *getpwuid(); ! 20: #endif ! 21: ! 22: /* ! 23: * Search the passwd file for a uid. Return name through ref parameter ! 24: * if found, indicating success with 0 return. Return -1 on error. ! 25: * If -1 is passed as the user id, close the passwd file. ! 26: */ ! 27: ! 28: getname(uid, namebuf) ! 29: uid_t uid; ! 30: char namebuf[]; ! 31: { ! 32: struct passwd *pw; ! 33: ! 34: if (uid == (uid_t)-1) { ! 35: endpwent(); ! 36: return(0); ! 37: } ! 38: setpwent(); ! 39: pw = getpwuid(uid); ! 40: if (pw) { ! 41: strcpy(namebuf, pw->pw_name); ! 42: return(0); ! 43: } ! 44: return(-1); ! 45: } ! 46: ! 47: /* ! 48: * Convert the passed name to a user id and return it. Return -1 ! 49: * on error. Iff the name passed is 0, close the passwd file. ! 50: */ ! 51: ! 52: uid_t ! 53: getuserid(name) ! 54: char name[]; ! 55: { ! 56: struct passwd *pw; ! 57: ! 58: if (name == 0) { ! 59: endpwent(); ! 60: return(0); ! 61: } ! 62: setpwent(); ! 63: pw = getpwnam(name); ! 64: return pw ? pw->pw_uid : (uid_t)-1; ! 65: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.