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