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