1*48652Sbostic /*- 2*48652Sbostic * Copyright (c) 1985 The Regents of the University of California. 3*48652Sbostic * All rights reserved. 4*48652Sbostic * 5*48652Sbostic * %sccs.include.proprietary.c% 6*48652Sbostic */ 7*48652Sbostic 813651Ssam #ifndef lint 9*48652Sbostic static char sccsid[] = "@(#)getpwinfo.c 5.5 (Berkeley) 04/24/91"; 10*48652Sbostic #endif /* not lint */ 1113651Ssam 1213651Ssam #include "uucp.h" 1313651Ssam #include <pwd.h> 1413651Ssam 1523604Sbloom /*LINTLIBRARY*/ 1623604Sbloom 1723604Sbloom /* 1823604Sbloom * get passwd file info for uid 1913651Ssam * 2023604Sbloom * return codes: SUCCESS | FAIL 2113651Ssam * 2213651Ssam */ 2313651Ssam 2413651Ssam guinfo(uid, name, path) 2513651Ssam int uid; 2613651Ssam register char *path, *name; 2713651Ssam { 2813651Ssam register struct passwd *pwd; 2923604Sbloom char *getlogin(), *getenv(), *l; 3013651Ssam 3123604Sbloom if ((l = getlogin()) == NULL) { 3223604Sbloom l = getenv("USER"); 3323604Sbloom } 3423604Sbloom if (l != NULL) { 3513651Ssam pwd = getpwnam(l); 3623604Sbloom if (pwd != NULL && pwd->pw_uid == uid) 3713651Ssam goto setup; 3813651Ssam } 3913651Ssam if ((pwd = getpwuid(uid)) == NULL) { 4013651Ssam /* can not find uid in passwd file */ 4123604Sbloom *name = '\0'; 4213651Ssam *path = '\0'; 4317835Sralph return FAIL; 4413651Ssam } 4513651Ssam 4613651Ssam setup: 4713651Ssam strcpy(path, pwd->pw_dir); 4813651Ssam strcpy(name, pwd->pw_name); 4917835Sralph return SUCCESS; 5013651Ssam } 5113651Ssam 5213651Ssam 5317835Sralph /* 5417835Sralph * get passwd file info for name 5513651Ssam * 5617835Sralph * return codes: SUCCESS | FAIL 5713651Ssam */ 5813651Ssam 5913651Ssam gninfo(name, uid, path) 6013651Ssam char *path, *name; 6113651Ssam int *uid; 6213651Ssam { 6313651Ssam register struct passwd *pwd; 6413651Ssam struct passwd *getpwnam(); 6513651Ssam 6613651Ssam if ((pwd = getpwnam(name)) == NULL) { 6713651Ssam /* can not find name in passwd file */ 6813651Ssam *path = '\0'; 6917835Sralph return FAIL; 7013651Ssam } 7113651Ssam 7213651Ssam strcpy(path, pwd->pw_dir); 7313651Ssam *uid = pwd->pw_uid; 7417835Sralph return SUCCESS; 7513651Ssam } 76