1 /* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */
2 #include <gssrpc/rpc.h>
3 #include <kadm5/kadm_rpc.h>
4 #include <krb5.h>
5 #include <kadm5/admin.h>
6 #include <string.h> /* for memset prototype */
7
8 #ifdef HAVE_MEMORY_H
9 #include <memory.h>
10 #endif
11
12 /* Default timeout can be changed using clnt_control() */
13 static struct timeval TIMEOUT = { 25, 0 };
14
15 enum clnt_stat
create_principal_2(cprinc_arg * argp,generic_ret * res,CLIENT * clnt)16 create_principal_2(cprinc_arg *argp, generic_ret *res, CLIENT *clnt)
17 {
18 return clnt_call(clnt, CREATE_PRINCIPAL,
19 (xdrproc_t)xdr_cprinc_arg, (caddr_t)argp,
20 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
21 }
22
23 enum clnt_stat
create_principal3_2(cprinc3_arg * argp,generic_ret * res,CLIENT * clnt)24 create_principal3_2(cprinc3_arg *argp, generic_ret *res, CLIENT *clnt)
25 {
26 return clnt_call(clnt, CREATE_PRINCIPAL3,
27 (xdrproc_t)xdr_cprinc3_arg, (caddr_t)argp,
28 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
29 }
30
31 enum clnt_stat
delete_principal_2(dprinc_arg * argp,generic_ret * res,CLIENT * clnt)32 delete_principal_2(dprinc_arg *argp, generic_ret *res, CLIENT *clnt)
33 {
34 return clnt_call(clnt, DELETE_PRINCIPAL,
35 (xdrproc_t)xdr_dprinc_arg, (caddr_t)argp,
36 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
37 }
38
39 enum clnt_stat
modify_principal_2(mprinc_arg * argp,generic_ret * res,CLIENT * clnt)40 modify_principal_2(mprinc_arg *argp, generic_ret *res, CLIENT *clnt)
41 {
42 return clnt_call(clnt, MODIFY_PRINCIPAL,
43 (xdrproc_t)xdr_mprinc_arg, (caddr_t)argp,
44 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
45 }
46
47 enum clnt_stat
rename_principal_2(rprinc_arg * argp,generic_ret * res,CLIENT * clnt)48 rename_principal_2(rprinc_arg *argp, generic_ret *res, CLIENT *clnt)
49 {
50 return clnt_call(clnt, RENAME_PRINCIPAL,
51 (xdrproc_t)xdr_rprinc_arg, (caddr_t)argp,
52 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
53 }
54
55 enum clnt_stat
get_principal_2(gprinc_arg * argp,gprinc_ret * res,CLIENT * clnt)56 get_principal_2(gprinc_arg *argp, gprinc_ret *res, CLIENT *clnt)
57 {
58 return clnt_call(clnt, GET_PRINCIPAL,
59 (xdrproc_t)xdr_gprinc_arg, (caddr_t)argp,
60 (xdrproc_t)xdr_gprinc_ret, (caddr_t)res, TIMEOUT);
61 }
62
63 enum clnt_stat
get_princs_2(gprincs_arg * argp,gprincs_ret * res,CLIENT * clnt)64 get_princs_2(gprincs_arg *argp, gprincs_ret *res, CLIENT *clnt)
65 {
66 return clnt_call(clnt, GET_PRINCS,
67 (xdrproc_t)xdr_gprincs_arg, (caddr_t)argp,
68 (xdrproc_t)xdr_gprincs_ret, (caddr_t)res, TIMEOUT);
69 }
70
71 enum clnt_stat
chpass_principal_2(chpass_arg * argp,generic_ret * res,CLIENT * clnt)72 chpass_principal_2(chpass_arg *argp, generic_ret *res, CLIENT *clnt)
73 {
74 return clnt_call(clnt, CHPASS_PRINCIPAL,
75 (xdrproc_t)xdr_chpass_arg, (caddr_t)argp,
76 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
77 }
78
79 enum clnt_stat
chpass_principal3_2(chpass3_arg * argp,generic_ret * res,CLIENT * clnt)80 chpass_principal3_2(chpass3_arg *argp, generic_ret *res, CLIENT *clnt)
81 {
82 return clnt_call(clnt, CHPASS_PRINCIPAL3,
83 (xdrproc_t)xdr_chpass3_arg, (caddr_t)argp,
84 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
85 }
86
87 enum clnt_stat
setkey_principal_2(setkey_arg * argp,generic_ret * res,CLIENT * clnt)88 setkey_principal_2(setkey_arg *argp, generic_ret *res, CLIENT *clnt)
89 {
90 return clnt_call(clnt, SETKEY_PRINCIPAL,
91 (xdrproc_t)xdr_setkey_arg, (caddr_t)argp,
92 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
93 }
94
95 enum clnt_stat
setkey_principal3_2(setkey3_arg * argp,generic_ret * res,CLIENT * clnt)96 setkey_principal3_2(setkey3_arg *argp, generic_ret *res, CLIENT *clnt)
97 {
98 return clnt_call(clnt, SETKEY_PRINCIPAL3,
99 (xdrproc_t)xdr_setkey3_arg, (caddr_t)argp,
100 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
101 }
102
103 enum clnt_stat
setkey_principal4_2(setkey4_arg * argp,generic_ret * res,CLIENT * clnt)104 setkey_principal4_2(setkey4_arg *argp, generic_ret *res, CLIENT *clnt)
105 {
106 return clnt_call(clnt, SETKEY_PRINCIPAL4,
107 (xdrproc_t)xdr_setkey4_arg, (caddr_t)argp,
108 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
109 }
110
111 enum clnt_stat
chrand_principal_2(chrand_arg * argp,chrand_ret * res,CLIENT * clnt)112 chrand_principal_2(chrand_arg *argp, chrand_ret *res, CLIENT *clnt)
113 {
114 return clnt_call(clnt, CHRAND_PRINCIPAL,
115 (xdrproc_t)xdr_chrand_arg, (caddr_t)argp,
116 (xdrproc_t)xdr_chrand_ret, (caddr_t)res, TIMEOUT);
117 }
118
119 enum clnt_stat
chrand_principal3_2(chrand3_arg * argp,chrand_ret * res,CLIENT * clnt)120 chrand_principal3_2(chrand3_arg *argp, chrand_ret *res, CLIENT *clnt)
121 {
122 return clnt_call(clnt, CHRAND_PRINCIPAL3,
123 (xdrproc_t)xdr_chrand3_arg, (caddr_t)argp,
124 (xdrproc_t)xdr_chrand_ret, (caddr_t)res, TIMEOUT);
125 }
126
127 enum clnt_stat
create_policy_2(cpol_arg * argp,generic_ret * res,CLIENT * clnt)128 create_policy_2(cpol_arg *argp, generic_ret *res, CLIENT *clnt)
129 {
130 return clnt_call(clnt, CREATE_POLICY,
131 (xdrproc_t)xdr_cpol_arg, (caddr_t)argp,
132 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
133 }
134
135 enum clnt_stat
delete_policy_2(dpol_arg * argp,generic_ret * res,CLIENT * clnt)136 delete_policy_2(dpol_arg *argp, generic_ret *res, CLIENT *clnt)
137 {
138 return clnt_call(clnt, DELETE_POLICY,
139 (xdrproc_t)xdr_dpol_arg, (caddr_t)argp,
140 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
141 }
142
143 enum clnt_stat
modify_policy_2(mpol_arg * argp,generic_ret * res,CLIENT * clnt)144 modify_policy_2(mpol_arg *argp, generic_ret *res, CLIENT *clnt)
145 {
146 return clnt_call(clnt, MODIFY_POLICY,
147 (xdrproc_t)xdr_mpol_arg, (caddr_t)argp,
148 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
149 }
150
151 enum clnt_stat
get_policy_2(gpol_arg * argp,gpol_ret * res,CLIENT * clnt)152 get_policy_2(gpol_arg *argp, gpol_ret *res, CLIENT *clnt)
153 {
154 return clnt_call(clnt, GET_POLICY,
155 (xdrproc_t)xdr_gpol_arg, (caddr_t)argp,
156 (xdrproc_t)xdr_gpol_ret, (caddr_t)res, TIMEOUT);
157 }
158
159 enum clnt_stat
get_pols_2(gpols_arg * argp,gpols_ret * res,CLIENT * clnt)160 get_pols_2(gpols_arg *argp, gpols_ret *res, CLIENT *clnt)
161 {
162 return clnt_call(clnt, GET_POLS,
163 (xdrproc_t)xdr_gpols_arg, (caddr_t)argp,
164 (xdrproc_t)xdr_gpols_ret, (caddr_t)res, TIMEOUT);
165 }
166
167 enum clnt_stat
get_privs_2(void * argp,getprivs_ret * res,CLIENT * clnt)168 get_privs_2(void *argp, getprivs_ret *res, CLIENT *clnt)
169 {
170 return clnt_call(clnt, GET_PRIVS,
171 (xdrproc_t)xdr_u_int32, (caddr_t)argp,
172 (xdrproc_t)xdr_getprivs_ret, (caddr_t)res, TIMEOUT);
173 }
174
175 enum clnt_stat
init_2(void * argp,generic_ret * res,CLIENT * clnt)176 init_2(void *argp, generic_ret *res, CLIENT *clnt)
177 {
178 return clnt_call(clnt, INIT,
179 (xdrproc_t)xdr_u_int32, (caddr_t)argp,
180 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
181 }
182
183 enum clnt_stat
purgekeys_2(purgekeys_arg * argp,generic_ret * res,CLIENT * clnt)184 purgekeys_2(purgekeys_arg *argp, generic_ret *res, CLIENT *clnt)
185 {
186 return clnt_call(clnt, PURGEKEYS,
187 (xdrproc_t)xdr_purgekeys_arg, (caddr_t)argp,
188 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
189 }
190
191 enum clnt_stat
get_strings_2(gstrings_arg * argp,gstrings_ret * res,CLIENT * clnt)192 get_strings_2(gstrings_arg *argp, gstrings_ret *res, CLIENT *clnt)
193 {
194 return clnt_call(clnt, GET_STRINGS,
195 (xdrproc_t)xdr_gstrings_arg, (caddr_t)argp,
196 (xdrproc_t)xdr_gstrings_ret, (caddr_t)res, TIMEOUT);
197 }
198
199 enum clnt_stat
set_string_2(sstring_arg * argp,generic_ret * res,CLIENT * clnt)200 set_string_2(sstring_arg *argp, generic_ret *res, CLIENT *clnt)
201 {
202 return clnt_call(clnt, SET_STRING,
203 (xdrproc_t)xdr_sstring_arg, (caddr_t)argp,
204 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
205 }
206
207 enum clnt_stat
get_principal_keys_2(getpkeys_arg * argp,getpkeys_ret * res,CLIENT * clnt)208 get_principal_keys_2(getpkeys_arg *argp, getpkeys_ret *res, CLIENT *clnt)
209 {
210 return clnt_call(clnt, EXTRACT_KEYS,
211 (xdrproc_t)xdr_getpkeys_arg, (caddr_t)argp,
212 (xdrproc_t)xdr_getpkeys_ret, (caddr_t)res, TIMEOUT);
213 }
214