xref: /plan9/sys/src/cmd/9nfs/nametest.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1*7dd7cddfSDavid du Colombier #include "all.h"
2*7dd7cddfSDavid du Colombier 
3*7dd7cddfSDavid du Colombier void	mapinit(char*, char*);
4*7dd7cddfSDavid du Colombier 
5*7dd7cddfSDavid du Colombier int	debug;
6*7dd7cddfSDavid du Colombier int	rpcdebug;
7*7dd7cddfSDavid du Colombier int	style = 'u';
8*7dd7cddfSDavid du Colombier Biobuf *in;
9*7dd7cddfSDavid du Colombier Unixid *ids;
10*7dd7cddfSDavid du Colombier Unixid **pids;
11*7dd7cddfSDavid du Colombier Unixidmap *mp;
12*7dd7cddfSDavid du Colombier 
13*7dd7cddfSDavid du Colombier void
main(int argc,char ** argv)14*7dd7cddfSDavid du Colombier main(int argc, char **argv)
15*7dd7cddfSDavid du Colombier {
16*7dd7cddfSDavid du Colombier 	int id, arc; char *arv[4];
17*7dd7cddfSDavid du Colombier 	char *l, *name;
18*7dd7cddfSDavid du Colombier 
19*7dd7cddfSDavid du Colombier 	chatty = 1;
20*7dd7cddfSDavid du Colombier 	ARGBEGIN{
21*7dd7cddfSDavid du Colombier 	case '9':
22*7dd7cddfSDavid du Colombier 	case 'u':
23*7dd7cddfSDavid du Colombier 		style = ARGC();
24*7dd7cddfSDavid du Colombier 		break;
25*7dd7cddfSDavid du Colombier 	case 'D':
26*7dd7cddfSDavid du Colombier 		++debug;
27*7dd7cddfSDavid du Colombier 		break;
28*7dd7cddfSDavid du Colombier 	}ARGEND
29*7dd7cddfSDavid du Colombier 	if(argc <= 0){
30*7dd7cddfSDavid du Colombier 		ids = readunixids("/fd/0", style);
31*7dd7cddfSDavid du Colombier 		if(ids)
32*7dd7cddfSDavid du Colombier 			idprint(1, ids);
33*7dd7cddfSDavid du Colombier 		exits(ids ? 0 : "readunixids");
34*7dd7cddfSDavid du Colombier 	}
35*7dd7cddfSDavid du Colombier 	mapinit(argv[0], 0);
36*7dd7cddfSDavid du Colombier 	in = Bopen("/fd/0", OREAD);
37*7dd7cddfSDavid du Colombier 	while(l = Brdline(in, '\n')){	/* assign = */
38*7dd7cddfSDavid du Colombier 		l[Blinelen(in)-1] = 0;
39*7dd7cddfSDavid du Colombier 		arc = strparse(l, nelem(arv), arv);
40*7dd7cddfSDavid du Colombier 		if(arc <= 0)
41*7dd7cddfSDavid du Colombier 			continue;
42*7dd7cddfSDavid du Colombier 		switch(arv[0][0]){
43*7dd7cddfSDavid du Colombier 		case 'r':
44*7dd7cddfSDavid du Colombier 			if(arc < 2)
45*7dd7cddfSDavid du Colombier 				continue;
46*7dd7cddfSDavid du Colombier 			mapinit(arv[1], arv[2]);
47*7dd7cddfSDavid du Colombier 			break;
48*7dd7cddfSDavid du Colombier 		case 'i':
49*7dd7cddfSDavid du Colombier 			if(arc < 2)
50*7dd7cddfSDavid du Colombier 				continue;
51*7dd7cddfSDavid du Colombier 			id = strtol(arv[1], 0, 10);
52*7dd7cddfSDavid du Colombier 			name = id2name(pids, id);
53*7dd7cddfSDavid du Colombier 			print("%d -> %s\n", id, name);
54*7dd7cddfSDavid du Colombier 			break;
55*7dd7cddfSDavid du Colombier 		case 'n':
56*7dd7cddfSDavid du Colombier 			if(arc < 2)
57*7dd7cddfSDavid du Colombier 				continue;
58*7dd7cddfSDavid du Colombier 			name = arv[1];
59*7dd7cddfSDavid du Colombier 			id = name2id(pids, name);
60*7dd7cddfSDavid du Colombier 			print("%s -> %d\n", name, id);
61*7dd7cddfSDavid du Colombier 			break;
62*7dd7cddfSDavid du Colombier 		case 'p':
63*7dd7cddfSDavid du Colombier 			print("server=%s, client=%s\n", mp->server, mp->client);
64*7dd7cddfSDavid du Colombier 			break;
65*7dd7cddfSDavid du Colombier 		case 'P':
66*7dd7cddfSDavid du Colombier 			idprint(1, *pids);
67*7dd7cddfSDavid du Colombier 			break;
68*7dd7cddfSDavid du Colombier 		case 'u':
69*7dd7cddfSDavid du Colombier 			pids = &mp->u.ids;
70*7dd7cddfSDavid du Colombier 			print("users...\n");
71*7dd7cddfSDavid du Colombier 			break;
72*7dd7cddfSDavid du Colombier 		case 'g':
73*7dd7cddfSDavid du Colombier 			pids = &mp->g.ids;
74*7dd7cddfSDavid du Colombier 			print("groups...\n");
75*7dd7cddfSDavid du Colombier 			break;
76*7dd7cddfSDavid du Colombier 		}
77*7dd7cddfSDavid du Colombier 	}
78*7dd7cddfSDavid du Colombier 	exits(0);
79*7dd7cddfSDavid du Colombier }
80*7dd7cddfSDavid du Colombier 
81*7dd7cddfSDavid du Colombier void
mapinit(char * file,char * client)82*7dd7cddfSDavid du Colombier mapinit(char *file, char *client)
83*7dd7cddfSDavid du Colombier {
84*7dd7cddfSDavid du Colombier 	if(file){
85*7dd7cddfSDavid du Colombier 		print("reading %s...\n", file);
86*7dd7cddfSDavid du Colombier 		if(readunixidmaps(file) < 0)
87*7dd7cddfSDavid du Colombier 			exits("readunixidmaps");
88*7dd7cddfSDavid du Colombier 		if(!client)
89*7dd7cddfSDavid du Colombier 		client = "nslocum.research.bell-labs.com";
90*7dd7cddfSDavid du Colombier 	}
91*7dd7cddfSDavid du Colombier 	print("client = %s...\n", client);
92*7dd7cddfSDavid du Colombier 	mp = pair2idmap("bootes", client, 0);
93*7dd7cddfSDavid du Colombier 	if(mp == 0){
94*7dd7cddfSDavid du Colombier 		fprint(2, "%s: pair2idmap failed\n", argv0);
95*7dd7cddfSDavid du Colombier 		exits("pair2idmap");
96*7dd7cddfSDavid du Colombier 	}
97*7dd7cddfSDavid du Colombier 	pids = &mp->u.ids;
98*7dd7cddfSDavid du Colombier 	print("[users...]\n");
99*7dd7cddfSDavid du Colombier }
100