113651Ssam #ifndef lint 2*17835Sralph static char sccsid[] = "@(#)getpwinfo.c 5.2 (Berkeley) 01/22/85"; 313651Ssam #endif 413651Ssam 513651Ssam #include "uucp.h" 613651Ssam #include <pwd.h> 713651Ssam 813651Ssam /******* 913651Ssam * guinfo(uid, name, path) get passwd file info for uid 1013651Ssam * int uid; 1113651Ssam * char *path, *name; 1213651Ssam * 1313651Ssam * return codes: 0 | FAIL 1413651Ssam * 1513651Ssam * modified 3/16/81 to use the "real" login name -- mcnc!dennis 1613651Ssam * (Dennis Rockwell) 1713651Ssam */ 1813651Ssam 1913651Ssam guinfo(uid, name, path) 2013651Ssam int uid; 2113651Ssam register char *path, *name; 2213651Ssam { 2313651Ssam register struct passwd *pwd; 2413651Ssam struct passwd *getpwuid(), *getpwnam(); 2513651Ssam char *getlogin(), *l; 2613651Ssam 2713651Ssam if ((l = getlogin()) != NULL) { 2813651Ssam pwd = getpwnam(l); 29*17835Sralph if (pwd->pw_uid == uid || *l == 'U') 3013651Ssam goto setup; 3113651Ssam } 3213651Ssam if ((pwd = getpwuid(uid)) == NULL) { 3313651Ssam /* can not find uid in passwd file */ 3413651Ssam *path = '\0'; 35*17835Sralph return FAIL; 3613651Ssam } 3713651Ssam 3813651Ssam setup: 3913651Ssam strcpy(path, pwd->pw_dir); 4013651Ssam strcpy(name, pwd->pw_name); 41*17835Sralph return SUCCESS; 4213651Ssam } 4313651Ssam 4413651Ssam 45*17835Sralph /* 46*17835Sralph * get passwd file info for name 4713651Ssam * 48*17835Sralph * return codes: SUCCESS | FAIL 4913651Ssam */ 5013651Ssam 5113651Ssam gninfo(name, uid, path) 5213651Ssam char *path, *name; 5313651Ssam int *uid; 5413651Ssam { 5513651Ssam register struct passwd *pwd; 5613651Ssam struct passwd *getpwnam(); 5713651Ssam 5813651Ssam if ((pwd = getpwnam(name)) == NULL) { 5913651Ssam /* can not find name in passwd file */ 6013651Ssam *path = '\0'; 61*17835Sralph return FAIL; 6213651Ssam } 6313651Ssam 6413651Ssam strcpy(path, pwd->pw_dir); 6513651Ssam *uid = pwd->pw_uid; 66*17835Sralph return SUCCESS; 6713651Ssam } 68