xref: /csrg-svn/usr.bin/uucp/libuu/getpwinfo.c (revision 17835)
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