1*13651Ssam #ifndef lint 2*13651Ssam static char sccsid[] = "@(#)getpwinfo.c 5.1 (Berkeley) 07/02/83"; 3*13651Ssam #endif 4*13651Ssam 5*13651Ssam #include "uucp.h" 6*13651Ssam #include <pwd.h> 7*13651Ssam 8*13651Ssam /******* 9*13651Ssam * guinfo(uid, name, path) get passwd file info for uid 10*13651Ssam * int uid; 11*13651Ssam * char *path, *name; 12*13651Ssam * 13*13651Ssam * return codes: 0 | FAIL 14*13651Ssam * 15*13651Ssam * modified 3/16/81 to use the "real" login name -- mcnc!dennis 16*13651Ssam * (Dennis Rockwell) 17*13651Ssam */ 18*13651Ssam 19*13651Ssam guinfo(uid, name, path) 20*13651Ssam int uid; 21*13651Ssam register char *path, *name; 22*13651Ssam { 23*13651Ssam register struct passwd *pwd; 24*13651Ssam struct passwd *getpwuid(), *getpwnam(); 25*13651Ssam char *getlogin(), *l; 26*13651Ssam 27*13651Ssam if ((l = getlogin()) != NULL) { 28*13651Ssam pwd = getpwnam(l); 29*13651Ssam if (pwd->pw_uid == uid) 30*13651Ssam goto setup; 31*13651Ssam } 32*13651Ssam if ((pwd = getpwuid(uid)) == NULL) { 33*13651Ssam /* can not find uid in passwd file */ 34*13651Ssam *path = '\0'; 35*13651Ssam return(FAIL); 36*13651Ssam } 37*13651Ssam 38*13651Ssam setup: 39*13651Ssam strcpy(path, pwd->pw_dir); 40*13651Ssam strcpy(name, pwd->pw_name); 41*13651Ssam return(0); 42*13651Ssam } 43*13651Ssam 44*13651Ssam 45*13651Ssam /*** 46*13651Ssam * gninfo(name, uid, path) get passwd file info for name 47*13651Ssam * char *path, *name; 48*13651Ssam * int *uid; 49*13651Ssam * 50*13651Ssam * return codes: 0 | FAIL 51*13651Ssam */ 52*13651Ssam 53*13651Ssam gninfo(name, uid, path) 54*13651Ssam char *path, *name; 55*13651Ssam int *uid; 56*13651Ssam { 57*13651Ssam register struct passwd *pwd; 58*13651Ssam struct passwd *getpwnam(); 59*13651Ssam 60*13651Ssam if ((pwd = getpwnam(name)) == NULL) { 61*13651Ssam /* can not find name in passwd file */ 62*13651Ssam *path = '\0'; 63*13651Ssam return(FAIL); 64*13651Ssam } 65*13651Ssam 66*13651Ssam strcpy(path, pwd->pw_dir); 67*13651Ssam *uid = pwd->pw_uid; 68*13651Ssam return(0); 69*13651Ssam } 70*13651Ssam 71*13651Ssam 72