xref: /csrg-svn/usr.bin/uucp/libuu/getpwinfo.c (revision 23604)
113651Ssam #ifndef lint
2*23604Sbloom static char sccsid[] = "@(#)getpwinfo.c	5.3 (Berkeley) 06/19/85";
313651Ssam #endif
413651Ssam 
513651Ssam #include "uucp.h"
613651Ssam #include <pwd.h>
713651Ssam 
8*23604Sbloom /*LINTLIBRARY*/
9*23604Sbloom 
10*23604Sbloom /*
11*23604Sbloom  *	get passwd file info for uid
1213651Ssam  *
13*23604Sbloom  *	return codes:  SUCCESS  |  FAIL
1413651Ssam  *
1513651Ssam  */
1613651Ssam 
1713651Ssam guinfo(uid, name, path)
1813651Ssam int uid;
1913651Ssam register char *path, *name;
2013651Ssam {
2113651Ssam 	register struct passwd *pwd;
2213651Ssam 	struct passwd *getpwuid(), *getpwnam();
23*23604Sbloom 	char *getlogin(), *getenv(), *l;
2413651Ssam 
25*23604Sbloom 	if ((l = getlogin()) == NULL) {
26*23604Sbloom 		l = getenv("USER");
27*23604Sbloom 	}
28*23604Sbloom 	if (l != NULL) {
2913651Ssam 		pwd = getpwnam(l);
30*23604Sbloom 		if (pwd != NULL && pwd->pw_uid == uid)
3113651Ssam 			goto setup;
3213651Ssam 	}
3313651Ssam 	if ((pwd = getpwuid(uid)) == NULL) {
3413651Ssam 		/* can not find uid in passwd file */
35*23604Sbloom 		*name = '\0';
3613651Ssam 		*path = '\0';
3717835Sralph 		return FAIL;
3813651Ssam 	}
3913651Ssam 
4013651Ssam     setup:
4113651Ssam 	strcpy(path, pwd->pw_dir);
4213651Ssam 	strcpy(name, pwd->pw_name);
4317835Sralph 	return SUCCESS;
4413651Ssam }
4513651Ssam 
4613651Ssam 
4717835Sralph /*
4817835Sralph  *	get passwd file info for name
4913651Ssam  *
5017835Sralph  *	return codes:  SUCCESS  |  FAIL
5113651Ssam  */
5213651Ssam 
5313651Ssam gninfo(name, uid, path)
5413651Ssam char *path, *name;
5513651Ssam int *uid;
5613651Ssam {
5713651Ssam 	register struct passwd *pwd;
5813651Ssam 	struct passwd *getpwnam();
5913651Ssam 
6013651Ssam 	if ((pwd = getpwnam(name)) == NULL) {
6113651Ssam 		/* can not find name in passwd file */
6213651Ssam 		*path = '\0';
6317835Sralph 		return FAIL;
6413651Ssam 	}
6513651Ssam 
6613651Ssam 	strcpy(path, pwd->pw_dir);
6713651Ssam 	*uid = pwd->pw_uid;
6817835Sralph 	return SUCCESS;
6913651Ssam }
70