148652Sbostic /*-
2*62386Sbostic * Copyright (c) 1985, 1993
3*62386Sbostic * The Regents of the University of California. All rights reserved.
448652Sbostic *
548652Sbostic * %sccs.include.proprietary.c%
648652Sbostic */
748652Sbostic
813651Ssam #ifndef lint
9*62386Sbostic static char sccsid[] = "@(#)getpwinfo.c 8.1 (Berkeley) 06/06/93";
1048652Sbostic #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
guinfo(uid,name,path)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
gninfo(name,uid,path)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