| 1 | /* |
| 2 | * Please do not edit this file. |
| 3 | * It was generated using rpcgen. |
| 4 | */ |
| 5 | |
| 6 | #ifndef _NIS_H_RPCGEN |
| 7 | #define	_NIS_H_RPCGEN |
| 8 | |
| 9 | #include <rpc/rpc.h> |
| 10 | |
| 11 | #ifdef __cplusplus |
| 12 | extern "C" { |
| 13 | #endif |
| 14 | |
| 15 | /*- |
| 16 | * Copyright (c) 2010, Oracle America, Inc. |
| 17 | * |
| 18 | * Redistribution and use in source and binary forms, with or without |
| 19 | * modification, are permitted provided that the following conditions are |
| 20 | * met: |
| 21 | * |
| 22 | * * Redistributions of source code must retain the above copyright |
| 23 | * notice, this list of conditions and the following disclaimer. |
| 24 | * * Redistributions in binary form must reproduce the above |
| 25 | * copyright notice, this list of conditions and the following |
| 26 | * disclaimer in the documentation and/or other materials |
| 27 | * provided with the distribution. |
| 28 | * * Neither the name of the "Oracle America, Inc." nor the names of its |
| 29 | * contributors may be used to endorse or promote products derived |
| 30 | * from this software without specific prior written permission. |
| 31 | * |
| 32 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 33 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 34 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| 35 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| 36 | * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| 37 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| 38 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| 39 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 40 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| 41 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 42 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 43 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 44 | */ |
| 45 | /* |
| 46 | *	nis.h |
| 47 | * |
| 48 | *	This file is the main include file for NIS clients. It contains |
| 49 | *	both the client library function defines and the various data |
| 50 | * 	structures used by the NIS service. It includes the file nis_tags.h |
| 51 | *	which defines the tag values. This allows the tags to change without |
| 52 | *	having to change the nis.x file. |
| 53 | * 	 |
| 54 | *	NOTE : DO NOT EDIT THIS FILE! It is automatically generated when |
| 55 | *	 rpcgen is run on the nis.x file. Note that there is a |
| 56 | *	 simple sed script to remove some unneeded lines. (See the |
| 57 | *	 Makefile target nis.h) |
| 58 | * |
| 59 | */ |
| 60 | #include <rpcsvc/nis_tags.h> |
| 61 | #include <rpc/xdr.h> |
| 62 | /*- |
| 63 | * Copyright (c) 2010, Oracle America, Inc. |
| 64 | * |
| 65 | * Redistribution and use in source and binary forms, with or without |
| 66 | * modification, are permitted provided that the following conditions are |
| 67 | * met: |
| 68 | * |
| 69 | * * Redistributions of source code must retain the above copyright |
| 70 | * notice, this list of conditions and the following disclaimer. |
| 71 | * * Redistributions in binary form must reproduce the above |
| 72 | * copyright notice, this list of conditions and the following |
| 73 | * disclaimer in the documentation and/or other materials |
| 74 | * provided with the distribution. |
| 75 | * * Neither the name of the "Oracle America, Inc." nor the names of its |
| 76 | * contributors may be used to endorse or promote products derived |
| 77 | * from this software without specific prior written permission. |
| 78 | * |
| 79 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 80 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 81 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| 82 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| 83 | * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| 84 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| 85 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| 86 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 87 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| 88 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 89 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 90 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 91 | */ |
| 92 | |
| 93 | #ifndef __nis_object_h |
| 94 | #define __nis_object_h |
| 95 | |
| 96 | #define	NIS_MAXSTRINGLEN 255 |
| 97 | #define	NIS_MAXNAMELEN 1024 |
| 98 | #define	NIS_MAXATTRNAME 32 |
| 99 | #define	NIS_MAXATTRVAL 2048 |
| 100 | #define	NIS_MAXCOLUMNS 64 |
| 101 | #define	NIS_MAXATTR 16 |
| 102 | #define	NIS_MAXPATH 1024 |
| 103 | #define	NIS_MAXREPLICAS 128 |
| 104 | #define	NIS_MAXLINKS 16 |
| 105 | #define	NIS_PK_NONE 0 |
| 106 | #define	NIS_PK_DH 1 |
| 107 | #define	NIS_PK_RSA 2 |
| 108 | #define	NIS_PK_KERB 3 |
| 109 | |
| 110 | struct nis_attr { |
| 111 | 	char *zattr_ndx; |
| 112 | 	struct { |
| 113 | 		u_int zattr_val_len; |
| 114 | 		char *zattr_val_val; |
| 115 | 	} zattr_val; |
| 116 | }; |
| 117 | typedef struct nis_attr nis_attr; |
| 118 | |
| 119 | typedef char *nis_name; |
| 120 | |
| 121 | enum zotypes { |
| 122 | 	BOGUS_OBJ = 0, |
| 123 | 	NO_OBJ = 1, |
| 124 | 	DIRECTORY_OBJ = 2, |
| 125 | 	GROUP_OBJ = 3, |
| 126 | 	TABLE_OBJ = 4, |
| 127 | 	ENTRY_OBJ = 5, |
| 128 | 	LINK_OBJ = 6, |
| 129 | 	PRIVATE_OBJ = 7 |
| 130 | }; |
| 131 | typedef enum zotypes zotypes; |
| 132 | |
| 133 | enum nstype { |
| 134 | 	UNKNOWN = 0, |
| 135 | 	NIS = 1, |
| 136 | 	SUNYP = 2, |
| 137 | 	IVY = 3, |
| 138 | 	DNS = 4, |
| 139 | 	X500 = 5, |
| 140 | 	DNANS = 6, |
| 141 | 	XCHS = 7, |
| 142 | 	CDS = 8 |
| 143 | }; |
| 144 | typedef enum nstype nstype; |
| 145 | |
| 146 | struct oar_mask { |
| 147 | 	u_long oa_rights; |
| 148 | 	zotypes oa_otype; |
| 149 | }; |
| 150 | typedef struct oar_mask oar_mask; |
| 151 | |
| 152 | struct endpoint { |
| 153 | 	char *uaddr; |
| 154 | 	char *family; |
| 155 | 	char *proto; |
| 156 | }; |
| 157 | typedef struct endpoint endpoint; |
| 158 | |
| 159 | struct nis_server { |
| 160 | 	nis_name name; |
| 161 | 	struct { |
| 162 | 		u_int ep_len; |
| 163 | 		endpoint *ep_val; |
| 164 | 	} ep; |
| 165 | 	u_long key_type; |
| 166 | 	netobj pkey; |
| 167 | }; |
| 168 | typedef struct nis_server nis_server; |
| 169 | |
| 170 | struct directory_obj { |
| 171 | 	nis_name do_name; |
| 172 | 	nstype do_type; |
| 173 | 	struct { |
| 174 | 		u_int do_servers_len; |
| 175 | 		nis_server *do_servers_val; |
| 176 | 	} do_servers; |
| 177 | 	u_long do_ttl; |
| 178 | 	struct { |
| 179 | 		u_int do_armask_len; |
| 180 | 		oar_mask *do_armask_val; |
| 181 | 	} do_armask; |
| 182 | }; |
| 183 | typedef struct directory_obj directory_obj; |
| 184 | #define	EN_BINARY 1 |
| 185 | #define	EN_CRYPT 2 |
| 186 | #define	EN_XDR 4 |
| 187 | #define	EN_MODIFIED 8 |
| 188 | #define	EN_ASN1 64 |
| 189 | |
| 190 | struct entry_col { |
| 191 | 	u_long ec_flags; |
| 192 | 	struct { |
| 193 | 		u_int ec_value_len; |
| 194 | 		char *ec_value_val; |
| 195 | 	} ec_value; |
| 196 | }; |
| 197 | typedef struct entry_col entry_col; |
| 198 | |
| 199 | struct entry_obj { |
| 200 | 	char *en_type; |
| 201 | 	struct { |
| 202 | 		u_int en_cols_len; |
| 203 | 		entry_col *en_cols_val; |
| 204 | 	} en_cols; |
| 205 | }; |
| 206 | typedef struct entry_obj entry_obj; |
| 207 | |
| 208 | struct group_obj { |
| 209 | 	u_long gr_flags; |
| 210 | 	struct { |
| 211 | 		u_int gr_members_len; |
| 212 | 		nis_name *gr_members_val; |
| 213 | 	} gr_members; |
| 214 | }; |
| 215 | typedef struct group_obj group_obj; |
| 216 | |
| 217 | struct link_obj { |
| 218 | 	zotypes li_rtype; |
| 219 | 	struct { |
| 220 | 		u_int li_attrs_len; |
| 221 | 		nis_attr *li_attrs_val; |
| 222 | 	} li_attrs; |
| 223 | 	nis_name li_name; |
| 224 | }; |
| 225 | typedef struct link_obj link_obj; |
| 226 | #define	TA_BINARY 1 |
| 227 | #define	TA_CRYPT 2 |
| 228 | #define	TA_XDR 4 |
| 229 | #define	TA_SEARCHABLE 8 |
| 230 | #define	TA_CASE 16 |
| 231 | #define	TA_MODIFIED 32 |
| 232 | #define	TA_ASN1 64 |
| 233 | |
| 234 | struct table_col { |
| 235 | 	char *tc_name; |
| 236 | 	u_long tc_flags; |
| 237 | 	u_long tc_rights; |
| 238 | }; |
| 239 | typedef struct table_col table_col; |
| 240 | |
| 241 | struct table_obj { |
| 242 | 	char *ta_type; |
| 243 | 	int ta_maxcol; |
| 244 | 	u_char ta_sep; |
| 245 | 	struct { |
| 246 | 		u_int ta_cols_len; |
| 247 | 		table_col *ta_cols_val; |
| 248 | 	} ta_cols; |
| 249 | 	char *ta_path; |
| 250 | }; |
| 251 | typedef struct table_obj table_obj; |
| 252 | |
| 253 | struct objdata { |
| 254 | 	zotypes zo_type; |
| 255 | 	union { |
| 256 | 		struct directory_obj di_data; |
| 257 | 		struct group_obj gr_data; |
| 258 | 		struct table_obj ta_data; |
| 259 | 		struct entry_obj en_data; |
| 260 | 		struct link_obj li_data; |
| 261 | 		struct { |
| 262 | 			u_int po_data_len; |
| 263 | 			char *po_data_val; |
| 264 | 		} po_data; |
| 265 | 	} objdata_u; |
| 266 | }; |
| 267 | typedef struct objdata objdata; |
| 268 | |
| 269 | struct nis_oid { |
| 270 | 	u_long ctime; |
| 271 | 	u_long mtime; |
| 272 | }; |
| 273 | typedef struct nis_oid nis_oid; |
| 274 | |
| 275 | struct nis_object { |
| 276 | 	nis_oid zo_oid; |
| 277 | 	nis_name zo_name; |
| 278 | 	nis_name zo_owner; |
| 279 | 	nis_name zo_group; |
| 280 | 	nis_name zo_domain; |
| 281 | 	u_long zo_access; |
| 282 | 	u_long zo_ttl; |
| 283 | 	objdata zo_data; |
| 284 | }; |
| 285 | typedef struct nis_object nis_object; |
| 286 | |
| 287 | #endif /* if __nis_object_h */ |
| 288 | |
| 289 | |
| 290 | enum nis_error { |
| 291 | 	NIS_SUCCESS = 0, |
| 292 | 	NIS_S_SUCCESS = 1, |
| 293 | 	NIS_NOTFOUND = 2, |
| 294 | 	NIS_S_NOTFOUND = 3, |
| 295 | 	NIS_CACHEEXPIRED = 4, |
| 296 | 	NIS_NAMEUNREACHABLE = 5, |
| 297 | 	NIS_UNKNOWNOBJ = 6, |
| 298 | 	NIS_TRYAGAIN = 7, |
| 299 | 	NIS_SYSTEMERROR = 8, |
| 300 | 	NIS_CHAINBROKEN = 9, |
| 301 | 	NIS_PERMISSION = 10, |
| 302 | 	NIS_NOTOWNER = 11, |
| 303 | 	NIS_NOT_ME = 12, |
| 304 | 	NIS_NOMEMORY = 13, |
| 305 | 	NIS_NAMEEXISTS = 14, |
| 306 | 	NIS_NOTMASTER = 15, |
| 307 | 	NIS_INVALIDOBJ = 16, |
| 308 | 	NIS_BADNAME = 17, |
| 309 | 	NIS_NOCALLBACK = 18, |
| 310 | 	NIS_CBRESULTS = 19, |
| 311 | 	NIS_NOSUCHNAME = 20, |
| 312 | 	NIS_NOTUNIQUE = 21, |
| 313 | 	NIS_IBMODERROR = 22, |
| 314 | 	NIS_NOSUCHTABLE = 23, |
| 315 | 	NIS_TYPEMISMATCH = 24, |
| 316 | 	NIS_LINKNAMEERROR = 25, |
| 317 | 	NIS_PARTIAL = 26, |
| 318 | 	NIS_TOOMANYATTRS = 27, |
| 319 | 	NIS_RPCERROR = 28, |
| 320 | 	NIS_BADATTRIBUTE = 29, |
| 321 | 	NIS_NOTSEARCHABLE = 30, |
| 322 | 	NIS_CBERROR = 31, |
| 323 | 	NIS_FOREIGNNS = 32, |
| 324 | 	NIS_BADOBJECT = 33, |
| 325 | 	NIS_NOTSAMEOBJ = 34, |
| 326 | 	NIS_MODFAIL = 35, |
| 327 | 	NIS_BADREQUEST = 36, |
| 328 | 	NIS_NOTEMPTY = 37, |
| 329 | 	NIS_COLDSTART_ERR = 38, |
| 330 | 	NIS_RESYNC = 39, |
| 331 | 	NIS_FAIL = 40, |
| 332 | 	NIS_UNAVAIL = 41, |
| 333 | 	NIS_RES2BIG = 42, |
| 334 | 	NIS_SRVAUTH = 43, |
| 335 | 	NIS_CLNTAUTH = 44, |
| 336 | 	NIS_NOFILESPACE = 45, |
| 337 | 	NIS_NOPROC = 46, |
| 338 | 	NIS_DUMPLATER = 47 |
| 339 | }; |
| 340 | typedef enum nis_error nis_error; |
| 341 | |
| 342 | struct nis_result { |
| 343 | 	nis_error status; |
| 344 | 	struct { |
| 345 | 		u_int objects_len; |
| 346 | 		nis_object *objects_val; |
| 347 | 	} objects; |
| 348 | 	netobj cookie; |
| 349 | 	u_long zticks; |
| 350 | 	u_long dticks; |
| 351 | 	u_long aticks; |
| 352 | 	u_long cticks; |
| 353 | }; |
| 354 | typedef struct nis_result nis_result; |
| 355 | |
| 356 | struct ns_request { |
| 357 | 	nis_name ns_name; |
| 358 | 	struct { |
| 359 | 		u_int ns_object_len; |
| 360 | 		nis_object *ns_object_val; |
| 361 | 	} ns_object; |
| 362 | }; |
| 363 | typedef struct ns_request ns_request; |
| 364 | |
| 365 | struct ib_request { |
| 366 | 	nis_name ibr_name; |
| 367 | 	struct { |
| 368 | 		u_int ibr_srch_len; |
| 369 | 		nis_attr *ibr_srch_val; |
| 370 | 	} ibr_srch; |
| 371 | 	u_long ibr_flags; |
| 372 | 	struct { |
| 373 | 		u_int ibr_obj_len; |
| 374 | 		nis_object *ibr_obj_val; |
| 375 | 	} ibr_obj; |
| 376 | 	struct { |
| 377 | 		u_int ibr_cbhost_len; |
| 378 | 		nis_server *ibr_cbhost_val; |
| 379 | 	} ibr_cbhost; |
| 380 | 	u_long ibr_bufsize; |
| 381 | 	netobj ibr_cookie; |
| 382 | }; |
| 383 | typedef struct ib_request ib_request; |
| 384 | |
| 385 | struct ping_args { |
| 386 | 	nis_name dir; |
| 387 | 	u_long stamp; |
| 388 | }; |
| 389 | typedef struct ping_args ping_args; |
| 390 | |
| 391 | enum log_entry_t { |
| 392 | 	LOG_NOP = 0, |
| 393 | 	ADD_NAME = 1, |
| 394 | 	REM_NAME = 2, |
| 395 | 	MOD_NAME_OLD = 3, |
| 396 | 	MOD_NAME_NEW = 4, |
| 397 | 	ADD_IBASE = 5, |
| 398 | 	REM_IBASE = 6, |
| 399 | 	MOD_IBASE = 7, |
| 400 | 	UPD_STAMP = 8 |
| 401 | }; |
| 402 | typedef enum log_entry_t log_entry_t; |
| 403 | |
| 404 | struct log_entry { |
| 405 | 	u_long le_time; |
| 406 | 	log_entry_t le_type; |
| 407 | 	nis_name le_princp; |
| 408 | 	nis_name le_name; |
| 409 | 	struct { |
| 410 | 		u_int le_attrs_len; |
| 411 | 		nis_attr *le_attrs_val; |
| 412 | 	} le_attrs; |
| 413 | 	nis_object le_object; |
| 414 | }; |
| 415 | typedef struct log_entry log_entry; |
| 416 | |
| 417 | struct log_result { |
| 418 | 	nis_error lr_status; |
| 419 | 	netobj lr_cookie; |
| 420 | 	struct { |
| 421 | 		u_int lr_entries_len; |
| 422 | 		log_entry *lr_entries_val; |
| 423 | 	} lr_entries; |
| 424 | }; |
| 425 | typedef struct log_result log_result; |
| 426 | |
| 427 | struct cp_result { |
| 428 | 	nis_error cp_status; |
| 429 | 	u_long cp_zticks; |
| 430 | 	u_long cp_dticks; |
| 431 | }; |
| 432 | typedef struct cp_result cp_result; |
| 433 | |
| 434 | struct nis_tag { |
| 435 | 	u_long tag_type; |
| 436 | 	char *tag_val; |
| 437 | }; |
| 438 | typedef struct nis_tag nis_tag; |
| 439 | |
| 440 | struct nis_taglist { |
| 441 | 	struct { |
| 442 | 		u_int tags_len; |
| 443 | 		nis_tag *tags_val; |
| 444 | 	} tags; |
| 445 | }; |
| 446 | typedef struct nis_taglist nis_taglist; |
| 447 | |
| 448 | struct dump_args { |
| 449 | 	nis_name da_dir; |
| 450 | 	u_long da_time; |
| 451 | 	struct { |
| 452 | 		u_int da_cbhost_len; |
| 453 | 		nis_server *da_cbhost_val; |
| 454 | 	} da_cbhost; |
| 455 | }; |
| 456 | typedef struct dump_args dump_args; |
| 457 | |
| 458 | struct fd_args { |
| 459 | 	nis_name dir_name; |
| 460 | 	nis_name requester; |
| 461 | }; |
| 462 | typedef struct fd_args fd_args; |
| 463 | |
| 464 | struct fd_result { |
| 465 | 	nis_error status; |
| 466 | 	nis_name source; |
| 467 | 	struct { |
| 468 | 		u_int dir_data_len; |
| 469 | 		char *dir_data_val; |
| 470 | 	} dir_data; |
| 471 | 	struct { |
| 472 | 		u_int signature_len; |
| 473 | 		char *signature_val; |
| 474 | 	} signature; |
| 475 | }; |
| 476 | typedef struct fd_result fd_result; |
| 477 | /* |
| 478 | * Generic "hash" datastructures, used by all types of hashed data. |
| 479 | */ |
| 480 | struct nis_hash_data { |
| 481 | nis_name name; /* NIS name of hashed item */ |
| 482 | int keychain; /* It's hash key (for pop) */ |
| 483 | struct nis_hash_data *next; /* Hash collision pointer */ |
| 484 | struct nis_hash_data *prv_item; /* A serial, doubly linked list */ |
| 485 | struct nis_hash_data *nxt_item; /* of items in the hash table */ |
| 486 | }; |
| 487 | typedef struct nis_hash_data NIS_HASH_ITEM; |
| 488 | |
| 489 | struct nis_hash_table { |
| 490 | NIS_HASH_ITEM *keys[64]; /* A hash table of items */ |
| 491 | NIS_HASH_ITEM *first; /* The first "item" in serial list */ |
| 492 | }; |
| 493 | typedef struct nis_hash_table NIS_HASH_TABLE; |
| 494 | |
| 495 | /* Structure for storing dynamically allocated static data */ |
| 496 | struct nis_sdata { |
| 497 | void *buf; /* Memory allocation pointer 	*/ |
| 498 | u_long size; /* Buffer size			*/ |
| 499 | }; |
| 500 | |
| 501 | /* Generic client creating flags */ |
| 502 | #define ZMH_VC 1 |
| 503 | #define ZMH_DG 2 |
| 504 | #define ZMH_AUTH 4 |
| 505 | |
| 506 | /* Testing Access rights for objects */ |
| 507 | |
| 508 | #define NIS_READ_ACC 1 |
| 509 | #define NIS_MODIFY_ACC 2 |
| 510 | #define NIS_CREATE_ACC 4 |
| 511 | #define NIS_DESTROY_ACC 8 |
| 512 | /* Test macros. a == access rights, m == desired rights. */ |
| 513 | #define WORLD(a, m) (((a) & (m)) != 0) |
| 514 | #define GROUP(a, m) (((a) & ((m) << 8)) != 0) |
| 515 | #define OWNER(a, m) (((a) & ((m) << 16)) != 0) |
| 516 | #define NOBODY(a, m) (((a) & ((m) << 24)) != 0) |
| 517 | |
| 518 | #define OATYPE(d, n) (((d)->do_armask.do_armask_val+n)->oa_otype) |
| 519 | #define OARIGHTS(d, n) (((d)->do_armask.do_armask_val+n)->oa_rights) |
| 520 | #define WORLD_DEFAULT (NIS_READ_ACC) |
| 521 | #define GROUP_DEFAULT (NIS_READ_ACC << 8) |
| 522 | #define OWNER_DEFAULT ((NIS_READ_ACC + NIS_MODIFY_ACC + NIS_CREATE_ACC + NIS_DESTROY_ACC) << 16) |
| 523 | #define DEFAULT_RIGHTS (WORLD_DEFAULT | GROUP_DEFAULT | OWNER_DEFAULT) |
| 524 | |
| 525 | /* Result manipulation defines ... */ |
| 526 | #define NIS_RES_NUMOBJ(x) ((x)->objects.objects_len) |
| 527 | #define NIS_RES_OBJECT(x) ((x)->objects.objects_val) |
| 528 | #define NIS_RES_COOKIE(x) ((x)->cookie) |
| 529 | #define NIS_RES_STATUS(x) ((x)->status) |
| 530 | |
| 531 | /* These defines make getting at the variant part of the object easier. */ |
| 532 | #define TA_data zo_data.objdata_u.ta_data |
| 533 | #define EN_data zo_data.objdata_u.en_data |
| 534 | #define DI_data zo_data.objdata_u.di_data |
| 535 | #define LI_data zo_data.objdata_u.li_data |
| 536 | #define GR_data zo_data.objdata_u.gr_data |
| 537 | |
| 538 | #define __type_of(o) ((o)->zo_data.zo_type) |
| 539 | |
| 540 | /* Declarations for the internal subroutines in nislib.c */ |
| 541 | enum name_pos {SAME_NAME, HIGHER_NAME, LOWER_NAME, NOT_SEQUENTIAL, BAD_NAME}; |
| 542 | typedef enum name_pos name_pos; |
| 543 | |
| 544 | /* |
| 545 | * Defines for getting at column data in entry objects. Because RPCGEN |
| 546 | * generates some rather wordy structures, we create some defines that |
| 547 | * collapse the needed keystrokes to access a particular value using |
| 548 | * these definitions they take an nis_object *, and an int and return |
| 549 | * a u_char * for Value, and an int for length. |
| 550 | */ |
| 551 | #define ENTRY_VAL(obj, col) (obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_val |
| 552 | #define ENTRY_LEN(obj, col) (obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len |
| 553 | |
| 554 | #ifdef __cplusplus |
| 555 | } |
| 556 | #endif |
| 557 | |
| 558 | /* Prototypes, and extern declarations for the NIS library functions. */ |
| 559 | #include <rpcsvc/nislib.h> |
| 560 | #endif /* __NIS_RPCGEN_H */ |
| 561 | /* EDIT_START */ |
| 562 | |
| 563 | /* |
| 564 | * nis_3.h |
| 565 | * |
| 566 | * This file contains definitions that are only of interest to the actual |
| 567 | * service daemon and client stubs. Normal users of NIS will not include |
| 568 | * this file. |
| 569 | * |
| 570 | * NOTE : This include file is automatically created by a combination |
| 571 | * of rpcgen and sed. DO NOT EDIT IT, change the nis.x file instead |
| 572 | * and then remake this file. |
| 573 | */ |
| 574 | #ifndef __nis_3_h |
| 575 | #define __nis_3_h |
| 576 | #ifdef __cplusplus |
| 577 | extern "C" { |
| 578 | #endif |
| 579 | |
| 580 | #define	NIS_PROG ((unsigned long)(100300)) |
| 581 | #define	NIS_VERSION ((unsigned long)(3)) |
| 582 | |
| 583 | extern void nis_prog_3(struct svc_req *rqstp, SVCXPRT *transp); |
| 584 | #define	NIS_LOOKUP ((unsigned long)(1)) |
| 585 | extern nis_result * nis_lookup_3(ns_request *, CLIENT *); |
| 586 | extern nis_result * nis_lookup_3_svc(ns_request *, struct svc_req *); |
| 587 | #define	NIS_ADD ((unsigned long)(2)) |
| 588 | extern nis_result * nis_add_3(ns_request *, CLIENT *); |
| 589 | extern nis_result * nis_add_3_svc(ns_request *, struct svc_req *); |
| 590 | #define	NIS_MODIFY ((unsigned long)(3)) |
| 591 | extern nis_result * nis_modify_3(ns_request *, CLIENT *); |
| 592 | extern nis_result * nis_modify_3_svc(ns_request *, struct svc_req *); |
| 593 | #define	NIS_REMOVE ((unsigned long)(4)) |
| 594 | extern nis_result * nis_remove_3(ns_request *, CLIENT *); |
| 595 | extern nis_result * nis_remove_3_svc(ns_request *, struct svc_req *); |
| 596 | #define	NIS_IBLIST ((unsigned long)(5)) |
| 597 | extern nis_result * nis_iblist_3(ib_request *, CLIENT *); |
| 598 | extern nis_result * nis_iblist_3_svc(ib_request *, struct svc_req *); |
| 599 | #define	NIS_IBADD ((unsigned long)(6)) |
| 600 | extern nis_result * nis_ibadd_3(ib_request *, CLIENT *); |
| 601 | extern nis_result * nis_ibadd_3_svc(ib_request *, struct svc_req *); |
| 602 | #define	NIS_IBMODIFY ((unsigned long)(7)) |
| 603 | extern nis_result * nis_ibmodify_3(ib_request *, CLIENT *); |
| 604 | extern nis_result * nis_ibmodify_3_svc(ib_request *, struct svc_req *); |
| 605 | #define	NIS_IBREMOVE ((unsigned long)(8)) |
| 606 | extern nis_result * nis_ibremove_3(ib_request *, CLIENT *); |
| 607 | extern nis_result * nis_ibremove_3_svc(ib_request *, struct svc_req *); |
| 608 | #define	NIS_IBFIRST ((unsigned long)(9)) |
| 609 | extern nis_result * nis_ibfirst_3(ib_request *, CLIENT *); |
| 610 | extern nis_result * nis_ibfirst_3_svc(ib_request *, struct svc_req *); |
| 611 | #define	NIS_IBNEXT ((unsigned long)(10)) |
| 612 | extern nis_result * nis_ibnext_3(ib_request *, CLIENT *); |
| 613 | extern nis_result * nis_ibnext_3_svc(ib_request *, struct svc_req *); |
| 614 | #define	NIS_FINDDIRECTORY ((unsigned long)(12)) |
| 615 | extern fd_result * nis_finddirectory_3(fd_args *, CLIENT *); |
| 616 | extern fd_result * nis_finddirectory_3_svc(fd_args *, struct svc_req *); |
| 617 | #define	NIS_STATUS ((unsigned long)(14)) |
| 618 | extern nis_taglist * nis_status_3(nis_taglist *, CLIENT *); |
| 619 | extern nis_taglist * nis_status_3_svc(nis_taglist *, struct svc_req *); |
| 620 | #define	NIS_DUMPLOG ((unsigned long)(15)) |
| 621 | extern log_result * nis_dumplog_3(dump_args *, CLIENT *); |
| 622 | extern log_result * nis_dumplog_3_svc(dump_args *, struct svc_req *); |
| 623 | #define	NIS_DUMP ((unsigned long)(16)) |
| 624 | extern log_result * nis_dump_3(dump_args *, CLIENT *); |
| 625 | extern log_result * nis_dump_3_svc(dump_args *, struct svc_req *); |
| 626 | #define	NIS_CALLBACK ((unsigned long)(17)) |
| 627 | extern bool_t * nis_callback_3(netobj *, CLIENT *); |
| 628 | extern bool_t * nis_callback_3_svc(netobj *, struct svc_req *); |
| 629 | #define	NIS_CPTIME ((unsigned long)(18)) |
| 630 | extern u_long * nis_cptime_3(nis_name *, CLIENT *); |
| 631 | extern u_long * nis_cptime_3_svc(nis_name *, struct svc_req *); |
| 632 | #define	NIS_CHECKPOINT ((unsigned long)(19)) |
| 633 | extern cp_result * nis_checkpoint_3(nis_name *, CLIENT *); |
| 634 | extern cp_result * nis_checkpoint_3_svc(nis_name *, struct svc_req *); |
| 635 | #define	NIS_PING ((unsigned long)(20)) |
| 636 | extern void * nis_ping_3(ping_args *, CLIENT *); |
| 637 | extern void * nis_ping_3_svc(ping_args *, struct svc_req *); |
| 638 | #define	NIS_SERVSTATE ((unsigned long)(21)) |
| 639 | extern nis_taglist * nis_servstate_3(nis_taglist *, CLIENT *); |
| 640 | extern nis_taglist * nis_servstate_3_svc(nis_taglist *, struct svc_req *); |
| 641 | #define	NIS_MKDIR ((unsigned long)(22)) |
| 642 | extern nis_error * nis_mkdir_3(nis_name *, CLIENT *); |
| 643 | extern nis_error * nis_mkdir_3_svc(nis_name *, struct svc_req *); |
| 644 | #define	NIS_RMDIR ((unsigned long)(23)) |
| 645 | extern nis_error * nis_rmdir_3(nis_name *, CLIENT *); |
| 646 | extern nis_error * nis_rmdir_3_svc(nis_name *, struct svc_req *); |
| 647 | #define	NIS_UPDKEYS ((unsigned long)(24)) |
| 648 | extern nis_error * nis_updkeys_3(nis_name *, CLIENT *); |
| 649 | extern nis_error * nis_updkeys_3_svc(nis_name *, struct svc_req *); |
| 650 | extern int nis_prog_3_freeresult(SVCXPRT *, xdrproc_t, caddr_t); |
| 651 | |
| 652 | /* the xdr functions */ |
| 653 | extern bool_t xdr_nis_attr(XDR *, nis_attr*); |
| 654 | extern bool_t xdr_nis_name(XDR *, nis_name*); |
| 655 | extern bool_t xdr_zotypes(XDR *, zotypes*); |
| 656 | extern bool_t xdr_nstype(XDR *, nstype*); |
| 657 | extern bool_t xdr_oar_mask(XDR *, oar_mask*); |
| 658 | extern bool_t xdr_endpoint(XDR *, endpoint*); |
| 659 | extern bool_t xdr_nis_server(XDR *, nis_server*); |
| 660 | extern bool_t xdr_directory_obj(XDR *, directory_obj*); |
| 661 | extern bool_t xdr_entry_col(XDR *, entry_col*); |
| 662 | extern bool_t xdr_entry_obj(XDR *, entry_obj*); |
| 663 | extern bool_t xdr_group_obj(XDR *, group_obj*); |
| 664 | extern bool_t xdr_link_obj(XDR *, link_obj*); |
| 665 | extern bool_t xdr_table_col(XDR *, table_col*); |
| 666 | extern bool_t xdr_table_obj(XDR *, table_obj*); |
| 667 | extern bool_t xdr_objdata(XDR *, objdata*); |
| 668 | extern bool_t xdr_nis_oid(XDR *, nis_oid*); |
| 669 | extern bool_t xdr_nis_object(XDR *, nis_object*); |
| 670 | extern bool_t xdr_nis_error(XDR *, nis_error*); |
| 671 | extern bool_t xdr_nis_result(XDR *, nis_result*); |
| 672 | extern bool_t xdr_ns_request(XDR *, ns_request*); |
| 673 | extern bool_t xdr_ib_request(XDR *, ib_request*); |
| 674 | extern bool_t xdr_ping_args(XDR *, ping_args*); |
| 675 | extern bool_t xdr_log_entry_t(XDR *, log_entry_t*); |
| 676 | extern bool_t xdr_log_entry(XDR *, log_entry*); |
| 677 | extern bool_t xdr_log_result(XDR *, log_result*); |
| 678 | extern bool_t xdr_cp_result(XDR *, cp_result*); |
| 679 | extern bool_t xdr_nis_tag(XDR *, nis_tag*); |
| 680 | extern bool_t xdr_nis_taglist(XDR *, nis_taglist*); |
| 681 | extern bool_t xdr_dump_args(XDR *, dump_args*); |
| 682 | extern bool_t xdr_fd_args(XDR *, fd_args*); |
| 683 | extern bool_t xdr_fd_result(XDR *, fd_result*); |
| 684 | |
| 685 | #ifdef __cplusplus |
| 686 | } |
| 687 | #endif |
| 688 | |
| 689 | #endif /* !_NIS_H_RPCGEN */ |