1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 #include <stdio.h>
3 #include <kadm5/admin.h>
4 #include <string.h>
5
main(int argc,char ** argv)6 int main(int argc, char **argv)
7 {
8 kadm5_ret_t ret;
9 void *server_handle;
10 char **names;
11 int count, princ, i;
12 krb5_context context;
13
14 if (argc != 3) {
15 fprintf(stderr, "Usage: %s [-princ|-pol] exp\n", argv[0]);
16 exit(1);
17 }
18 princ = (strcmp(argv[1], "-princ") == 0);
19
20 ret = kadm5_init_krb5_context(&context);
21 if (ret != KADM5_OK) {
22 com_err("iter-test", ret, "while initializing context");
23 exit(1);
24 }
25 ret = kadm5_init("admin", "admin", KADM5_ADMIN_SERVICE, 0,
26 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL,
27 &server_handle);
28 if (ret != KADM5_OK) {
29 com_err("iter-test", ret, "while initializing");
30 exit(1);
31 }
32
33 if (princ)
34 ret = kadm5_get_principals(server_handle, argv[2], &names, &count);
35 else
36 ret = kadm5_get_policies(server_handle, argv[2], &names, &count);
37
38 if (ret != KADM5_OK) {
39 com_err("iter-test", ret, "while retrieving list");
40 exit(1);
41 }
42
43 for (i = 0; i < count; i++)
44 printf("%d: %s\n", i, names[i]);
45
46 kadm5_free_name_list(server_handle, names, count);
47
48 (void) kadm5_destroy(server_handle);
49
50 return 0;
51 }
52