10Sstevel@tonic-gate /*
2*7934SMark.Phalan@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
30Sstevel@tonic-gate * Use is subject to license terms.
40Sstevel@tonic-gate */
50Sstevel@tonic-gate
60Sstevel@tonic-gate
70Sstevel@tonic-gate /*
80Sstevel@tonic-gate * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
90Sstevel@tonic-gate *
100Sstevel@tonic-gate * Openvision retains the copyright to derivative works of
110Sstevel@tonic-gate * this source code. Do *NOT* create a derivative of this
120Sstevel@tonic-gate * source code before consulting with your legal department.
130Sstevel@tonic-gate * Do *NOT* integrate *ANY* of this source code into another
140Sstevel@tonic-gate * product before consulting with your legal department.
150Sstevel@tonic-gate *
160Sstevel@tonic-gate * For further information, read the top-level Openvision
170Sstevel@tonic-gate * copyright which is contained in the top-level MIT Kerberos
180Sstevel@tonic-gate * copyright.
190Sstevel@tonic-gate *
200Sstevel@tonic-gate * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
210Sstevel@tonic-gate *
220Sstevel@tonic-gate */
230Sstevel@tonic-gate
240Sstevel@tonic-gate
250Sstevel@tonic-gate #include <rpc/rpc.h> /* SUNWresync121 XXX */
260Sstevel@tonic-gate #include <kadm5/kadm_rpc.h>
270Sstevel@tonic-gate #include <krb5.h>
280Sstevel@tonic-gate #include <kadm5/admin.h>
292881Smp153739 #ifdef HAVE_MEMORY_H
300Sstevel@tonic-gate #include <memory.h>
312881Smp153739 #endif
320Sstevel@tonic-gate
330Sstevel@tonic-gate /* Default timeout can be changed using clnt_control() */
340Sstevel@tonic-gate static struct timeval TIMEOUT = { 25, 0 };
350Sstevel@tonic-gate
360Sstevel@tonic-gate generic_ret *
create_principal_2(cprinc_arg * argp,CLIENT * clnt)37*7934SMark.Phalan@Sun.COM create_principal_2(cprinc_arg *argp, CLIENT *clnt)
380Sstevel@tonic-gate {
39*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
400Sstevel@tonic-gate
41*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
420Sstevel@tonic-gate if (clnt == NULL)
430Sstevel@tonic-gate return (NULL);
44*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
45*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CREATE_PRINCIPAL,
46*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_cprinc_arg, (caddr_t) argp,
47*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
48*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
490Sstevel@tonic-gate return (NULL);
500Sstevel@tonic-gate }
51*7934SMark.Phalan@Sun.COM return (&clnt_res);
520Sstevel@tonic-gate }
530Sstevel@tonic-gate
540Sstevel@tonic-gate generic_ret *
create_principal3_2(cprinc3_arg * argp,CLIENT * clnt)55*7934SMark.Phalan@Sun.COM create_principal3_2(cprinc3_arg *argp, CLIENT *clnt)
560Sstevel@tonic-gate {
57*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
580Sstevel@tonic-gate
59*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
600Sstevel@tonic-gate if (clnt == NULL)
610Sstevel@tonic-gate return (NULL);
62*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
63*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CREATE_PRINCIPAL3,
64*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_cprinc3_arg, (caddr_t) argp,
65*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
66*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
670Sstevel@tonic-gate return (NULL);
680Sstevel@tonic-gate }
69*7934SMark.Phalan@Sun.COM return (&clnt_res);
700Sstevel@tonic-gate }
710Sstevel@tonic-gate
720Sstevel@tonic-gate generic_ret *
delete_principal_2(dprinc_arg * argp,CLIENT * clnt)73*7934SMark.Phalan@Sun.COM delete_principal_2(dprinc_arg *argp, CLIENT *clnt)
740Sstevel@tonic-gate {
75*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
760Sstevel@tonic-gate
77*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
780Sstevel@tonic-gate if (clnt == NULL)
790Sstevel@tonic-gate return (NULL);
80*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
81*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, DELETE_PRINCIPAL,
82*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_dprinc_arg, (caddr_t) argp,
83*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
84*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
850Sstevel@tonic-gate return (NULL);
860Sstevel@tonic-gate }
87*7934SMark.Phalan@Sun.COM return (&clnt_res);
880Sstevel@tonic-gate }
890Sstevel@tonic-gate
900Sstevel@tonic-gate generic_ret *
modify_principal_2(mprinc_arg * argp,CLIENT * clnt)91*7934SMark.Phalan@Sun.COM modify_principal_2(mprinc_arg *argp, CLIENT *clnt)
920Sstevel@tonic-gate {
93*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
940Sstevel@tonic-gate
95*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
960Sstevel@tonic-gate if (clnt == NULL)
970Sstevel@tonic-gate return (NULL);
98*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
99*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, MODIFY_PRINCIPAL,
100*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_mprinc_arg, (caddr_t) argp,
101*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
102*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
1030Sstevel@tonic-gate return (NULL);
1040Sstevel@tonic-gate }
105*7934SMark.Phalan@Sun.COM return (&clnt_res);
1060Sstevel@tonic-gate }
1070Sstevel@tonic-gate
1080Sstevel@tonic-gate generic_ret *
rename_principal_2(rprinc_arg * argp,CLIENT * clnt)109*7934SMark.Phalan@Sun.COM rename_principal_2(rprinc_arg *argp, CLIENT *clnt)
1100Sstevel@tonic-gate {
111*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
1120Sstevel@tonic-gate
113*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
1140Sstevel@tonic-gate if (clnt == NULL)
1150Sstevel@tonic-gate return (NULL);
116*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
117*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, RENAME_PRINCIPAL,
118*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_rprinc_arg, (caddr_t) argp,
119*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
120*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
1210Sstevel@tonic-gate return (NULL);
1220Sstevel@tonic-gate }
123*7934SMark.Phalan@Sun.COM return (&clnt_res);
1240Sstevel@tonic-gate }
1250Sstevel@tonic-gate
1260Sstevel@tonic-gate gprinc_ret *
get_principal_2(gprinc_arg * argp,CLIENT * clnt)127*7934SMark.Phalan@Sun.COM get_principal_2(gprinc_arg *argp, CLIENT *clnt)
1280Sstevel@tonic-gate {
129*7934SMark.Phalan@Sun.COM static gprinc_ret clnt_res;
1300Sstevel@tonic-gate
131*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
1320Sstevel@tonic-gate if (clnt == NULL)
1330Sstevel@tonic-gate return (NULL);
134*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
135*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, GET_PRINCIPAL,
136*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gprinc_arg, (caddr_t) argp,
137*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gprinc_ret, (caddr_t) &clnt_res,
138*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
1390Sstevel@tonic-gate return (NULL);
1400Sstevel@tonic-gate }
141*7934SMark.Phalan@Sun.COM return (&clnt_res);
1420Sstevel@tonic-gate }
1430Sstevel@tonic-gate
1440Sstevel@tonic-gate gprincs_ret *
get_princs_2(gprincs_arg * argp,CLIENT * clnt)145*7934SMark.Phalan@Sun.COM get_princs_2(gprincs_arg *argp, CLIENT *clnt)
1460Sstevel@tonic-gate {
147*7934SMark.Phalan@Sun.COM static gprincs_ret clnt_res;
1480Sstevel@tonic-gate
149*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
1500Sstevel@tonic-gate if (clnt == NULL)
1510Sstevel@tonic-gate return (NULL);
152*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
153*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, GET_PRINCS,
154*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gprincs_arg, (caddr_t) argp,
155*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gprincs_ret, (caddr_t) &clnt_res,
156*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
1570Sstevel@tonic-gate return (NULL);
1580Sstevel@tonic-gate }
159*7934SMark.Phalan@Sun.COM return (&clnt_res);
1600Sstevel@tonic-gate }
1610Sstevel@tonic-gate
1620Sstevel@tonic-gate generic_ret *
chpass_principal_2(chpass_arg * argp,CLIENT * clnt)163*7934SMark.Phalan@Sun.COM chpass_principal_2(chpass_arg *argp, CLIENT *clnt)
1640Sstevel@tonic-gate {
165*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
1660Sstevel@tonic-gate
167*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
1680Sstevel@tonic-gate if (clnt == NULL)
1690Sstevel@tonic-gate return (NULL);
170*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
171*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CHPASS_PRINCIPAL,
172*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_chpass_arg, (caddr_t) argp,
173*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
174*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
1750Sstevel@tonic-gate return (NULL);
1760Sstevel@tonic-gate }
177*7934SMark.Phalan@Sun.COM return (&clnt_res);
1780Sstevel@tonic-gate }
1790Sstevel@tonic-gate
1800Sstevel@tonic-gate generic_ret *
chpass_principal3_2(chpass3_arg * argp,CLIENT * clnt)181*7934SMark.Phalan@Sun.COM chpass_principal3_2(chpass3_arg *argp, CLIENT *clnt)
1820Sstevel@tonic-gate {
183*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
1840Sstevel@tonic-gate
185*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
1860Sstevel@tonic-gate if (clnt == NULL)
1870Sstevel@tonic-gate return (NULL);
188*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
189*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CHPASS_PRINCIPAL3,
190*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_chpass3_arg, (caddr_t) argp,
191*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
1920Sstevel@tonic-gate TIMEOUT) != RPC_SUCCESS) {
1930Sstevel@tonic-gate return (NULL);
1940Sstevel@tonic-gate }
195*7934SMark.Phalan@Sun.COM return (&clnt_res);
1960Sstevel@tonic-gate }
1970Sstevel@tonic-gate
1980Sstevel@tonic-gate generic_ret *
setv4key_principal_2(setv4key_arg * argp,CLIENT * clnt)199*7934SMark.Phalan@Sun.COM setv4key_principal_2(setv4key_arg *argp, CLIENT *clnt)
2000Sstevel@tonic-gate {
201*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
2020Sstevel@tonic-gate
203*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
2040Sstevel@tonic-gate if (clnt == NULL)
2050Sstevel@tonic-gate return (NULL);
206*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
207*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, SETV4KEY_PRINCIPAL,
208*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_setv4key_arg, (caddr_t) argp,
209*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
2100Sstevel@tonic-gate TIMEOUT) != RPC_SUCCESS) {
2110Sstevel@tonic-gate return (NULL);
2120Sstevel@tonic-gate }
213*7934SMark.Phalan@Sun.COM return (&clnt_res);
2140Sstevel@tonic-gate }
2150Sstevel@tonic-gate
2160Sstevel@tonic-gate generic_ret *
setkey_principal_2(setkey_arg * argp,CLIENT * clnt)217*7934SMark.Phalan@Sun.COM setkey_principal_2(setkey_arg *argp, CLIENT *clnt)
2180Sstevel@tonic-gate {
219*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
2200Sstevel@tonic-gate
221*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
2220Sstevel@tonic-gate if (clnt == NULL)
2230Sstevel@tonic-gate return (NULL);
224*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
225*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, SETKEY_PRINCIPAL,
226*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_setkey_arg, (caddr_t) argp,
227*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
2280Sstevel@tonic-gate TIMEOUT) != RPC_SUCCESS) {
2290Sstevel@tonic-gate return (NULL);
2300Sstevel@tonic-gate }
231*7934SMark.Phalan@Sun.COM return (&clnt_res);
2320Sstevel@tonic-gate }
2330Sstevel@tonic-gate
2340Sstevel@tonic-gate generic_ret *
setkey_principal3_2(setkey3_arg * argp,CLIENT * clnt)235*7934SMark.Phalan@Sun.COM setkey_principal3_2(setkey3_arg *argp, CLIENT *clnt)
2360Sstevel@tonic-gate {
237*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
2380Sstevel@tonic-gate
239*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
2400Sstevel@tonic-gate if (clnt == NULL)
2410Sstevel@tonic-gate return (NULL);
242*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
243*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, SETKEY_PRINCIPAL3,
244*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_setkey3_arg, (caddr_t) argp,
245*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
2460Sstevel@tonic-gate TIMEOUT) != RPC_SUCCESS) {
2470Sstevel@tonic-gate return (NULL);
2480Sstevel@tonic-gate }
249*7934SMark.Phalan@Sun.COM return (&clnt_res);
2500Sstevel@tonic-gate }
2510Sstevel@tonic-gate
2520Sstevel@tonic-gate chrand_ret *
chrand_principal_2(chrand_arg * argp,CLIENT * clnt)253*7934SMark.Phalan@Sun.COM chrand_principal_2(chrand_arg *argp, CLIENT *clnt)
2540Sstevel@tonic-gate {
255*7934SMark.Phalan@Sun.COM static chrand_ret clnt_res;
2560Sstevel@tonic-gate
257*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
2580Sstevel@tonic-gate if (clnt == NULL)
2590Sstevel@tonic-gate return (NULL);
260*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
261*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CHRAND_PRINCIPAL,
262*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_chrand_arg, (caddr_t) argp,
263*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_chrand_ret, (caddr_t) &clnt_res,
264*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
2650Sstevel@tonic-gate return (NULL);
2660Sstevel@tonic-gate }
267*7934SMark.Phalan@Sun.COM return (&clnt_res);
2680Sstevel@tonic-gate }
2690Sstevel@tonic-gate
2700Sstevel@tonic-gate chrand_ret *
chrand_principal3_2(chrand3_arg * argp,CLIENT * clnt)271*7934SMark.Phalan@Sun.COM chrand_principal3_2(chrand3_arg *argp, CLIENT *clnt)
2720Sstevel@tonic-gate {
273*7934SMark.Phalan@Sun.COM static chrand_ret clnt_res;
2740Sstevel@tonic-gate
275*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
2760Sstevel@tonic-gate if (clnt == NULL)
2770Sstevel@tonic-gate return (NULL);
278*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
279*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CHRAND_PRINCIPAL3,
280*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_chrand3_arg, (caddr_t) argp,
281*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_chrand_ret, (caddr_t) &clnt_res,
2820Sstevel@tonic-gate TIMEOUT) != RPC_SUCCESS) {
2830Sstevel@tonic-gate return (NULL);
2840Sstevel@tonic-gate }
285*7934SMark.Phalan@Sun.COM return (&clnt_res);
2860Sstevel@tonic-gate }
2870Sstevel@tonic-gate
2880Sstevel@tonic-gate generic_ret *
create_policy_2(cpol_arg * argp,CLIENT * clnt)289*7934SMark.Phalan@Sun.COM create_policy_2(cpol_arg *argp, CLIENT *clnt)
2900Sstevel@tonic-gate {
291*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
2920Sstevel@tonic-gate
293*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
2940Sstevel@tonic-gate if (clnt == NULL)
2950Sstevel@tonic-gate return (NULL);
296*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
297*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, CREATE_POLICY,
298*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_cpol_arg, (caddr_t) argp,
299*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
300*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
3010Sstevel@tonic-gate return (NULL);
3020Sstevel@tonic-gate }
303*7934SMark.Phalan@Sun.COM return (&clnt_res);
3040Sstevel@tonic-gate }
3050Sstevel@tonic-gate
3060Sstevel@tonic-gate generic_ret *
delete_policy_2(dpol_arg * argp,CLIENT * clnt)307*7934SMark.Phalan@Sun.COM delete_policy_2(dpol_arg *argp, CLIENT *clnt)
3080Sstevel@tonic-gate {
309*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
3100Sstevel@tonic-gate
311*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
3120Sstevel@tonic-gate if (clnt == NULL)
3130Sstevel@tonic-gate return (NULL);
314*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
315*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, DELETE_POLICY,
316*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_dpol_arg, (caddr_t) argp,
317*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
318*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
3190Sstevel@tonic-gate return (NULL);
3200Sstevel@tonic-gate }
321*7934SMark.Phalan@Sun.COM return (&clnt_res);
3220Sstevel@tonic-gate }
3230Sstevel@tonic-gate
3240Sstevel@tonic-gate generic_ret *
modify_policy_2(mpol_arg * argp,CLIENT * clnt)325*7934SMark.Phalan@Sun.COM modify_policy_2(mpol_arg *argp, CLIENT *clnt)
3260Sstevel@tonic-gate {
327*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
3280Sstevel@tonic-gate
329*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
3300Sstevel@tonic-gate if (clnt == NULL)
3310Sstevel@tonic-gate return (NULL);
332*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
333*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, MODIFY_POLICY,
334*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_mpol_arg, (caddr_t) argp,
335*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
336*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
3370Sstevel@tonic-gate return (NULL);
3380Sstevel@tonic-gate }
339*7934SMark.Phalan@Sun.COM return (&clnt_res);
3400Sstevel@tonic-gate }
3410Sstevel@tonic-gate
3420Sstevel@tonic-gate gpol_ret *
get_policy_2(gpol_arg * argp,CLIENT * clnt)343*7934SMark.Phalan@Sun.COM get_policy_2(gpol_arg *argp, CLIENT *clnt)
3440Sstevel@tonic-gate {
345*7934SMark.Phalan@Sun.COM static gpol_ret clnt_res;
3460Sstevel@tonic-gate
347*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
3480Sstevel@tonic-gate if (clnt == NULL)
3490Sstevel@tonic-gate return (NULL);
350*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
351*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, GET_POLICY,
352*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gpol_arg, (caddr_t) argp,
353*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gpol_ret, (caddr_t) &clnt_res,
354*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
3550Sstevel@tonic-gate return (NULL);
3560Sstevel@tonic-gate }
357*7934SMark.Phalan@Sun.COM return (&clnt_res);
3580Sstevel@tonic-gate }
3590Sstevel@tonic-gate
3600Sstevel@tonic-gate gpols_ret *
get_pols_2(gpols_arg * argp,CLIENT * clnt)361*7934SMark.Phalan@Sun.COM get_pols_2(gpols_arg *argp, CLIENT *clnt)
3620Sstevel@tonic-gate {
363*7934SMark.Phalan@Sun.COM static gpols_ret clnt_res;
3640Sstevel@tonic-gate
365*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
3660Sstevel@tonic-gate if (clnt == NULL)
3670Sstevel@tonic-gate return (NULL);
368*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
369*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, GET_POLS,
370*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gpols_arg, (caddr_t) argp,
371*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_gpols_ret, (caddr_t) &clnt_res,
372*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
3730Sstevel@tonic-gate return (NULL);
3740Sstevel@tonic-gate }
375*7934SMark.Phalan@Sun.COM return (&clnt_res);
3760Sstevel@tonic-gate }
3770Sstevel@tonic-gate
378*7934SMark.Phalan@Sun.COM getprivs_ret *
get_privs_2(void * argp,CLIENT * clnt)379*7934SMark.Phalan@Sun.COM get_privs_2(void *argp, CLIENT *clnt)
3800Sstevel@tonic-gate {
381*7934SMark.Phalan@Sun.COM static getprivs_ret clnt_res;
3820Sstevel@tonic-gate
383*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
3840Sstevel@tonic-gate if (clnt == NULL)
3850Sstevel@tonic-gate return (NULL);
386*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
387*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, GET_PRIVS,
388*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_u_int, (caddr_t) argp,
389*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_getprivs_ret, (caddr_t) &clnt_res,
390*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
3910Sstevel@tonic-gate return (NULL);
3920Sstevel@tonic-gate }
393*7934SMark.Phalan@Sun.COM return (&clnt_res);
3940Sstevel@tonic-gate }
3950Sstevel@tonic-gate
3960Sstevel@tonic-gate generic_ret *
init_2(void * argp,CLIENT * clnt)397*7934SMark.Phalan@Sun.COM init_2(void *argp, CLIENT *clnt)
3980Sstevel@tonic-gate {
399*7934SMark.Phalan@Sun.COM static generic_ret clnt_res;
4000Sstevel@tonic-gate
401*7934SMark.Phalan@Sun.COM /* Solaris Kerberos */
402*7934SMark.Phalan@Sun.COM if (clnt == NULL)
403*7934SMark.Phalan@Sun.COM return (NULL);
4040Sstevel@tonic-gate
405*7934SMark.Phalan@Sun.COM memset((char *)&clnt_res, 0, sizeof(clnt_res));
406*7934SMark.Phalan@Sun.COM if (clnt_call(clnt, INIT,
407*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_u_int, (caddr_t) argp,
408*7934SMark.Phalan@Sun.COM (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
409*7934SMark.Phalan@Sun.COM TIMEOUT) != RPC_SUCCESS) {
4100Sstevel@tonic-gate return (NULL);
4110Sstevel@tonic-gate }
412*7934SMark.Phalan@Sun.COM return (&clnt_res);
4130Sstevel@tonic-gate }
414