17c478bd9Sstevel@tonic-gate /*
2159d09a2SMark Phalan  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
37c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
47c478bd9Sstevel@tonic-gate  */
57c478bd9Sstevel@tonic-gate 
67c478bd9Sstevel@tonic-gate 
77c478bd9Sstevel@tonic-gate /*
8*55fea89dSDan Cross  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
97c478bd9Sstevel@tonic-gate  *
107c478bd9Sstevel@tonic-gate  *	Openvision retains the copyright to derivative works of
117c478bd9Sstevel@tonic-gate  *	this source code.  Do *NOT* create a derivative of this
127c478bd9Sstevel@tonic-gate  *	source code before consulting with your legal department.
137c478bd9Sstevel@tonic-gate  *	Do *NOT* integrate *ANY* of this source code into another
147c478bd9Sstevel@tonic-gate  *	product before consulting with your legal department.
157c478bd9Sstevel@tonic-gate  *
167c478bd9Sstevel@tonic-gate  *	For further information, read the top-level Openvision
177c478bd9Sstevel@tonic-gate  *	copyright which is contained in the top-level MIT Kerberos
187c478bd9Sstevel@tonic-gate  *	copyright.
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
217c478bd9Sstevel@tonic-gate  *
227c478bd9Sstevel@tonic-gate  */
237c478bd9Sstevel@tonic-gate 
247c478bd9Sstevel@tonic-gate 
257c478bd9Sstevel@tonic-gate #include <rpc/rpc.h> /* SUNWresync121 XXX */
267c478bd9Sstevel@tonic-gate #include <kadm5/kadm_rpc.h>
277c478bd9Sstevel@tonic-gate #include <krb5.h>
287c478bd9Sstevel@tonic-gate #include <kadm5/admin.h>
2956a424ccSmp #ifdef HAVE_MEMORY_H
307c478bd9Sstevel@tonic-gate #include <memory.h>
3156a424ccSmp #endif
327c478bd9Sstevel@tonic-gate 
337c478bd9Sstevel@tonic-gate /* Default timeout can be changed using clnt_control() */
347c478bd9Sstevel@tonic-gate static struct timeval TIMEOUT = { 25, 0 };
357c478bd9Sstevel@tonic-gate 
367c478bd9Sstevel@tonic-gate generic_ret *
create_principal_2(cprinc_arg * argp,CLIENT * clnt)37159d09a2SMark Phalan create_principal_2(cprinc_arg *argp, CLIENT *clnt)
387c478bd9Sstevel@tonic-gate {
39159d09a2SMark Phalan 	static generic_ret clnt_res;
407c478bd9Sstevel@tonic-gate 
41159d09a2SMark Phalan 	/* Solaris Kerberos */
427c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
437c478bd9Sstevel@tonic-gate 		return (NULL);
44159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
45159d09a2SMark Phalan 	if (clnt_call(clnt, CREATE_PRINCIPAL,
46159d09a2SMark Phalan 		      (xdrproc_t) xdr_cprinc_arg, (caddr_t) argp,
47159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
48159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
497c478bd9Sstevel@tonic-gate 		return (NULL);
507c478bd9Sstevel@tonic-gate 	}
51159d09a2SMark Phalan 	return (&clnt_res);
527c478bd9Sstevel@tonic-gate }
537c478bd9Sstevel@tonic-gate 
547c478bd9Sstevel@tonic-gate generic_ret *
create_principal3_2(cprinc3_arg * argp,CLIENT * clnt)55159d09a2SMark Phalan create_principal3_2(cprinc3_arg *argp, CLIENT *clnt)
567c478bd9Sstevel@tonic-gate {
57159d09a2SMark Phalan 	static generic_ret clnt_res;
587c478bd9Sstevel@tonic-gate 
59159d09a2SMark Phalan 	/* Solaris Kerberos */
607c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
617c478bd9Sstevel@tonic-gate 		return (NULL);
62159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
63159d09a2SMark Phalan 	if (clnt_call(clnt, CREATE_PRINCIPAL3,
64159d09a2SMark Phalan 		      (xdrproc_t) xdr_cprinc3_arg, (caddr_t) argp,
65159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
66159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
677c478bd9Sstevel@tonic-gate 		return (NULL);
687c478bd9Sstevel@tonic-gate 	}
69159d09a2SMark Phalan 	return (&clnt_res);
707c478bd9Sstevel@tonic-gate }
717c478bd9Sstevel@tonic-gate 
727c478bd9Sstevel@tonic-gate generic_ret *
delete_principal_2(dprinc_arg * argp,CLIENT * clnt)73159d09a2SMark Phalan delete_principal_2(dprinc_arg *argp, CLIENT *clnt)
747c478bd9Sstevel@tonic-gate {
75159d09a2SMark Phalan 	static generic_ret clnt_res;
767c478bd9Sstevel@tonic-gate 
77159d09a2SMark Phalan 	/* Solaris Kerberos */
787c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
797c478bd9Sstevel@tonic-gate 		return (NULL);
80159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
81159d09a2SMark Phalan 	if (clnt_call(clnt, DELETE_PRINCIPAL,
82159d09a2SMark Phalan 		      (xdrproc_t) xdr_dprinc_arg, (caddr_t) argp,
83159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
84159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
857c478bd9Sstevel@tonic-gate 		return (NULL);
867c478bd9Sstevel@tonic-gate 	}
87159d09a2SMark Phalan 	return (&clnt_res);
887c478bd9Sstevel@tonic-gate }
897c478bd9Sstevel@tonic-gate 
907c478bd9Sstevel@tonic-gate generic_ret *
modify_principal_2(mprinc_arg * argp,CLIENT * clnt)91159d09a2SMark Phalan modify_principal_2(mprinc_arg *argp, CLIENT *clnt)
927c478bd9Sstevel@tonic-gate {
93159d09a2SMark Phalan 	static generic_ret clnt_res;
947c478bd9Sstevel@tonic-gate 
95159d09a2SMark Phalan 	/* Solaris Kerberos */
967c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
977c478bd9Sstevel@tonic-gate 		return (NULL);
98159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
99159d09a2SMark Phalan 	if (clnt_call(clnt, MODIFY_PRINCIPAL,
100159d09a2SMark Phalan 		      (xdrproc_t) xdr_mprinc_arg, (caddr_t) argp,
101159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
102159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
1037c478bd9Sstevel@tonic-gate 		return (NULL);
1047c478bd9Sstevel@tonic-gate 	}
105159d09a2SMark Phalan 	return (&clnt_res);
1067c478bd9Sstevel@tonic-gate }
1077c478bd9Sstevel@tonic-gate 
1087c478bd9Sstevel@tonic-gate generic_ret *
rename_principal_2(rprinc_arg * argp,CLIENT * clnt)109159d09a2SMark Phalan rename_principal_2(rprinc_arg *argp, CLIENT *clnt)
1107c478bd9Sstevel@tonic-gate {
111159d09a2SMark Phalan 	static generic_ret clnt_res;
1127c478bd9Sstevel@tonic-gate 
113159d09a2SMark Phalan 	/* Solaris Kerberos */
1147c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
1157c478bd9Sstevel@tonic-gate 		return (NULL);
116159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
117159d09a2SMark Phalan 	if (clnt_call(clnt, RENAME_PRINCIPAL,
118159d09a2SMark Phalan 		      (xdrproc_t) xdr_rprinc_arg, (caddr_t) argp,
119159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
120159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
1217c478bd9Sstevel@tonic-gate 		return (NULL);
1227c478bd9Sstevel@tonic-gate 	}
123159d09a2SMark Phalan 	return (&clnt_res);
1247c478bd9Sstevel@tonic-gate }
1257c478bd9Sstevel@tonic-gate 
1267c478bd9Sstevel@tonic-gate gprinc_ret *
get_principal_2(gprinc_arg * argp,CLIENT * clnt)127159d09a2SMark Phalan get_principal_2(gprinc_arg *argp, CLIENT *clnt)
1287c478bd9Sstevel@tonic-gate {
129159d09a2SMark Phalan 	static gprinc_ret clnt_res;
1307c478bd9Sstevel@tonic-gate 
131159d09a2SMark Phalan 	/* Solaris Kerberos */
1327c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
1337c478bd9Sstevel@tonic-gate 		return (NULL);
134159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
135159d09a2SMark Phalan 	if (clnt_call(clnt, GET_PRINCIPAL,
136159d09a2SMark Phalan 		      (xdrproc_t) xdr_gprinc_arg, (caddr_t) argp,
137159d09a2SMark Phalan 		      (xdrproc_t) xdr_gprinc_ret, (caddr_t) &clnt_res,
138159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
1397c478bd9Sstevel@tonic-gate 		return (NULL);
1407c478bd9Sstevel@tonic-gate 	}
141159d09a2SMark Phalan 	return (&clnt_res);
1427c478bd9Sstevel@tonic-gate }
1437c478bd9Sstevel@tonic-gate 
1447c478bd9Sstevel@tonic-gate gprincs_ret *
get_princs_2(gprincs_arg * argp,CLIENT * clnt)145159d09a2SMark Phalan get_princs_2(gprincs_arg *argp, CLIENT *clnt)
1467c478bd9Sstevel@tonic-gate {
147159d09a2SMark Phalan 	static gprincs_ret clnt_res;
1487c478bd9Sstevel@tonic-gate 
149159d09a2SMark Phalan 	/* Solaris Kerberos */
1507c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
1517c478bd9Sstevel@tonic-gate 		return (NULL);
152159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
153159d09a2SMark Phalan 	if (clnt_call(clnt, GET_PRINCS,
154159d09a2SMark Phalan 		      (xdrproc_t) xdr_gprincs_arg, (caddr_t) argp,
155159d09a2SMark Phalan 		      (xdrproc_t) xdr_gprincs_ret, (caddr_t) &clnt_res,
156*55fea89dSDan Cross 		      TIMEOUT) != RPC_SUCCESS) {
1577c478bd9Sstevel@tonic-gate 	     return (NULL);
1587c478bd9Sstevel@tonic-gate 	}
159159d09a2SMark Phalan 	return (&clnt_res);
1607c478bd9Sstevel@tonic-gate }
1617c478bd9Sstevel@tonic-gate 
1627c478bd9Sstevel@tonic-gate generic_ret *
chpass_principal_2(chpass_arg * argp,CLIENT * clnt)163159d09a2SMark Phalan chpass_principal_2(chpass_arg *argp, CLIENT *clnt)
1647c478bd9Sstevel@tonic-gate {
165159d09a2SMark Phalan 	static generic_ret clnt_res;
1667c478bd9Sstevel@tonic-gate 
167159d09a2SMark Phalan 	/* Solaris Kerberos */
1687c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
1697c478bd9Sstevel@tonic-gate 		return (NULL);
170159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
171159d09a2SMark Phalan 	if (clnt_call(clnt, CHPASS_PRINCIPAL,
172159d09a2SMark Phalan 		      (xdrproc_t) xdr_chpass_arg, (caddr_t) argp,
173159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
174159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
1757c478bd9Sstevel@tonic-gate 		return (NULL);
1767c478bd9Sstevel@tonic-gate 	}
177159d09a2SMark Phalan 	return (&clnt_res);
1787c478bd9Sstevel@tonic-gate }
1797c478bd9Sstevel@tonic-gate 
1807c478bd9Sstevel@tonic-gate generic_ret *
chpass_principal3_2(chpass3_arg * argp,CLIENT * clnt)181159d09a2SMark Phalan chpass_principal3_2(chpass3_arg *argp, CLIENT *clnt)
1827c478bd9Sstevel@tonic-gate {
183159d09a2SMark Phalan 	static generic_ret clnt_res;
1847c478bd9Sstevel@tonic-gate 
185159d09a2SMark Phalan 	/* Solaris Kerberos */
1867c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
1877c478bd9Sstevel@tonic-gate 		return (NULL);
188159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
189159d09a2SMark Phalan 	if (clnt_call(clnt, CHPASS_PRINCIPAL3,
190159d09a2SMark Phalan 		      (xdrproc_t) xdr_chpass3_arg, (caddr_t) argp,
191159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
1927c478bd9Sstevel@tonic-gate 		      TIMEOUT) != RPC_SUCCESS) {
1937c478bd9Sstevel@tonic-gate 		return (NULL);
1947c478bd9Sstevel@tonic-gate 	}
195159d09a2SMark Phalan 	return (&clnt_res);
1967c478bd9Sstevel@tonic-gate }
1977c478bd9Sstevel@tonic-gate 
1987c478bd9Sstevel@tonic-gate generic_ret *
setv4key_principal_2(setv4key_arg * argp,CLIENT * clnt)199159d09a2SMark Phalan setv4key_principal_2(setv4key_arg *argp, CLIENT *clnt)
2007c478bd9Sstevel@tonic-gate {
201159d09a2SMark Phalan 	static generic_ret clnt_res;
2027c478bd9Sstevel@tonic-gate 
203159d09a2SMark Phalan 	/* Solaris Kerberos */
2047c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
2057c478bd9Sstevel@tonic-gate 		return (NULL);
206159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
207159d09a2SMark Phalan 	if (clnt_call(clnt, SETV4KEY_PRINCIPAL,
208159d09a2SMark Phalan 		      (xdrproc_t) xdr_setv4key_arg, (caddr_t) argp,
209159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
2107c478bd9Sstevel@tonic-gate 		      TIMEOUT) != RPC_SUCCESS) {
2117c478bd9Sstevel@tonic-gate 		return (NULL);
2127c478bd9Sstevel@tonic-gate 	}
213159d09a2SMark Phalan 	return (&clnt_res);
2147c478bd9Sstevel@tonic-gate }
2157c478bd9Sstevel@tonic-gate 
2167c478bd9Sstevel@tonic-gate generic_ret *
setkey_principal_2(setkey_arg * argp,CLIENT * clnt)217159d09a2SMark Phalan setkey_principal_2(setkey_arg *argp, CLIENT *clnt)
2187c478bd9Sstevel@tonic-gate {
219159d09a2SMark Phalan 	static generic_ret clnt_res;
2207c478bd9Sstevel@tonic-gate 
221159d09a2SMark Phalan 	/* Solaris Kerberos */
2227c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
2237c478bd9Sstevel@tonic-gate 		return (NULL);
224159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
225159d09a2SMark Phalan 	if (clnt_call(clnt, SETKEY_PRINCIPAL,
226159d09a2SMark Phalan 		      (xdrproc_t) xdr_setkey_arg, (caddr_t) argp,
227159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
2287c478bd9Sstevel@tonic-gate 		      TIMEOUT) != RPC_SUCCESS) {
2297c478bd9Sstevel@tonic-gate 		return (NULL);
2307c478bd9Sstevel@tonic-gate 	}
231159d09a2SMark Phalan 	return (&clnt_res);
2327c478bd9Sstevel@tonic-gate }
2337c478bd9Sstevel@tonic-gate 
2347c478bd9Sstevel@tonic-gate generic_ret *
setkey_principal3_2(setkey3_arg * argp,CLIENT * clnt)235159d09a2SMark Phalan setkey_principal3_2(setkey3_arg *argp, CLIENT *clnt)
2367c478bd9Sstevel@tonic-gate {
237159d09a2SMark Phalan 	static generic_ret clnt_res;
2387c478bd9Sstevel@tonic-gate 
239159d09a2SMark Phalan 	/* Solaris Kerberos */
2407c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
2417c478bd9Sstevel@tonic-gate 		return (NULL);
242159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
243159d09a2SMark Phalan 	if (clnt_call(clnt, SETKEY_PRINCIPAL3,
244159d09a2SMark Phalan 		      (xdrproc_t) xdr_setkey3_arg, (caddr_t) argp,
245159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
2467c478bd9Sstevel@tonic-gate 		      TIMEOUT) != RPC_SUCCESS) {
2477c478bd9Sstevel@tonic-gate 		return (NULL);
2487c478bd9Sstevel@tonic-gate 	}
249159d09a2SMark Phalan 	return (&clnt_res);
2507c478bd9Sstevel@tonic-gate }
2517c478bd9Sstevel@tonic-gate 
2527c478bd9Sstevel@tonic-gate chrand_ret *
chrand_principal_2(chrand_arg * argp,CLIENT * clnt)253159d09a2SMark Phalan chrand_principal_2(chrand_arg *argp, CLIENT *clnt)
2547c478bd9Sstevel@tonic-gate {
255159d09a2SMark Phalan 	static chrand_ret clnt_res;
2567c478bd9Sstevel@tonic-gate 
257159d09a2SMark Phalan 	/* Solaris Kerberos */
2587c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
2597c478bd9Sstevel@tonic-gate 		return (NULL);
260159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
261159d09a2SMark Phalan 	if (clnt_call(clnt, CHRAND_PRINCIPAL,
262159d09a2SMark Phalan 		      (xdrproc_t) xdr_chrand_arg, (caddr_t) argp,
263159d09a2SMark Phalan 		      (xdrproc_t) xdr_chrand_ret, (caddr_t) &clnt_res,
264159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
2657c478bd9Sstevel@tonic-gate 		return (NULL);
2667c478bd9Sstevel@tonic-gate 	}
267159d09a2SMark Phalan 	return (&clnt_res);
2687c478bd9Sstevel@tonic-gate }
2697c478bd9Sstevel@tonic-gate 
2707c478bd9Sstevel@tonic-gate chrand_ret *
chrand_principal3_2(chrand3_arg * argp,CLIENT * clnt)271159d09a2SMark Phalan chrand_principal3_2(chrand3_arg *argp, CLIENT *clnt)
2727c478bd9Sstevel@tonic-gate {
273159d09a2SMark Phalan 	static chrand_ret clnt_res;
2747c478bd9Sstevel@tonic-gate 
275159d09a2SMark Phalan 	/* Solaris Kerberos */
2767c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
2777c478bd9Sstevel@tonic-gate 		return (NULL);
278159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
279159d09a2SMark Phalan 	if (clnt_call(clnt, CHRAND_PRINCIPAL3,
280159d09a2SMark Phalan 		      (xdrproc_t) xdr_chrand3_arg, (caddr_t) argp,
281159d09a2SMark Phalan 		      (xdrproc_t) xdr_chrand_ret, (caddr_t) &clnt_res,
2827c478bd9Sstevel@tonic-gate 		      TIMEOUT) != RPC_SUCCESS) {
2837c478bd9Sstevel@tonic-gate 		return (NULL);
2847c478bd9Sstevel@tonic-gate 	}
285159d09a2SMark Phalan 	return (&clnt_res);
2867c478bd9Sstevel@tonic-gate }
2877c478bd9Sstevel@tonic-gate 
2887c478bd9Sstevel@tonic-gate generic_ret *
create_policy_2(cpol_arg * argp,CLIENT * clnt)289159d09a2SMark Phalan create_policy_2(cpol_arg *argp, CLIENT *clnt)
2907c478bd9Sstevel@tonic-gate {
291159d09a2SMark Phalan 	static generic_ret clnt_res;
2927c478bd9Sstevel@tonic-gate 
293159d09a2SMark Phalan 	/* Solaris Kerberos */
2947c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
2957c478bd9Sstevel@tonic-gate 		return (NULL);
296159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
297159d09a2SMark Phalan 	if (clnt_call(clnt, CREATE_POLICY,
298159d09a2SMark Phalan 		      (xdrproc_t) xdr_cpol_arg, (caddr_t) argp,
299159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
300159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
3017c478bd9Sstevel@tonic-gate 		return (NULL);
3027c478bd9Sstevel@tonic-gate 	}
303159d09a2SMark Phalan 	return (&clnt_res);
3047c478bd9Sstevel@tonic-gate }
3057c478bd9Sstevel@tonic-gate 
3067c478bd9Sstevel@tonic-gate generic_ret *
delete_policy_2(dpol_arg * argp,CLIENT * clnt)307159d09a2SMark Phalan delete_policy_2(dpol_arg *argp, CLIENT *clnt)
3087c478bd9Sstevel@tonic-gate {
309159d09a2SMark Phalan 	static generic_ret clnt_res;
3107c478bd9Sstevel@tonic-gate 
311159d09a2SMark Phalan 	/* Solaris Kerberos */
3127c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
3137c478bd9Sstevel@tonic-gate 		return (NULL);
314159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
315159d09a2SMark Phalan 	if (clnt_call(clnt, DELETE_POLICY,
316159d09a2SMark Phalan 		      (xdrproc_t) xdr_dpol_arg, (caddr_t) argp,
317159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
318159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
3197c478bd9Sstevel@tonic-gate 		return (NULL);
3207c478bd9Sstevel@tonic-gate 	}
321159d09a2SMark Phalan 	return (&clnt_res);
3227c478bd9Sstevel@tonic-gate }
3237c478bd9Sstevel@tonic-gate 
3247c478bd9Sstevel@tonic-gate generic_ret *
modify_policy_2(mpol_arg * argp,CLIENT * clnt)325159d09a2SMark Phalan modify_policy_2(mpol_arg *argp, CLIENT *clnt)
3267c478bd9Sstevel@tonic-gate {
327159d09a2SMark Phalan 	static generic_ret clnt_res;
3287c478bd9Sstevel@tonic-gate 
329159d09a2SMark Phalan 	/* Solaris Kerberos */
3307c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
3317c478bd9Sstevel@tonic-gate 		return (NULL);
332159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
333159d09a2SMark Phalan 	if (clnt_call(clnt, MODIFY_POLICY,
334159d09a2SMark Phalan 		      (xdrproc_t) xdr_mpol_arg, (caddr_t) argp,
335159d09a2SMark Phalan 		      (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
336159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
3377c478bd9Sstevel@tonic-gate 		return (NULL);
3387c478bd9Sstevel@tonic-gate 	}
339159d09a2SMark Phalan 	return (&clnt_res);
3407c478bd9Sstevel@tonic-gate }
3417c478bd9Sstevel@tonic-gate 
3427c478bd9Sstevel@tonic-gate gpol_ret *
get_policy_2(gpol_arg * argp,CLIENT * clnt)343159d09a2SMark Phalan get_policy_2(gpol_arg *argp, CLIENT *clnt)
3447c478bd9Sstevel@tonic-gate {
345159d09a2SMark Phalan 	static gpol_ret clnt_res;
3467c478bd9Sstevel@tonic-gate 
347159d09a2SMark Phalan 	/* Solaris Kerberos */
3487c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
3497c478bd9Sstevel@tonic-gate 		return (NULL);
350159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
351159d09a2SMark Phalan 	if (clnt_call(clnt, GET_POLICY,
352159d09a2SMark Phalan 		      (xdrproc_t) xdr_gpol_arg, (caddr_t) argp,
353159d09a2SMark Phalan 		      (xdrproc_t) xdr_gpol_ret, (caddr_t) &clnt_res,
354159d09a2SMark Phalan 		      TIMEOUT) != RPC_SUCCESS) {
3557c478bd9Sstevel@tonic-gate 		return (NULL);
3567c478bd9Sstevel@tonic-gate 	}
357159d09a2SMark Phalan 	return (&clnt_res);
3587c478bd9Sstevel@tonic-gate }
3597c478bd9Sstevel@tonic-gate 
3607c478bd9Sstevel@tonic-gate gpols_ret *
get_pols_2(gpols_arg * argp,CLIENT * clnt)361159d09a2SMark Phalan get_pols_2(gpols_arg *argp, CLIENT *clnt)
3627c478bd9Sstevel@tonic-gate {
363159d09a2SMark Phalan 	static gpols_ret clnt_res;
3647c478bd9Sstevel@tonic-gate 
365159d09a2SMark Phalan 	/* Solaris Kerberos */
3667c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
3677c478bd9Sstevel@tonic-gate 		return (NULL);
368159d09a2SMark Phalan 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
369159d09a2SMark Phalan 	if (clnt_call(clnt, GET_POLS,
370159d09a2SMark Phalan 		      (xdrproc_t) xdr_gpols_arg, (caddr_t) argp,
371159d09a2SMark Phalan 		      (xdrproc_t) xdr_gpols_ret, (caddr_t) &clnt_res,
372*55fea89dSDan Cross 		      TIMEOUT) != RPC_SUCCESS) {
3737c478bd9Sstevel@tonic-gate 	     return (NULL);
3747c478bd9Sstevel@tonic-gate 	}
375159d09a2SMark Phalan 	return (&clnt_res);
3767c478bd9Sstevel@tonic-gate }
3777c478bd9Sstevel@tonic-gate 
378159d09a2SMark Phalan getprivs_ret *
get_privs_2(void * argp,CLIENT * clnt)379159d09a2SMark Phalan get_privs_2(void *argp, CLIENT *clnt)
3807c478bd9Sstevel@tonic-gate {
381159d09a2SMark Phalan      static getprivs_ret clnt_res;
3827c478bd9Sstevel@tonic-gate 
383159d09a2SMark Phalan 	/* Solaris Kerberos */
3847c478bd9Sstevel@tonic-gate 	if (clnt == NULL)
3857c478bd9Sstevel@tonic-gate 		return (NULL);
386159d09a2SMark Phalan      memset((char *)&clnt_res, 0, sizeof(clnt_res));
387159d09a2SMark Phalan      if (clnt_call(clnt, GET_PRIVS,
388159d09a2SMark Phalan 		   (xdrproc_t) xdr_u_int, (caddr_t) argp,
389159d09a2SMark Phalan 		   (xdrproc_t) xdr_getprivs_ret, (caddr_t) &clnt_res,
390159d09a2SMark Phalan 		   TIMEOUT) != RPC_SUCCESS) {
3917c478bd9Sstevel@tonic-gate 	  return (NULL);
3927c478bd9Sstevel@tonic-gate      }
393159d09a2SMark Phalan      return (&clnt_res);
3947c478bd9Sstevel@tonic-gate }
3957c478bd9Sstevel@tonic-gate 
3967c478bd9Sstevel@tonic-gate generic_ret *
init_2(void * argp,CLIENT * clnt)397159d09a2SMark Phalan init_2(void *argp, CLIENT *clnt)
3987c478bd9Sstevel@tonic-gate {
399159d09a2SMark Phalan      static generic_ret clnt_res;
4007c478bd9Sstevel@tonic-gate 
401159d09a2SMark Phalan 	/* Solaris Kerberos */
402159d09a2SMark Phalan      if (clnt == NULL)
403159d09a2SMark Phalan          return (NULL);
4047c478bd9Sstevel@tonic-gate 
405159d09a2SMark Phalan      memset((char *)&clnt_res, 0, sizeof(clnt_res));
406159d09a2SMark Phalan      if (clnt_call(clnt, INIT,
407159d09a2SMark Phalan 		   (xdrproc_t) xdr_u_int, (caddr_t) argp,
408159d09a2SMark Phalan 		   (xdrproc_t) xdr_generic_ret, (caddr_t) &clnt_res,
409159d09a2SMark Phalan 		   TIMEOUT) != RPC_SUCCESS) {
4107c478bd9Sstevel@tonic-gate 	  return (NULL);
4117c478bd9Sstevel@tonic-gate      }
412159d09a2SMark Phalan      return (&clnt_res);
4137c478bd9Sstevel@tonic-gate }
414