xref: /csrg-svn/usr.bin/uucp/libuu/getpwinfo.c (revision 13651)
1*13651Ssam #ifndef lint
2*13651Ssam static char sccsid[] = "@(#)getpwinfo.c	5.1 (Berkeley) 07/02/83";
3*13651Ssam #endif
4*13651Ssam 
5*13651Ssam #include "uucp.h"
6*13651Ssam #include <pwd.h>
7*13651Ssam 
8*13651Ssam /*******
9*13651Ssam  *	guinfo(uid, name, path)	get passwd file info for uid
10*13651Ssam  *	int uid;
11*13651Ssam  *	char *path, *name;
12*13651Ssam  *
13*13651Ssam  *	return codes:  0  |  FAIL
14*13651Ssam  *
15*13651Ssam  *	modified 3/16/81 to use the "real" login name -- mcnc!dennis
16*13651Ssam  *						(Dennis Rockwell)
17*13651Ssam  */
18*13651Ssam 
19*13651Ssam guinfo(uid, name, path)
20*13651Ssam int uid;
21*13651Ssam register char *path, *name;
22*13651Ssam {
23*13651Ssam 	register struct passwd *pwd;
24*13651Ssam 	struct passwd *getpwuid(), *getpwnam();
25*13651Ssam 	char *getlogin(), *l;
26*13651Ssam 
27*13651Ssam 	if ((l = getlogin()) != NULL) {
28*13651Ssam 		pwd = getpwnam(l);
29*13651Ssam 		if (pwd->pw_uid == uid)
30*13651Ssam 			goto setup;
31*13651Ssam 	}
32*13651Ssam 	if ((pwd = getpwuid(uid)) == NULL) {
33*13651Ssam 		/* can not find uid in passwd file */
34*13651Ssam 		*path = '\0';
35*13651Ssam 		return(FAIL);
36*13651Ssam 	}
37*13651Ssam 
38*13651Ssam     setup:
39*13651Ssam 	strcpy(path, pwd->pw_dir);
40*13651Ssam 	strcpy(name, pwd->pw_name);
41*13651Ssam 	return(0);
42*13651Ssam }
43*13651Ssam 
44*13651Ssam 
45*13651Ssam /***
46*13651Ssam  *	gninfo(name, uid, path)	get passwd file info for name
47*13651Ssam  *	char *path, *name;
48*13651Ssam  *	int *uid;
49*13651Ssam  *
50*13651Ssam  *	return codes:  0  |  FAIL
51*13651Ssam  */
52*13651Ssam 
53*13651Ssam gninfo(name, uid, path)
54*13651Ssam char *path, *name;
55*13651Ssam int *uid;
56*13651Ssam {
57*13651Ssam 	register struct passwd *pwd;
58*13651Ssam 	struct passwd *getpwnam();
59*13651Ssam 
60*13651Ssam 	if ((pwd = getpwnam(name)) == NULL) {
61*13651Ssam 		/* can not find name in passwd file */
62*13651Ssam 		*path = '\0';
63*13651Ssam 		return(FAIL);
64*13651Ssam 	}
65*13651Ssam 
66*13651Ssam 	strcpy(path, pwd->pw_dir);
67*13651Ssam 	*uid = pwd->pw_uid;
68*13651Ssam 	return(0);
69*13651Ssam }
70*13651Ssam 
71*13651Ssam 
72