1 /*
2  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
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]]"
26 	    "|[-w password]]\n",
27 	    gettext("Usage"), whoami);
28 	exit(1);
29 }
30 
31 
32 /*
33  * Debugging function - for remote admin client
34  */
35 /* ARGSUSED */
36 void
37 debugEnable(int displayMsgs)
38 {
39 
40 #ifdef DEBUG
41 	debugDisplaySS(displayMsgs);
42 #endif
43 }
44 
45 void kadmin_getprivs(argc, argv)
46     int argc;
47     char *argv[];
48 {
49     static char *privs[] = {"GET", "ADD", "MODIFY", "DELETE", "LIST", "CHANGE"};
50     krb5_error_code retval;
51     int i;
52     long plist;
53 
54     if (argc != 1) {
55 	fprintf(stderr, "%s: get_privs\n", gettext("usage"));
56 	return;
57     }
58     retval = kadm5_get_privs(handle, &plist);
59     if (retval) {
60 	com_err("get_privs", retval,
61 		    gettext("while retrieving privileges"));
62 	return;
63     }
64     printf(gettext("current privileges:"));
65     for (i = 0; i < sizeof (privs) / sizeof (char *); i++) {
66 	if (plist & 1 << i)
67 	    printf(" %s", gettext(privs[i]));
68     }
69     printf("\n");
70     return;
71 }
72