Update.
[glibc.git] / nis / rpcsvc / nis.h
blobc0d25325c1dda73d1bd1fd5119098390d83a565a
1 /*
2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3 * unrestricted use provided that this legend is included on all tape
4 * media and as a part of the software program in whole or part. Users
5 * may copy or modify Sun RPC without charge, but are not authorized
6 * to license or distribute it to anyone else except as part of a product or
7 * program developed by the user or with the express written consent of
8 * Sun Microsystems, Inc.
10 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
11 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
14 * Sun RPC is provided with no support and without any obligation on the
15 * part of Sun Microsystems, Inc. to assist in its use, correction,
16 * modification or enhancement.
18 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
19 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
20 * OR ANY PART THEREOF.
22 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
23 * or profits or other special, indirect and consequential damages, even if
24 * Sun has been advised of the possibility of such damages.
26 * Sun Microsystems, Inc.
27 * 2550 Garcia Avenue
28 * Mountain View, California 94043
31 #ifndef _RPCSVC_NIS_H
32 #define _RPCSVC_NIS_H 1
34 #include <features.h>
35 #include <rpc/rpc.h>
36 #include <rpcsvc/nis_tags.h>
38 __BEGIN_DECLS
41 * nis.h
43 * This file is the main include file for NIS clients. It contains
44 * both the client library function defines and the various data
45 * structures used by the NIS service. It includes the file nis_tags.h
46 * which defines the tag values. This allows the tags to change without
47 * having to change the nis.x file.
49 * NOTE : THIS FILE IS NOT GENERATED WITH RPCGEN ! SO YOU HAVE TO
50 * ADD ALL THE CHANGES ON nis_*.x FILES HERE AGAIN !
52 * I have removed all the Solaris internal structs and variables,
53 * because they are not supported, Sun changed them between various
54 * releases and they shouldn't be used in user programs.
55 * <kukuk@vt.uni-paderborn.de>
59 #ifndef __nis_object_h
60 #define __nis_object_h
62 #define NIS_MAXSTRINGLEN 255
63 #define NIS_MAXNAMELEN 1024
64 #define NIS_MAXATTRNAME 32
65 #define NIS_MAXATTRVAL 2048
66 #define NIS_MAXCOLUMNS 64
67 #define NIS_MAXATTR 16
68 #define NIS_MAXPATH 1024
69 #define NIS_MAXREPLICAS 128
70 #define NIS_MAXLINKS 16
71 #define NIS_PK_NONE 0
72 #define NIS_PK_DH 1
73 #define NIS_PK_RSA 2
74 #define NIS_PK_KERB 3
76 struct nis_attr {
77 char *zattr_ndx;
78 struct {
79 u_int zattr_val_len;
80 char *zattr_val_val;
81 } zattr_val;
83 typedef struct nis_attr nis_attr;
84 extern bool_t xdr_nis_attr __P ((XDR *, nis_attr*));
86 typedef char *nis_name;
87 extern bool_t xdr_nis_name __P ((XDR *, nis_name*));
89 enum zotypes {
90 BOGUS_OBJ = 0,
91 NO_OBJ = 1,
92 DIRECTORY_OBJ = 2,
93 GROUP_OBJ = 3,
94 TABLE_OBJ = 4,
95 ENTRY_OBJ = 5,
96 LINK_OBJ = 6,
97 PRIVATE_OBJ = 7,
98 NIS_BOGUS_OBJ = 0,
99 NIS_NO_OBJ = 1,
100 NIS_DIRECTORY_OBJ = 2,
101 NIS_GROUP_OBJ = 3,
102 NIS_TABLE_OBJ = 4,
103 NIS_ENTRY_OBJ = 5,
104 NIS_LINK_OBJ = 6,
105 NIS_PRIVATE_OBJ = 7
107 typedef enum zotypes zotypes;
108 extern bool_t xdr_zotypes __P ((XDR *, zotypes*));
110 enum nstype {
111 UNKNOWN = 0,
112 NIS = 1,
113 SUNYP = 2,
114 IVY = 3,
115 DNS = 4,
116 X500 = 5,
117 DNANS = 6,
118 XCHS = 7,
119 CDS = 8,
121 typedef enum nstype nstype;
122 extern bool_t xdr_nstype __P ((XDR *, nstype*));
124 struct oar_mask {
125 u_long oa_rights;
126 zotypes oa_otype;
128 typedef struct oar_mask oar_mask;
129 extern bool_t xdr_oar_mask __P ((XDR *, oar_mask*));
131 struct endpoint {
132 char *uaddr;
133 char *family;
134 char *proto;
136 typedef struct endpoint endpoint;
137 extern bool_t xdr_endpoint __P ((XDR *, endpoint*));
139 struct nis_server {
140 nis_name name;
141 struct {
142 u_int ep_len;
143 endpoint *ep_val;
144 } ep;
145 u_long key_type;
146 netobj pkey;
148 typedef struct nis_server nis_server;
149 extern bool_t xdr_nis_server __P ((XDR *, nis_server*));
151 struct directory_obj {
152 nis_name do_name;
153 nstype do_type;
154 struct {
155 u_int do_servers_len;
156 nis_server *do_servers_val;
157 } do_servers;
158 u_long do_ttl;
159 struct {
160 u_int do_armask_len;
161 oar_mask *do_armask_val;
162 } do_armask;
164 typedef struct directory_obj directory_obj;
165 extern bool_t xdr_directory_obj __P ((XDR *, directory_obj*));
167 #define EN_BINARY 1
168 #define EN_CRYPT 2
169 #define EN_XDR 4
170 #define EN_MODIFIED 8
171 #define EN_ASN1 64
173 struct entry_col {
174 u_long ec_flags;
175 struct {
176 u_int ec_value_len;
177 char *ec_value_val;
178 } ec_value;
180 typedef struct entry_col entry_col;
181 extern bool_t xdr_entry_col __P ((XDR *, entry_col*));
183 struct entry_obj {
184 char *en_type;
185 struct {
186 u_int en_cols_len;
187 entry_col *en_cols_val;
188 } en_cols;
190 typedef struct entry_obj entry_obj;
191 extern bool_t xdr_entry_obj __P ((XDR *, entry_obj*));
193 struct group_obj {
194 u_long gr_flags;
195 struct {
196 u_int gr_members_len;
197 nis_name *gr_members_val;
198 } gr_members;
200 typedef struct group_obj group_obj;
201 extern bool_t xdr_group_obj __P ((XDR *, group_obj*));
203 struct link_obj {
204 zotypes li_rtype;
205 struct {
206 u_int li_attrs_len;
207 nis_attr *li_attrs_val;
208 } li_attrs;
209 nis_name li_name;
211 typedef struct link_obj link_obj;
212 extern bool_t xdr_link_obj __P ((XDR *, link_obj*));
214 #define TA_BINARY 1
215 #define TA_CRYPT 2
216 #define TA_XDR 4
217 #define TA_SEARCHABLE 8
218 #define TA_CASE 16
219 #define TA_MODIFIED 32
220 #define TA_ASN1 64
222 struct table_col {
223 char *tc_name;
224 u_long tc_flags;
225 u_long tc_rights;
227 typedef struct table_col table_col;
228 extern bool_t xdr_table_col __P ((XDR *, table_col*));
230 struct table_obj {
231 char *ta_type;
232 int ta_maxcol;
233 u_char ta_sep;
234 struct {
235 u_int ta_cols_len;
236 table_col *ta_cols_val;
237 } ta_cols;
238 char *ta_path;
240 typedef struct table_obj table_obj;
241 extern bool_t xdr_table_obj __P ((XDR *, table_obj*));
243 struct objdata {
244 zotypes zo_type;
245 union {
246 struct directory_obj di_data;
247 struct group_obj gr_data;
248 struct table_obj ta_data;
249 struct entry_obj en_data;
250 struct link_obj li_data;
251 struct {
252 u_int po_data_len;
253 char *po_data_val;
254 } po_data;
255 } objdata_u;
257 typedef struct objdata objdata;
258 extern bool_t xdr_objdata __P ((XDR *, objdata*));
260 struct nis_oid {
261 u_long ctime;
262 u_long mtime;
264 typedef struct nis_oid nis_oid;
265 extern bool_t xdr_nis_oid __P ((XDR *, nis_oid*));
267 struct nis_object {
268 nis_oid zo_oid;
269 nis_name zo_name;
270 nis_name zo_owner;
271 nis_name zo_group;
272 nis_name zo_domain;
273 u_long zo_access;
274 u_long zo_ttl;
275 objdata zo_data;
277 typedef struct nis_object nis_object;
278 extern bool_t xdr_nis_object __P ((XDR *, nis_object*));
280 #endif /* if __nis_object_h */
282 enum nis_error {
283 NIS_SUCCESS = 0,
284 NIS_S_SUCCESS = 1,
285 NIS_NOTFOUND = 2,
286 NIS_S_NOTFOUND = 3,
287 NIS_CACHEEXPIRED = 4,
288 NIS_NAMEUNREACHABLE = 5,
289 NIS_UNKNOWNOBJ = 6,
290 NIS_TRYAGAIN = 7,
291 NIS_SYSTEMERROR = 8,
292 NIS_CHAINBROKEN = 9,
293 NIS_PERMISSION = 10,
294 NIS_NOTOWNER = 11,
295 NIS_NOT_ME = 12,
296 NIS_NOMEMORY = 13,
297 NIS_NAMEEXISTS = 14,
298 NIS_NOTMASTER = 15,
299 NIS_INVALIDOBJ = 16,
300 NIS_BADNAME = 17,
301 NIS_NOCALLBACK = 18,
302 NIS_CBRESULTS = 19,
303 NIS_NOSUCHNAME = 20,
304 NIS_NOTUNIQUE = 21,
305 NIS_IBMODERROR = 22,
306 NIS_NOSUCHTABLE = 23,
307 NIS_TYPEMISMATCH = 24,
308 NIS_LINKNAMEERROR = 25,
309 NIS_PARTIAL = 26,
310 NIS_TOOMANYATTRS = 27,
311 NIS_RPCERROR = 28,
312 NIS_BADATTRIBUTE = 29,
313 NIS_NOTSEARCHABLE = 30,
314 NIS_CBERROR = 31,
315 NIS_FOREIGNNS = 32,
316 NIS_BADOBJECT = 33,
317 NIS_NOTSAMEOBJ = 34,
318 NIS_MODFAIL = 35,
319 NIS_BADREQUEST = 36,
320 NIS_NOTEMPTY = 37,
321 NIS_COLDSTART_ERR = 38,
322 NIS_RESYNC = 39,
323 NIS_FAIL = 40,
324 NIS_UNAVAIL = 41,
325 NIS_RES2BIG = 42,
326 NIS_SRVAUTH = 43,
327 NIS_CLNTAUTH = 44,
328 NIS_NOFILESPACE = 45,
329 NIS_NOPROC = 46,
330 NIS_DUMPLATER = 47,
332 typedef enum nis_error nis_error;
333 extern bool_t xdr_nis_error __P ((XDR *, nis_error*));
335 struct nis_result {
336 nis_error status;
337 struct {
338 u_int objects_len;
339 nis_object *objects_val;
340 } objects;
341 netobj cookie;
342 u_long zticks;
343 u_long dticks;
344 u_long aticks;
345 u_long cticks;
347 typedef struct nis_result nis_result;
348 extern bool_t xdr_nis_result __P ((XDR *, nis_result*));
350 struct ns_request {
351 nis_name ns_name;
352 struct {
353 u_int ns_object_len;
354 nis_object *ns_object_val;
355 } ns_object;
357 typedef struct ns_request ns_request;
358 extern bool_t xdr_ns_request __P ((XDR *, ns_request*));
360 struct ib_request {
361 nis_name ibr_name;
362 struct {
363 u_int ibr_srch_len;
364 nis_attr *ibr_srch_val;
365 } ibr_srch;
366 u_long ibr_flags;
367 struct {
368 u_int ibr_obj_len;
369 nis_object *ibr_obj_val;
370 } ibr_obj;
371 struct {
372 u_int ibr_cbhost_len;
373 nis_server *ibr_cbhost_val;
374 } ibr_cbhost;
375 u_long ibr_bufsize;
376 netobj ibr_cookie;
378 typedef struct ib_request ib_request;
379 extern bool_t xdr_ib_request __P ((XDR *, ib_request*));
381 struct ping_args {
382 nis_name dir;
383 u_long stamp;
385 typedef struct ping_args ping_args;
386 extern bool_t xdr_ping_args __P ((XDR *, ping_args*));
388 enum log_entry_t {
389 LOG_NOP = 0,
390 ADD_NAME = 1,
391 REM_NAME = 2,
392 MOD_NAME_OLD = 3,
393 MOD_NAME_NEW = 4,
394 ADD_IBASE = 5,
395 REM_IBASE = 6,
396 MOD_IBASE = 7,
397 UPD_STAMP = 8,
399 typedef enum log_entry_t log_entry_t;
400 extern bool_t xdr_log_entry_t __P ((XDR *, log_entry_t*));
402 struct log_entry {
403 u_long le_time;
404 log_entry_t le_type;
405 nis_name le_princp;
406 nis_name le_name;
407 struct {
408 u_int le_attrs_len;
409 nis_attr *le_attrs_val;
410 } le_attrs;
411 nis_object le_object;
413 typedef struct log_entry log_entry;
414 extern bool_t xdr_log_entry __P ((XDR *, log_entry*));
416 struct log_result {
417 nis_error lr_status;
418 netobj lr_cookie;
419 struct {
420 u_int lr_entries_len;
421 log_entry *lr_entries_val;
422 } lr_entries;
424 typedef struct log_result log_result;
425 extern bool_t xdr_log_result __P ((XDR *, log_result*));
427 struct cp_result {
428 nis_error cp_status;
429 u_long cp_zticks;
430 u_long cp_dticks;
432 typedef struct cp_result cp_result;
433 extern bool_t xdr_cp_result __P ((XDR *, cp_result*));
435 struct nis_tag {
436 u_long tag_type;
437 char *tag_val;
439 typedef struct nis_tag nis_tag;
440 extern bool_t xdr_nis_tag __P ((XDR *, nis_tag*));
442 struct nis_taglist {
443 struct {
444 u_int tags_len;
445 nis_tag *tags_val;
446 } tags;
448 typedef struct nis_taglist nis_taglist;
449 extern bool_t xdr_nis_taglist __P ((XDR *, nis_taglist*));
451 struct dump_args {
452 nis_name da_dir;
453 u_long da_time;
454 struct {
455 u_int da_cbhost_len;
456 nis_server *da_cbhost_val;
457 } da_cbhost;
459 typedef struct dump_args dump_args;
460 extern bool_t xdr_dump_args __P ((XDR *, dump_args*));
462 struct fd_args {
463 nis_name dir_name;
464 nis_name requester;
466 typedef struct fd_args fd_args;
467 extern bool_t xdr_fd_args __P ((XDR *, fd_args*));
469 struct fd_result {
470 nis_error status;
471 nis_name source;
472 struct {
473 u_int dir_data_len;
474 char *dir_data_val;
475 } dir_data;
476 struct {
477 u_int signature_len;
478 char *signature_val;
479 } signature;
481 typedef struct fd_result fd_result;
482 extern bool_t xdr_fd_result __P ((XDR *, fd_result*));
484 /* Generic client creating flags */
485 #define ZMH_VC 1
486 #define ZMH_DG 2
487 #define ZMH_AUTH 4
489 /* Testing Access rights for objects */
491 #define NIS_READ_ACC 1
492 #define NIS_MODIFY_ACC 2
493 #define NIS_CREATE_ACC 4
494 #define NIS_DESTROY_ACC 8
495 /* Test macros. a == access rights, m == desired rights. */
496 #define NIS_WORLD(a, m) (((a) & (m)) != 0)
497 #define NIS_GROUP(a, m) (((a) & ((m) << 8)) != 0)
498 #define NIS_OWNER(a, m) (((a) & ((m) << 16)) != 0)
499 #define NIS_NOBODY(a, m) (((a) & ((m) << 24)) != 0)
501 * EOL Alert - The following non-prefixed test macros are
502 * here for backward compatability, and will be not be present
503 * in future releases - use the NIS_*() macros above.
505 #define WORLD(a, m) (((a) & (m)) != 0)
506 #define GROUP(a, m) (((a) & ((m) << 8)) != 0)
507 #define OWNER(a, m) (((a) & ((m) << 16)) != 0)
508 #define NOBODY(a, m) (((a) & ((m) << 24)) != 0)
510 #define OATYPE(d, n) (((d)->do_armask.do_armask_val+n)->oa_otype)
511 #define OARIGHTS(d, n) (((d)->do_armask.do_armask_val+n)->oa_rights)
512 #define WORLD_DEFAULT (NIS_READ_ACC)
513 #define GROUP_DEFAULT (NIS_READ_ACC << 8)
514 #define OWNER_DEFAULT ((NIS_READ_ACC + NIS_MODIFY_ACC + NIS_CREATE_ACC +\
515 NIS_DESTROY_ACC) << 16)
516 #define DEFAULT_RIGHTS (WORLD_DEFAULT | GROUP_DEFAULT | OWNER_DEFAULT)
518 /* Result manipulation defines ... */
519 #define NIS_RES_NUMOBJ(x) ((x)->objects.objects_len)
520 #define NIS_RES_OBJECT(x) ((x)->objects.objects_val)
521 #define NIS_RES_COOKIE(x) ((x)->cookie)
522 #define NIS_RES_STATUS(x) ((x)->status)
524 /* These defines make getting at the variant part of the object easier. */
525 #define TA_data zo_data.objdata_u.ta_data
526 #define EN_data zo_data.objdata_u.en_data
527 #define DI_data zo_data.objdata_u.di_data
528 #define LI_data zo_data.objdata_u.li_data
529 #define GR_data zo_data.objdata_u.gr_data
531 #define __type_of(o) ((o)->zo_data.zo_type)
533 /* Declarations for the internal subroutines in nislib.c */
534 enum name_pos {SAME_NAME, HIGHER_NAME, LOWER_NAME, NOT_SEQUENTIAL, BAD_NAME};
535 typedef enum name_pos name_pos;
538 * Defines for getting at column data in entry objects. Because RPCGEN
539 * generates some rather wordy structures, we create some defines that
540 * collapse the needed keystrokes to access a particular value using
541 * these definitions they take an nis_object *, and an int and return
542 * a u_char * for Value, and an int for length.
544 #define ENTRY_VAL(obj, col) (obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_val
545 #define ENTRY_LEN(obj, col) (obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len
548 /* Prototypes, and extern declarations for the NIS library functions. */
549 #include <rpcsvc/nislib.h>
550 #endif
553 * nis_3.h
555 * This file contains definitions that are only of interest to the actual
556 * service daemon and client stubs. Normal users of NIS will not include
557 * this file.
559 * NOTE : This include file is automatically created by a combination
560 * of rpcgen and sed. DO NOT EDIT IT, change the nis.x file instead
561 * and then remake this file.
563 #ifndef __nis_3_h
564 #define __nis_3_h
566 #define NIS_PROG ((u_long)100300)
567 #define NIS_VERSION ((u_long)3)
569 #define NIS_LOOKUP ((u_long)1)
570 extern nis_result * nis_lookup_3 __P ((ns_request *, CLIENT *));
571 extern nis_result * nis_lookup_3_svc __P ((ns_request *, struct svc_req *));
572 #define NIS_ADD ((u_long)2)
573 extern nis_result * nis_add_3 __P ((ns_request *, CLIENT *));
574 extern nis_result * nis_add_3_svc __P ((ns_request *, struct svc_req *));
575 #define NIS_MODIFY ((u_long)3)
576 extern nis_result * nis_modify_3 __P ((ns_request *, CLIENT *));
577 extern nis_result * nis_modify_3_svc __P ((ns_request *, struct svc_req *));
578 #define NIS_REMOVE ((u_long)4)
579 extern nis_result * nis_remove_3 __P ((ns_request *, CLIENT *));
580 extern nis_result * nis_remove_3_svc __P ((ns_request *, struct svc_req *));
581 #define NIS_IBLIST ((u_long)5)
582 extern nis_result * nis_iblist_3 __P ((ib_request *, CLIENT *));
583 extern nis_result * nis_iblist_3_svc __P ((ib_request *, struct svc_req *));
584 #define NIS_IBADD ((u_long)6)
585 extern nis_result * nis_ibadd_3 __P ((ib_request *, CLIENT *));
586 extern nis_result * nis_ibadd_3_svc __P ((ib_request *, struct svc_req *));
587 #define NIS_IBMODIFY ((u_long)7)
588 extern nis_result * nis_ibmodify_3 __P ((ib_request *, CLIENT *));
589 extern nis_result * nis_ibmodify_3_svc __P ((ib_request *, struct svc_req *));
590 #define NIS_IBREMOVE ((u_long)8)
591 extern nis_result * nis_ibremove_3 __P ((ib_request *, CLIENT *));
592 extern nis_result * nis_ibremove_3_svc __P ((ib_request *, struct svc_req *));
593 #define NIS_IBFIRST ((u_long)9)
594 extern nis_result * nis_ibfirst_3 __P ((ib_request *, CLIENT *));
595 extern nis_result * nis_ibfirst_3_svc __P ((ib_request *, struct svc_req *));
596 #define NIS_IBNEXT ((u_long)10)
597 extern nis_result * nis_ibnext_3 __P ((ib_request *, CLIENT *));
598 extern nis_result * nis_ibnext_3_svc __P ((ib_request *, struct svc_req *));
599 #define NIS_FINDDIRECTORY ((u_long)12)
600 extern fd_result * nis_finddirectory_3 __P ((fd_args *, CLIENT *));
601 extern fd_result * nis_finddirectory_3_svc __P ((fd_args *,
602 struct svc_req *));
603 #define NIS_STATUS ((u_long)14)
604 extern nis_taglist * nis_status_3 __P ((nis_taglist *, CLIENT *));
605 extern nis_taglist * nis_status_3_svc __P ((nis_taglist *, struct svc_req *));
606 #define NIS_DUMPLOG ((u_long)15)
607 extern log_result * nis_dumplog_3 __P ((dump_args *, CLIENT *));
608 extern log_result * nis_dumplog_3_svc __P ((dump_args *, struct svc_req *));
609 #define NIS_DUMP ((u_long)16)
610 extern log_result * nis_dump_3 __P ((dump_args *, CLIENT *));
611 extern log_result * nis_dump_3_svc __P ((dump_args *, struct svc_req *));
612 #define NIS_CALLBACK ((u_long)17)
613 extern bool_t * nis_callback_3 __P ((netobj *, CLIENT *));
614 extern bool_t * nis_callback_3_svc __P ((netobj *, struct svc_req *));
615 #define NIS_CPTIME ((u_long)18)
616 extern u_long * nis_cptime_3 __P ((nis_name *, CLIENT *));
617 extern u_long * nis_cptime_3_svc __P ((nis_name *, struct svc_req *));
618 #define NIS_CHECKPOINT ((u_long)19)
619 extern cp_result * nis_checkpoint_3 __P ((nis_name *, CLIENT *));
620 extern cp_result * nis_checkpoint_3_svc __P ((nis_name *, struct svc_req *));
621 #define NIS_PING ((u_long)20)
622 extern void * nis_ping_3 __P ((ping_args *, CLIENT *));
623 extern void * nis_ping_3_svc __P ((ping_args *, struct svc_req *));
624 #define NIS_SERVSTATE ((u_long)21)
625 extern nis_taglist * nis_servstate_3 __P ((nis_taglist *, CLIENT *));
626 extern nis_taglist * nis_servstate_3_svc __P ((nis_taglist *,
627 struct svc_req *));
628 #define NIS_MKDIR ((u_long)22)
629 extern nis_error * nis_mkdir_3 __P ((nis_name *, CLIENT *));
630 extern nis_error * nis_mkdir_3_svc __P ((nis_name *, struct svc_req *));
631 #define NIS_RMDIR ((u_long)23)
632 extern nis_error * nis_rmdir_3 __P ((nis_name *, CLIENT *));
633 extern nis_error * nis_rmdir_3_svc __P ((nis_name *, struct svc_req *));
634 #define NIS_UPDKEYS ((u_long)24)
635 extern nis_error * nis_updkeys_3 __P ((nis_name *, CLIENT *));
636 extern nis_error * nis_updkeys_3_svc __P ((nis_name *, struct svc_req *));
638 __END_DECLS
640 #endif /* !_NIS_H_RPCGEN */