1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /*
28 * Originally generated using rpcgen.
29 */
30
31 #include "mt.h"
32 #include <rpc/rpc.h>
33 #include <rpcsvc/nis.h>
34
35 bool_t
xdr_nis_attr(XDR * xdrs,nis_attr * objp)36 xdr_nis_attr(XDR *xdrs, nis_attr *objp)
37 {
38 if (!xdr_string(xdrs, &objp->zattr_ndx, ~0))
39 return (FALSE);
40 return (xdr_bytes(xdrs, (char **)&objp->zattr_val.zattr_val_val,
41 (uint_t *)&objp->zattr_val.zattr_val_len, ~0));
42 }
43
44 bool_t
xdr_nis_name(XDR * xdrs,nis_name * objp)45 xdr_nis_name(XDR *xdrs, nis_name *objp)
46 {
47 return (xdr_string(xdrs, objp, ~0));
48 }
49
50 bool_t
xdr_zotypes(XDR * xdrs,zotypes * objp)51 xdr_zotypes(XDR *xdrs, zotypes *objp)
52 {
53 return (xdr_enum(xdrs, (enum_t *)objp));
54 }
55
56 bool_t
xdr_nstype(XDR * xdrs,nstype * objp)57 xdr_nstype(XDR *xdrs, nstype *objp)
58 {
59 return (xdr_enum(xdrs, (enum_t *)objp));
60 }
61
62 bool_t
xdr_oar_mask(XDR * xdrs,oar_mask * objp)63 xdr_oar_mask(XDR *xdrs, oar_mask *objp)
64 {
65 if (!xdr_u_int(xdrs, &objp->oa_rights))
66 return (FALSE);
67 return (xdr_zotypes(xdrs, &objp->oa_otype));
68 }
69
70 bool_t
xdr_endpoint(XDR * xdrs,endpoint * objp)71 xdr_endpoint(XDR *xdrs, endpoint *objp)
72 {
73 if (!xdr_string(xdrs, &objp->uaddr, ~0))
74 return (FALSE);
75 if (!xdr_string(xdrs, &objp->family, ~0))
76 return (FALSE);
77 return (xdr_string(xdrs, &objp->proto, ~0));
78 }
79
80 bool_t
xdr_nis_server(XDR * xdrs,nis_server * objp)81 xdr_nis_server(XDR *xdrs, nis_server *objp)
82 {
83 if (!xdr_nis_name(xdrs, &objp->name))
84 return (FALSE);
85 if (!xdr_array(xdrs, (char **)&objp->ep.ep_val,
86 (uint_t *)&objp->ep.ep_len, ~0,
87 sizeof (endpoint), (xdrproc_t)xdr_endpoint))
88 return (FALSE);
89 if (!xdr_u_int(xdrs, &objp->key_type))
90 return (FALSE);
91 return (xdr_netobj(xdrs, &objp->pkey));
92 }
93
94 bool_t
xdr_directory_obj(XDR * xdrs,directory_obj * objp)95 xdr_directory_obj(XDR *xdrs, directory_obj *objp)
96 {
97 if (!xdr_nis_name(xdrs, &objp->do_name))
98 return (FALSE);
99 if (!xdr_nstype(xdrs, &objp->do_type))
100 return (FALSE);
101 if (!xdr_array(xdrs, (char **)&objp->do_servers.do_servers_val,
102 (uint_t *)&objp->do_servers.do_servers_len, ~0,
103 sizeof (nis_server), (xdrproc_t)xdr_nis_server))
104 return (FALSE);
105 if (!xdr_uint32_t(xdrs, &objp->do_ttl))
106 return (FALSE);
107 return (xdr_array(xdrs, (char **)&objp->do_armask.do_armask_val,
108 (uint_t *)&objp->do_armask.do_armask_len, ~0,
109 sizeof (oar_mask), (xdrproc_t)xdr_oar_mask));
110 }
111
112 bool_t
xdr_entry_col(XDR * xdrs,entry_col * objp)113 xdr_entry_col(XDR *xdrs, entry_col *objp)
114 {
115 if (!xdr_u_int(xdrs, &objp->ec_flags))
116 return (FALSE);
117 return (xdr_bytes(xdrs, (char **)&objp->ec_value.ec_value_val,
118 (uint_t *)&objp->ec_value.ec_value_len, ~0));
119 }
120
121 bool_t
xdr_entry_obj(XDR * xdrs,entry_obj * objp)122 xdr_entry_obj(XDR *xdrs, entry_obj *objp)
123 {
124 if (!xdr_string(xdrs, &objp->en_type, ~0))
125 return (FALSE);
126 return (xdr_array(xdrs, (char **)&objp->en_cols.en_cols_val,
127 (uint_t *)&objp->en_cols.en_cols_len, ~0,
128 sizeof (entry_col), (xdrproc_t)xdr_entry_col));
129 }
130
131 bool_t
xdr_group_obj(XDR * xdrs,group_obj * objp)132 xdr_group_obj(XDR *xdrs, group_obj *objp)
133 {
134 if (!xdr_u_int(xdrs, &objp->gr_flags))
135 return (FALSE);
136 return (xdr_array(xdrs, (char **)&objp->gr_members.gr_members_val,
137 (uint_t *)&objp->gr_members.gr_members_len, ~0,
138 sizeof (nis_name), (xdrproc_t)xdr_nis_name));
139 }
140
141 bool_t
xdr_link_obj(XDR * xdrs,link_obj * objp)142 xdr_link_obj(XDR *xdrs, link_obj *objp)
143 {
144 if (!xdr_zotypes(xdrs, &objp->li_rtype))
145 return (FALSE);
146 if (!xdr_array(xdrs, (char **)&objp->li_attrs.li_attrs_val,
147 (uint_t *)&objp->li_attrs.li_attrs_len, ~0,
148 sizeof (nis_attr), (xdrproc_t)xdr_nis_attr))
149 return (FALSE);
150 return (xdr_nis_name(xdrs, &objp->li_name));
151 }
152
153 bool_t
xdr_table_col(XDR * xdrs,table_col * objp)154 xdr_table_col(XDR *xdrs, table_col *objp)
155 {
156 if (!xdr_string(xdrs, &objp->tc_name, 64))
157 return (FALSE);
158 if (!xdr_u_int(xdrs, &objp->tc_flags))
159 return (FALSE);
160 return (xdr_u_int(xdrs, &objp->tc_rights));
161 }
162
163 bool_t
xdr_table_obj(XDR * xdrs,table_obj * objp)164 xdr_table_obj(XDR *xdrs, table_obj *objp)
165 {
166 if (!xdr_string(xdrs, &objp->ta_type, 64))
167 return (FALSE);
168 if (!xdr_int(xdrs, &objp->ta_maxcol))
169 return (FALSE);
170 if (!xdr_u_char(xdrs, &objp->ta_sep))
171 return (FALSE);
172 if (!xdr_array(xdrs, (char **)&objp->ta_cols.ta_cols_val,
173 (uint_t *)&objp->ta_cols.ta_cols_len, ~0,
174 sizeof (table_col), (xdrproc_t)xdr_table_col))
175 return (FALSE);
176 return (xdr_string(xdrs, &objp->ta_path, ~0));
177 }
178
179 bool_t
xdr_objdata(XDR * xdrs,objdata * objp)180 xdr_objdata(XDR *xdrs, objdata *objp)
181 {
182 if (!xdr_zotypes(xdrs, &objp->zo_type))
183 return (FALSE);
184
185 switch (objp->zo_type) {
186 case NIS_DIRECTORY_OBJ:
187 return (xdr_directory_obj(xdrs, &objp->objdata_u.di_data));
188 case NIS_GROUP_OBJ:
189 return (xdr_group_obj(xdrs, &objp->objdata_u.gr_data));
190 case NIS_TABLE_OBJ:
191 return (xdr_table_obj(xdrs, &objp->objdata_u.ta_data));
192 case NIS_ENTRY_OBJ:
193 return (xdr_entry_obj(xdrs, &objp->objdata_u.en_data));
194 case NIS_LINK_OBJ:
195 return (xdr_link_obj(xdrs, &objp->objdata_u.li_data));
196 case NIS_PRIVATE_OBJ:
197 return (xdr_bytes(xdrs,
198 (char **)&objp->objdata_u.po_data.po_data_val,
199 (uint_t *)&objp->objdata_u.po_data.po_data_len, ~0));
200 case NIS_NO_OBJ:
201 return (TRUE);
202 case NIS_BOGUS_OBJ:
203 return (TRUE);
204 }
205 return (TRUE);
206 }
207
208 bool_t
xdr_nis_oid(XDR * xdrs,nis_oid * objp)209 xdr_nis_oid(XDR *xdrs, nis_oid *objp)
210 {
211 if (!xdr_uint32_t(xdrs, &objp->ctime))
212 return (FALSE);
213 return (xdr_uint32_t(xdrs, &objp->mtime));
214 }
215
216 bool_t
xdr_nis_object(XDR * xdrs,nis_object * objp)217 xdr_nis_object(XDR *xdrs, nis_object *objp)
218 {
219 if (!xdr_nis_oid(xdrs, &objp->zo_oid))
220 return (FALSE);
221 if (!xdr_nis_name(xdrs, &objp->zo_name))
222 return (FALSE);
223 if (!xdr_nis_name(xdrs, &objp->zo_owner))
224 return (FALSE);
225 if (!xdr_nis_name(xdrs, &objp->zo_group))
226 return (FALSE);
227 if (!xdr_nis_name(xdrs, &objp->zo_domain))
228 return (FALSE);
229 if (!xdr_u_int(xdrs, &objp->zo_access))
230 return (FALSE);
231 if (!xdr_uint32_t(xdrs, &objp->zo_ttl))
232 return (FALSE);
233 return (xdr_objdata(xdrs, &objp->zo_data));
234 }
235