2 * Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved
7 #if !defined(lint) && !defined(__CODECENTER__)
8 static char *rcsid = "$Header$";
11 #include <gssrpc/rpc.h>
12 #include <kadm5/admin.h>
13 #include <kadm5/kadm_rpc.h>
14 #include "client_internal.h"
18 #include "err_handle.h"
21 kadm5_create_policy(void *server_handle,
22 kadm5_policy_ent_t policy, long mask)
26 kadm5_server_handle_t handle = server_handle;
28 CHECK_HANDLE(server_handle);
30 if(policy == (kadm5_policy_ent_t) NULL)
34 arg.api_version = handle->api_version;
35 memcpy(&arg.rec, policy, sizeof(kadm5_policy_ent_rec));
36 r = create_policy_2(&arg, handle->clnt);
38 return KADM5_RPC_ERROR;
42 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
48 kadm5_delete_policy(void *server_handle, char *name)
52 kadm5_server_handle_t handle = server_handle;
54 CHECK_HANDLE(server_handle);
60 arg.api_version = handle->api_version;
62 r = delete_policy_2(&arg, handle->clnt);
64 return KADM5_RPC_ERROR;
68 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
74 kadm5_modify_policy(void *server_handle,
75 kadm5_policy_ent_t policy, long mask)
79 kadm5_server_handle_t handle = server_handle;
81 CHECK_HANDLE(server_handle);
83 if(policy == (kadm5_policy_ent_t) NULL)
87 arg.api_version = handle->api_version;
89 memcpy(&arg.rec, policy, sizeof(kadm5_policy_ent_rec));
90 r = modify_policy_2(&arg, handle->clnt);
92 return KADM5_RPC_ERROR;
96 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
102 kadm5_get_policy(void *server_handle, char *name, kadm5_policy_ent_t ent)
106 kadm5_server_handle_t handle = server_handle;
108 CHECK_HANDLE(server_handle);
111 arg.api_version = handle->api_version;
116 r = get_policy_2(&arg, handle->clnt);
118 return KADM5_RPC_ERROR;
119 if (handle->api_version == KADM5_API_VERSION_1) {
120 kadm5_policy_ent_t *entp;
122 entp = (kadm5_policy_ent_t *) ent;
124 if (!(*entp = (kadm5_policy_ent_t)
125 malloc(sizeof(kadm5_policy_ent_rec))))
127 memcpy(*entp, &r->rec, sizeof(**entp));
133 memcpy(ent, &r->rec, sizeof(r->rec));
138 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
144 kadm5_get_policies(void *server_handle,
145 char *exp, char ***pols, int *count)
149 kadm5_server_handle_t handle = server_handle;
151 CHECK_HANDLE(server_handle);
153 if(pols == NULL || count == NULL)
156 arg.api_version = handle->api_version;
157 r = get_pols_2(&arg, handle->clnt);
159 return KADM5_RPC_ERROR;
170 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );