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"
17 #include "err_handle.h"
20 kadm5_create_policy(void *server_handle,
21 kadm5_policy_ent_t policy, long mask)
25 kadm5_server_handle_t handle = server_handle;
27 CHECK_HANDLE(server_handle);
29 if(policy == (kadm5_policy_ent_t) NULL)
33 arg.api_version = handle->api_version;
34 memcpy(&arg.rec, policy, sizeof(kadm5_policy_ent_rec));
35 r = create_policy_1(&arg, handle->clnt);
37 return KADM5_RPC_ERROR;
41 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
47 kadm5_delete_policy(void *server_handle, char *name)
51 kadm5_server_handle_t handle = server_handle;
53 CHECK_HANDLE(server_handle);
59 arg.api_version = handle->api_version;
61 r = delete_policy_1(&arg, handle->clnt);
63 return KADM5_RPC_ERROR;
67 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
73 kadm5_modify_policy(void *server_handle,
74 kadm5_policy_ent_t policy, long mask)
78 kadm5_server_handle_t handle = server_handle;
80 CHECK_HANDLE(server_handle);
82 if(policy == (kadm5_policy_ent_t) NULL)
86 arg.api_version = handle->api_version;
88 memcpy(&arg.rec, policy, sizeof(kadm5_policy_ent_rec));
89 r = modify_policy_1(&arg, handle->clnt);
91 return KADM5_RPC_ERROR;
95 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
101 kadm5_get_policy(void *server_handle, char *name, kadm5_policy_ent_t ent)
105 kadm5_server_handle_t handle = server_handle;
107 CHECK_HANDLE(server_handle);
110 arg.api_version = handle->api_version;
115 r = get_policy_1(&arg, handle->clnt);
117 return KADM5_RPC_ERROR;
118 if (handle->api_version == KADM5_API_VERSION_1) {
119 kadm5_policy_ent_t *entp;
121 entp = (kadm5_policy_ent_t *) ent;
123 if (!(*entp = (kadm5_policy_ent_t)
124 malloc(sizeof(kadm5_policy_ent_rec))))
126 memcpy(*entp, &r->rec, sizeof(**entp));
132 memcpy(ent, &r->rec, sizeof(r->rec));
137 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );
143 kadm5_get_policies(void *server_handle,
144 char *exp, char ***pols, int *count)
148 kadm5_server_handle_t handle = server_handle;
150 CHECK_HANDLE(server_handle);
152 if(pols == NULL || count == NULL)
155 arg.api_version = handle->api_version;
156 r = get_pols_1(&arg, handle->clnt);
158 return KADM5_RPC_ERROR;
169 krb5_set_err( handle->context, krb5_err_have_str, r->code, r->err_str );