]> sourceware.org Git - glibc.git/blame - nis/rpcsvc/yp.x
Update.
[glibc.git] / nis / rpcsvc / yp.x
CommitLineData
6259ec0d
UD
1/* @(#)yp.x 2.1 88/08/01 4.0 RPCSRC */
2
3/*
4 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
5 * unrestricted use provided that this legend is included on all tape
6 * media and as a part of the software program in whole or part. Users
7 * may copy or modify Sun RPC without charge, but are not authorized
8 * to license or distribute it to anyone else except as part of a product or
9 * program developed by the user.
1228ed5c 10 *
6259ec0d
UD
11 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
12 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
13 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
1228ed5c 14 *
6259ec0d
UD
15 * Sun RPC is provided with no support and without any obligation on the
16 * part of Sun Microsystems, Inc. to assist in its use, correction,
17 * modification or enhancement.
1228ed5c 18 *
6259ec0d
UD
19 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
20 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
21 * OR ANY PART THEREOF.
1228ed5c 22 *
6259ec0d
UD
23 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
24 * or profits or other special, indirect and consequential damages, even if
25 * Sun has been advised of the possibility of such damages.
1228ed5c 26 *
6259ec0d
UD
27 * Sun Microsystems, Inc.
28 * 2550 Garcia Avenue
29 * Mountain View, California 94043
30 */
31
32/*
33 * Protocol description file for the Yellow Pages Service
34 */
35
36const YPMAXRECORD = 1024;
37const YPMAXDOMAIN = 64;
38const YPMAXMAP = 64;
39const YPMAXPEER = 64;
40
41
42enum ypstat {
43 YP_TRUE = 1,
44 YP_NOMORE = 2,
45 YP_FALSE = 0,
46 YP_NOMAP = -1,
47 YP_NODOM = -2,
48 YP_NOKEY = -3,
49 YP_BADOP = -4,
50 YP_BADDB = -5,
51 YP_YPERR = -6,
52 YP_BADARGS = -7,
53 YP_VERS = -8
54};
55
56
57enum ypxfrstat {
58 YPXFR_SUCC = 1,
59 YPXFR_AGE = 2,
60 YPXFR_NOMAP = -1,
61 YPXFR_NODOM = -2,
62 YPXFR_RSRC = -3,
63 YPXFR_RPC = -4,
64 YPXFR_MADDR = -5,
65 YPXFR_YPERR = -6,
66 YPXFR_BADARGS = -7,
67 YPXFR_DBM = -8,
68 YPXFR_FILE = -9,
69 YPXFR_SKEW = -10,
70 YPXFR_CLEAR = -11,
71 YPXFR_FORCE = -12,
72 YPXFR_XFRERR = -13,
73 YPXFR_REFUSED = -14
74};
75
76
77typedef string domainname<YPMAXDOMAIN>;
78typedef string mapname<YPMAXMAP>;
79typedef string peername<YPMAXPEER>;
80typedef opaque keydat<YPMAXRECORD>;
81typedef opaque valdat<YPMAXRECORD>;
82
83
84struct ypmap_parms {
1228ed5c 85 domainname domain;
6259ec0d
UD
86 mapname map;
87 unsigned int ordernum;
88 peername peer;
89};
90
91struct ypreq_key {
92 domainname domain;
93 mapname map;
94 keydat key;
95};
96
97struct ypreq_nokey {
1228ed5c 98 domainname domain;
6259ec0d
UD
99 mapname map;
100};
1228ed5c 101
6259ec0d
UD
102struct ypreq_xfr {
103 ypmap_parms map_parms;
104 unsigned int transid;
105 unsigned int prog;
106 unsigned int port;
107};
108
109
110struct ypresp_val {
111 ypstat stat;
112 valdat val;
113};
114
115struct ypresp_key_val {
116 ypstat stat;
6952e59e
UD
117#ifdef STUPID_SUN_BUG
118 /* This is the form as distributed by Sun. But even the Sun NIS
119 servers expect the values in the other order. So their
120 implementation somehow must change the order internally. We
121 don't want to follow this bad example since the user should be
122 able to use rpcgen on this file. */
6259ec0d
UD
123 keydat key;
124 valdat val;
6952e59e
UD
125#else
126 valdat val;
127 keydat key;
128#endif
6259ec0d
UD
129};
130
131
132struct ypresp_master {
1228ed5c 133 ypstat stat;
6259ec0d
UD
134 peername peer;
135};
136
137struct ypresp_order {
138 ypstat stat;
139 unsigned int ordernum;
140};
141
142union ypresp_all switch (bool more) {
143case TRUE:
144 ypresp_key_val val;
145case FALSE:
146 void;
147};
148
149struct ypresp_xfr {
150 unsigned int transid;
151 ypxfrstat xfrstat;
152};
153
154struct ypmaplist {
155 mapname map;
156 ypmaplist *next;
157};
158
159struct ypresp_maplist {
160 ypstat stat;
161 ypmaplist *maps;
162};
163
164enum yppush_status {
165 YPPUSH_SUCC = 1, /* Success */
166 YPPUSH_AGE = 2, /* Master's version not newer */
167 YPPUSH_NOMAP = -1, /* Can't find server for map */
168 YPPUSH_NODOM = -2, /* Domain not supported */
169 YPPUSH_RSRC = -3, /* Local resource alloc failure */
170 YPPUSH_RPC = -4, /* RPC failure talking to server */
171 YPPUSH_MADDR = -5, /* Can't get master address */
172 YPPUSH_YPERR = -6, /* YP server/map db error */
173 YPPUSH_BADARGS = -7, /* Request arguments bad */
174 YPPUSH_DBM = -8, /* Local dbm operation failed */
175 YPPUSH_FILE = -9, /* Local file I/O operation failed */
176 YPPUSH_SKEW = -10, /* Map version skew during transfer */
177 YPPUSH_CLEAR = -11, /* Can't send "Clear" req to local ypserv */
178 YPPUSH_FORCE = -12, /* No local order number in map use -f flag. */
179 YPPUSH_XFRERR = -13, /* ypxfr error */
180 YPPUSH_REFUSED = -14 /* Transfer request refused by ypserv */
181};
182
183struct yppushresp_xfr {
184 unsigned transid;
185 yppush_status status;
186};
187
188/*
189 * Response structure and overall result status codes. Success and failure
190 * represent two separate response message types.
191 */
1228ed5c 192
6259ec0d 193enum ypbind_resptype {
1228ed5c 194 YPBIND_SUCC_VAL = 1,
6259ec0d
UD
195 YPBIND_FAIL_VAL = 2
196};
1228ed5c 197
6259ec0d
UD
198struct ypbind_binding {
199 opaque ypbind_binding_addr[4]; /* In network order */
200 opaque ypbind_binding_port[2]; /* In network order */
1228ed5c 201};
6259ec0d
UD
202
203union ypbind_resp switch (ypbind_resptype ypbind_status) {
204case YPBIND_FAIL_VAL:
205 unsigned ypbind_error;
206case YPBIND_SUCC_VAL:
207 ypbind_binding ypbind_bindinfo;
1228ed5c 208};
6259ec0d
UD
209
210/* Detailed failure reason codes for response field ypbind_error*/
1228ed5c 211
6259ec0d
UD
212const YPBIND_ERR_ERR = 1; /* Internal error */
213const YPBIND_ERR_NOSERV = 2; /* No bound server for passed domain */
214const YPBIND_ERR_RESC = 3; /* System resource allocation failure */
1228ed5c
UD
215
216
6259ec0d
UD
217/*
218 * Request data structure for ypbind "Set domain" procedure.
219 */
220struct ypbind_setdom {
221 domainname ypsetdom_domain;
222 ypbind_binding ypsetdom_binding;
223 unsigned ypsetdom_vers;
224};
225
226
227/*
228 * YP access protocol
229 */
230program YPPROG {
231 version YPVERS {
1228ed5c 232 void
6259ec0d
UD
233 YPPROC_NULL(void) = 0;
234
1228ed5c
UD
235 bool
236 YPPROC_DOMAIN(domainname) = 1;
6259ec0d
UD
237
238 bool
239 YPPROC_DOMAIN_NONACK(domainname) = 2;
240
241 ypresp_val
242 YPPROC_MATCH(ypreq_key) = 3;
243
1228ed5c 244 ypresp_key_val
6259ec0d
UD
245 YPPROC_FIRST(ypreq_key) = 4;
246
1228ed5c 247 ypresp_key_val
6259ec0d
UD
248 YPPROC_NEXT(ypreq_key) = 5;
249
250 ypresp_xfr
251 YPPROC_XFR(ypreq_xfr) = 6;
252
253 void
254 YPPROC_CLEAR(void) = 7;
255
256 ypresp_all
257 YPPROC_ALL(ypreq_nokey) = 8;
258
259 ypresp_master
260 YPPROC_MASTER(ypreq_nokey) = 9;
261
262 ypresp_order
263 YPPROC_ORDER(ypreq_nokey) = 10;
264
1228ed5c 265 ypresp_maplist
6259ec0d
UD
266 YPPROC_MAPLIST(domainname) = 11;
267 } = 2;
268} = 100004;
269
270
271/*
272 * YPPUSHPROC_XFRRESP is the callback routine for result of YPPROC_XFR
273 */
274program YPPUSH_XFRRESPPROG {
275 version YPPUSH_XFRRESPVERS {
276 void
277 YPPUSHPROC_NULL(void) = 0;
278
279#ifdef STUPID_SUN_BUG
6952e59e
UD
280 /* This is the form as distributed by Sun. But even
281 the Sun NIS servers expect the values in the other
282 order. So their implementation somehow must change
283 the order internally. We don't want to follow this
284 bad example since the user should be able to use
285 rpcgen on this file. */
1228ed5c 286 yppushresp_xfr
6259ec0d
UD
287 YPPUSHPROC_XFRRESP(void) = 1;
288#else
289 void
290 YPPUSHPROC_XFRRESP(yppushresp_xfr) = 1;
291#endif
292 } = 1;
293} = 0x40000000; /* transient: could be anything up to 0x5fffffff */
294
295/*
296 * YP binding protocol
297 */
298program YPBINDPROG {
299 version YPBINDVERS {
300 void
301 YPBINDPROC_NULL(void) = 0;
1228ed5c 302
6259ec0d
UD
303 ypbind_resp
304 YPBINDPROC_DOMAIN(domainname) = 1;
305
306 void
307 YPBINDPROC_SETDOM(ypbind_setdom) = 2;
308 } = 2;
309} = 100007;
This page took 0.062137 seconds and 5 git commands to generate.