1 /*
2  * Copyright (c) 1998-1999 by Sun Microsystems, Inc.
3  * All rights reserved.
4  */
5 
6 #pragma ident	"%Z%%M%	%I%	%E% SMI"
7 
8 /*
9  * Contains remote client specific code.
10  */
11 
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <libintl.h>
15 #include <krb5.h>
16 #include <k5-int.h>
17 
18 extern void *handle;
19 
20 void
21 usage(char *whoami)
22 {
23 	fprintf(stderr,
24 	    "%s: %s [-r realm] [-p principal] [-q query] "
25 	    "[-s admin_server[:port]] [[-c ccache]|[-k [-t keytab]]]\n",
26 	    gettext("Usage"), whoami);
27 	exit(1);
28 }
29 
30 
31 /*
32  * Debugging function - for remote admin client
33  */
34 /* ARGSUSED */
35 void
36 debugEnable(int displayMsgs)
37 {
38 
39 #ifdef DEBUG
40 	debugDisplaySS(displayMsgs);
41 #endif
42 }
43 
44 void
45 kadmin_getprivs(argc, argv)
46 int argc;
47 char *argv[];
48 {
49     static char *privs[] = {"GET", "ADD", "MODIFY", "DELETE", "LIST",
50 				"CHANGE"};
51 	krb5_error_code retval;
52 	int i;
53 	long plist;
54 
55 	if (argc != 1) {
56 		fprintf(stderr, "%s: get_privs\n", gettext("usage"));
57 		return;
58 	}
59 	retval = kadm5_get_privs(handle, &plist);
60 	if (retval) {
61 		com_err("get_privs", retval,
62 		    gettext("while retrieving privileges"));
63 		return;
64 	}
65 	printf(gettext("current privileges:"));
66 	for (i = 0; i < sizeof (privs) / sizeof (char *); i++) {
67 		if (plist & 1 << i)
68 			printf(" %s", gettext(privs[i]));
69 	}
70 	printf("\n");
71 }
72