yp_prot.h
001: 
002: 
003: 
004: 
005: 
006: 
007: #ifndef _RPCSVC_YP_PROT_H
008: #define _RPCSVC_YP_PROT_H
009: 
010: #include <features.h>
011: 
012: #include <rpc/rpc.h>
013: #include <rpcsvc/ypclnt.h>
014: 
015: __BEGIN_DECLS
016: 
017: 
018: 
019: 
020: 
021: 
022: 
023: 
024: 
025: 
026: 
027: 
028: 
029: 
030: 
031: 
032: 
033: 
034: 
035: 
036: 
037: 
038: 
039: 
040: 
041: 
042: 
043: 
044: 
045: 
046: 
047: 
048: 
049: 
050: 
051: 
052: 
053: 
054: 
055: 
056: 
057: 
058: 
059: 
060: 
061: 
062: 
063: #define YPPROG          100004
064: #define YPVERS          2
065: #define YPVERS_ORIG     1
066: #define YPMAXRECORD     1024
067: #define YPMAXDOMAIN     64 
068: #define YPMAXMAP        64
069: #define YPMAXPEER       64 
070: 
071: 
072: #define YPMSGSZ         1600
073: 
074: typedef struct {
075:   u_int keydat_len;
076:   char *keydat_val;
077: } keydat_t;
078: 
079: typedef struct {
080:   u_int valdat_len;
081:   char *valdat_val;
082: } valdat_t;
083: 
084: struct ypmap_parms {
085:   char *domain;                 
086:   char *map;                    
087:   unsigned int ordernum;        
088:   char *owner;                  
089: };
090: 
091: 
092: 
093: 
094: 
095: struct ypreq_key {
096:   const char *domain;
097:   const char *map;
098:   keydat_t keydat;
099: };
100: 
101: struct ypreq_nokey {
102:   char *domain;
103:   char *map;
104: };
105: 
106: struct ypreq_xfr {
107:   struct ypmap_parms map_parms;
108:   u_int transid;
109:   u_int proto;
110:   u_int port;
111: };
112: 
113: #define ypxfr_domain map_parms.domain
114: #define ypxfr_map map_parms.map
115: #define ypxfr_ordernum map_parms.ordernum
116: #define ypxfr_owner map_parms.owner
117: 
118: 
119: 
120: enum ypstat {
121:   YP_TRUE = 1,          
122: #define YP_TRUE YP_TRUE
123:   YP_NOMORE = 2,        
124: #define YP_NOMORE YP_NOMORE
125:   YP_FALSE = 0,         
126: #define YP_FALSE YP_FALSE
127:   YP_NOMAP = -1,        
128: #define YP_NOMAP YP_NOMAP
129:   YP_NODOM = -2,        
130: #define YP_NODOM YP_NODOM
131:   YP_NOKEY = -3,        
132: #define YP_NOKEY YP_NOKEY
133:   YP_BADOP = -4,        
134: #define YP_BADOP YP_BADOP
135:   YP_BADDB = -5,        
136: #define YP_BADDB YP_BADDB
137:   YP_YPERR = -6,        
138: #define YP_YPERR YP_YPERR
139:   YP_BADARGS = -7,      
140: #define YP_BADARGS YP_BADARGS
141:   YP_VERS = -8,         
142: 
143: #define YP_VERS YP_VERS
144: };
145: 
146: 
147: 
148: 
149: 
150: typedef enum ypstat ypstat;
151: 
152: struct ypresp_val {
153:   ypstat status;
154:   valdat_t valdat;
155: };
156: 
157: struct ypresp_key_val {
158:   ypstat status;
159: #ifdef STUPID_SUN_BUG
160:   
161: 
162: 
163: 
164: 
165:   keydat_t keydat;
166:   valdat_t valdat;
167: #else
168:   valdat_t valdat;
169:   keydat_t keydat;
170: #endif
171: };
172: 
173: struct ypresp_master {
174:   ypstat status;
175:   char *master;
176: };
177: 
178: struct ypresp_order {
179:   ypstat status;
180:   u_int ordernum;
181: };
182: 
183: struct ypmaplist {
184:   char *map;
185: #define ypml_name map
186:   struct ypmaplist *next;
187: #define ypml_next next
188: };
189: 
190: struct ypresp_maplist {
191:   ypstat status;
192:   struct ypmaplist *list;
193: };
194: 
195: 
196: 
197: 
198: 
199: 
200: 
201: #define YPPROC_NULL     0
202: #define YPPROC_DOMAIN   1
203: #define YPPROC_DOMAIN_NONACK 2
204: #define YPPROC_MATCH    3
205: #define YPPROC_FIRST    4
206: #define YPPROC_NEXT     5
207: #define YPPROC_XFR      6
208: #define YPPROC_CLEAR    7
209: #define YPPROC_ALL      8
210: #define YPPROC_MASTER   9
211: #define YPPROC_ORDER    10
212: #define YPPROC_MAPLIST  11
213: #define YPPROC_NEWXFR   12
214: 
215: 
216: 
217: 
218: 
219: 
220: 
221: 
222: 
223: 
224: 
225: 
226: 
227: 
228: 
229: 
230: 
231: 
232: #define YPBINDPROG              100007
233: #define YPBINDVERS              2
234: #define YPBINDVERS_ORIG         1
235: 
236: 
237: 
238: #define YPBINDPROC_NULL         0
239: #define YPBINDPROC_DOMAIN       1
240: #define YPBINDPROC_SETDOM       2
241: 
242: 
243: 
244: 
245: 
246: enum ypbind_resptype {YPBIND_SUCC_VAL = 1, YPBIND_FAIL_VAL = 2};
247: 
248: struct ypbind_binding {
249:   struct in_addr ypbind_binding_addr;           
250:   unsigned short int ypbind_binding_port;       
251: };
252: 
253: struct ypbind_resp {
254:   enum ypbind_resptype ypbind_status;
255:   union {
256:     u_int ypbind_error;
257:     struct ypbind_binding ypbind_bindinfo;
258:   } ypbind_respbody;
259: };
260: 
261: 
262: 
263: 
264: #define YPBIND_ERR_ERR 1                
265: #define YPBIND_ERR_NOSERV 2             
266: #define YPBIND_ERR_RESC 3               
267: 
268: 
269: 
270: 
271: struct ypbind_setdom {
272:   char *ypsetdom_domain;
273:   struct ypbind_binding ypsetdom_binding;
274:   u_int ypsetdom_vers;
275: };
276: #define ypsetdom_addr ypsetdom_binding.ypbind_binding_addr
277: #define ypsetdom_port ypsetdom_binding.ypbind_binding_port
278: 
279: 
280: 
281: 
282: 
283: 
284: 
285: #define YPPUSHVERS              1
286: #define YPPUSHVERS_ORIG         1
287: 
288: 
289: 
290: #define YPPUSHPROC_NULL         0
291: #define YPPUSHPROC_XFRRESP      1
292: 
293: 
294: 
295: enum yppush_status {
296:   YPPUSH_SUCC = 1,              
297: #define YPPUSH_SUCC     YPPUSH_SUCC
298:   YPPUSH_AGE = 2,               
299: #define YPPUSH_AGE      YPPUSH_AGE
300:   YPPUSH_NOMAP = -1,            
301: #define YPPUSH_NOMAP    YPPUSH_NOMAP
302:   YPPUSH_NODOM = -2,            
303: #define YPPUSH_NODOM    YPPUSH_NODOM
304:   YPPUSH_RSRC = -3,             
305: #define YPPUSH_RSRC     YPPUSH_RSRC
306:   YPPUSH_RPC = -4,              
307: #define YPPUSH_RPC      YPPUSH_RPC
308:   YPPUSH_MADDR = -5,            
309: #define YPPUSH_MADDR    YPPUSH_MADDR
310:   YPPUSH_YPERR = -6,            
311: #define YPPUSH_YPERR    YPPUSH_YPERR
312:   YPPUSH_BADARGS = -7,          
313: #define YPPUSH_BADARGS  YPPUSH_BADARGS
314:   YPPUSH_DBM = -8,              
315: #define YPPUSH_DBM      YPPUSH_DBM
316:   YPPUSH_FILE = -9,             
317: #define YPPUSH_FILE     YPPUSH_FILE
318:   YPPUSH_SKEW = -10,            
319: #define YPPUSH_SKEW     YPPUSH_SKEW
320:   YPPUSH_CLEAR = -11,           
321: #define YPPUSH_CLEAR    YPPUSH_CLEAR
322:   YPPUSH_FORCE = -12,           
323: #define YPPUSH_FORCE    YPPUSH_FORCE
324:   YPPUSH_XFRERR = -13,          
325: #define YPPUSH_XFRERR   YPPUSH_XFRERR
326:   YPPUSH_REFUSED = -14,         
327: #define YPPUSH_REFUSED  YPPUSH_REFUSED
328:   YPPUSH_NOALIAS = -15          
329: #define YPPUSH_NOALIAS  YPPUSH_NOALIAS
330: };
331: typedef enum yppush_status yppush_status;
332: 
333: struct yppushresp_xfr {
334:   u_int transid;
335:   yppush_status status;
336: };
337: 
338: struct ypresp_all {
339:   bool_t more;
340:   union {
341:     struct ypresp_key_val val;
342:   } ypresp_all_u;
343: };
344: 
345: extern bool_t xdr_ypreq_key (XDR *__xdrs, struct ypreq_key * __objp);
346: extern bool_t xdr_ypreq_nokey (XDR *__xdrs, struct ypreq_nokey * __objp);
347: extern bool_t xdr_ypreq_xfr (XDR *__xdrs, struct ypreq_xfr * __objp);
348: extern bool_t xdr_ypresp_val (XDR *__xdrs, struct ypresp_val * __objp);
349: extern bool_t xdr_ypresp_key_val (XDR *__xdrs, struct ypresp_key_val * __objp);
350: extern bool_t xdr_ypbind_resp (XDR *__xdrs, struct ypbind_resp * __objp);
351: extern bool_t xdr_ypbind_setdom (XDR *__xdrs, struct ypbind_setdom * __objp);
352: extern bool_t xdr_ypmap_parms (XDR *__xdrs, struct ypmap_parms * __objp);
353: extern bool_t xdr_yppushresp_xfr (XDR *__xdrs, struct yppushresp_xfr * __objp);
354: extern bool_t xdr_ypresp_order (XDR *__xdrs, struct ypresp_order  * __objp);
355: extern bool_t xdr_ypresp_master (XDR *__xdrs, struct ypresp_master * __objp);
356: extern bool_t xdr_ypall (XDR *__xdrs, struct ypall_callback * __objp);
357: extern bool_t xdr_ypresp_maplist (XDR *__xdrs, struct ypresp_maplist * __objp);
358: extern bool_t xdr_ypbind_binding (XDR *__xdrs, struct ypbind_binding * __objp);
359: extern bool_t xdr_ypbind_resptype (XDR *__xdrs, enum ypbind_resptype * __objp);
360: extern bool_t xdr_ypstat (XDR *__xdrs, enum ypbind_resptype * __objp);
361: extern bool_t xdr_ypresp_all (XDR *__xdrs, struct ypresp_all  * __objp);
362: extern bool_t xdr_domainname (XDR *__xdrs, char ** __objp);
363: 
364: __END_DECLS
365: 
366: #endif  
367: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved