Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/rpcsvc/yp_prot.h
$ cat -n /usr/include/rpcsvc/yp_prot.h 1 /* 2 * This file contains symbols and structures defining the rpc protocol 3 * between the NIS clients and the NIS servers. The servers 4 * are the NIS database servers, and the NIS binders. 5 */ 6 7 #ifndef _RPCSVC_YP_PROT_H 8 #define _RPCSVC_YP_PROT_H 9 10 #include
11 #include
12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 18 /* 19 * The following procedures are supported by the protocol: 20 * 21 * YPPROC_NULL() returns () takes nothing, returns nothing. This indicates 22 * that the NIS server is alive. 23 * 24 * YPPROC_DOMAIN (char *) returns (bool_t) TRUE. Indicates that the 25 * responding NIS server does serve the named domain; FALSE indicates no 26 * support. 27 * 28 * YPPROC_DOMAIN_NONACK (char *) returns (TRUE) if the NIS server does serve 29 * the named domain, otherwise does not return. Used in the broadcast case. 30 * 31 * YPPROC_MATCH (struct ypreq_key) returns (struct ypresp_val). Returns the 32 * right-hand value for a passed left-hand key, within a named map and 33 * domain. 34 * 35 * YPPROC_FIRST (struct ypreq_nokey) returns (struct ypresp_key_val). 36 * Returns the first key-value pair from a named domain and map. 37 * 38 * YPPROC_NEXT (struct ypreq_key) returns (struct ypresp_key_val). Returns 39 * the key-value pair following a passed key-value pair within a named 40 * domain and map. 41 * 42 * YPPROC_XFR (struct ypreq_xfr) returns nothing. Indicates to a server that 43 * a map should be updated. 44 * 45 * YPPROC_NEWXFR (struct ypreq_newxfr) returns nothing. Indicates to a server 46 * that a map should be updated. Uses protocol independent request struct. 47 * 48 * YPPROC_CLEAR takes nothing, returns nothing. Instructs a NIS server to 49 * close the current map, so that old versions of the disk file don't get 50 * held open. 51 * 52 * YPPROC_ALL (struct ypreq_nokey), returns 53 * union switch (bool_t more) { 54 * TRUE: (struct ypresp_key_val); 55 * FALSE: (struct) {}; 56 * } 57 * 58 * YPPROC_MASTER (struct ypreq_nokey), returns (ypresp_master) 59 * 60 * YPPROC_ORDER (struct ypreq_nokey), returns (ypresp_order) 61 * 62 * YPPROC_MAPLIST (char *), returns (struct ypmaplist *) 63 */ 64 65 /* Program and version symbols, magic numbers */ 66 67 #define YPPROG 100004 68 #define YPVERS 2 69 #define YPVERS_ORIG 1 70 #define YPMAXRECORD 1024 71 #define YPMAXDOMAIN 256 72 #define YPMAXMAP 64 73 #define YPMAXPEER 256 74 75 /* byte size of a large NIS packet */ 76 #define YPMSGSZ 1600 77 78 typedef struct keydat { 79 u_int keydat_len; 80 char *keydat_val; 81 } keydat_t; 82 83 typedef struct valdat { 84 u_int valdat_len; 85 char *valdat_val; 86 } valdat_t; 87 88 struct ypmap_parms { 89 char *domain; /* Null string means not available */ 90 char *map; /* Null string means not available */ 91 unsigned int ordernum; /* 0 means not available */ 92 char *owner; /* Null string means not available */ 93 }; 94 typedef struct ypmap_parms ypmap_parms; 95 96 /* 97 * Request parameter structures 98 */ 99 100 struct ypreq_key { 101 char *domain; 102 char *map; 103 keydat_t keydat; 104 }; 105 typedef struct ypreq_key ypreq_key; 106 107 struct ypreq_nokey { 108 char *domain; 109 char *map; 110 }; 111 typedef struct ypreq_nokey ypreq_nokey; 112 113 struct ypreq_xfr { 114 struct ypmap_parms map_parms; 115 u_int transid; 116 u_int proto; 117 u_int port; 118 }; 119 typedef struct ypreq_xfr ypreq_xfr; 120 121 struct ypreq_newxfr { 122 struct ypmap_parms map_parms; 123 u_int transid; 124 u_int proto; 125 char *name; 126 }; 127 typedef struct ypreq_newxfr ypreq_newxfr; 128 129 #define ypxfr_domain map_parms.domain 130 #define ypxfr_map map_parms.map 131 #define ypxfr_ordernum map_parms.ordernum 132 #define ypxfr_owner map_parms.owner 133 134 /* Return status values */ 135 136 enum ypstat { 137 YP_TRUE = 1, /* General purpose success code */ 138 #define YP_TRUE YP_TRUE 139 YP_NOMORE = 2, /* No more entries in map */ 140 #define YP_NOMORE YP_NOMORE 141 YP_FALSE = 0, /* General purpose failure code */ 142 #define YP_FALSE YP_FALSE 143 YP_NOMAP = -1, /* No such map in domain */ 144 #define YP_NOMAP YP_NOMAP 145 YP_NODOM = -2, /* Domain not supported */ 146 #define YP_NODOM YP_NODOM 147 YP_NOKEY = -3, /* No such key in map */ 148 #define YP_NOKEY YP_NOKEY 149 YP_BADOP = -4, /* Invalid operation */ 150 #define YP_BADOP YP_BADOP 151 YP_BADDB = -5, /* Server data base is bad */ 152 #define YP_BADDB YP_BADDB 153 YP_YPERR = -6, /* NIS server error */ 154 #define YP_YPERR YP_YPERR 155 YP_BADARGS = -7, /* Request arguments bad */ 156 #define YP_BADARGS YP_BADARGS 157 YP_VERS = -8 /* NIS server version mismatch - server can't supply 158 requested service. */ 159 #define YP_VERS YP_VERS 160 }; 161 typedef enum ypstat ypstat; 162 163 164 enum ypxfrstat { 165 YPXFR_SUCC = 1, 166 YPXFR_AGE = 2, 167 YPXFR_NOMAP = -1, 168 YPXFR_NODOM = -2, 169 YPXFR_RSRC = -3, 170 YPXFR_RPC = -4, 171 YPXFR_MADDR = -5, 172 YPXFR_YPERR = -6, 173 YPXFR_BADARGS = -7, 174 YPXFR_DBM = -8, 175 YPXFR_FILE = -9, 176 YPXFR_SKEW = -10, 177 YPXFR_CLEAR = -11, 178 YPXFR_FORCE = -12, 179 YPXFR_XFRERR = -13, 180 YPXFR_REFUSED = -14 181 }; 182 typedef enum ypxfrstat ypxfrstat; 183 184 /* 185 * Response parameter structures 186 */ 187 188 struct ypresp_val { 189 ypstat status; 190 valdat_t valdat; 191 }; 192 typedef struct ypresp_val ypresp_val; 193 194 struct ypresp_key_val { 195 ypstat status; 196 valdat_t valdat; 197 keydat_t keydat; 198 }; 199 typedef struct ypresp_key_val ypresp_key_val; 200 201 struct ypresp_master { 202 ypstat status; 203 char *master; 204 }; 205 typedef struct ypresp_master ypresp_master; 206 207 struct ypresp_order { 208 ypstat status; 209 unsigned int ordernum; 210 }; 211 typedef struct ypresp_order ypresp_order; 212 213 struct ypresp_xfr { 214 u_int transid; 215 ypxfrstat xfrstat; 216 }; 217 typedef struct ypresp_xfr ypresp_xfr; 218 219 struct ypmaplist { 220 char *map; 221 #define ypml_name map 222 struct ypmaplist *next; 223 #define ypml_next next 224 }; 225 typedef struct ypmaplist ypmaplist; 226 227 struct ypresp_maplist { 228 ypstat status; 229 struct ypmaplist *list; 230 }; 231 typedef struct ypresp_maplist ypresp_maplist; 232 233 234 /* 235 * Procedure symbols. YPPROC_NULL, YPPROC_DOMAIN, and YPPROC_DOMAIN_NONACK 236 * must keep the same values (0, 1, and 2) that they had in the first version 237 * of the protocol. 238 */ 239 240 #define YPPROC_NULL 0 241 #define YPPROC_DOMAIN 1 242 #define YPPROC_DOMAIN_NONACK 2 243 #define YPPROC_MATCH 3 244 #define YPPROC_FIRST 4 245 #define YPPROC_NEXT 5 246 #define YPPROC_XFR 6 247 #define YPPROC_CLEAR 7 248 #define YPPROC_ALL 8 249 #define YPPROC_MASTER 9 250 #define YPPROC_ORDER 10 251 #define YPPROC_MAPLIST 11 252 #define YPPROC_NEWXFR 12 253 254 /* 255 * Protocol between clients and NIS binder servers 256 */ 257 258 /* 259 * The following procedures are supported by the protocol: 260 * 261 * YPBINDPROC_NULL() returns () 262 * takes nothing, returns nothing 263 * 264 * YPBINDPROC_DOMAIN takes (char *) returns (struct ypbind2_resp) 265 * 266 * YPBINDPROC_SETDOM takes (struct ypbind2_setdom) returns nothing 267 */ 268 269 /* Program and version symbols, magic numbers */ 270 271 #define YPBINDPROG 100007 272 #define YPBINDVERS 3 273 #define YPBINDVERS_2 2 274 #define YPBINDVERS_1 1 275 276 /* Procedure symbols */ 277 278 #define YPBINDPROC_NULL 0 279 #define YPBINDPROC_DOMAIN 1 280 #define YPBINDPROC_SETDOM 2 281 282 /* 283 * Request and response structures and overall result status codes. 284 * Success and failure represent two separate response message types. 285 */ 286 287 enum ypbind_resptype {YPBIND_SUCC_VAL = 1, YPBIND_FAIL_VAL = 2}; 288 typedef enum ypbind_resptype ypbind_resptype; 289 290 struct ypbind2_binding { 291 struct in_addr ypbind_binding_addr; /* In network order */ 292 unsigned short int ypbind_binding_port; /* In network order */ 293 }; 294 typedef struct ypbind2_binding ypbind2_binding; 295 296 struct ypbind2_resp { 297 enum ypbind_resptype ypbind_status; 298 union { 299 u_int ypbind_error; 300 struct ypbind2_binding ypbind_bindinfo; 301 } ypbind_respbody; 302 }; 303 typedef struct ypbind2_resp ypbind2_resp; 304 #define ypbind2_error ypbind_respbody.ypbind_error 305 #define ypbind2_bindinfo ypbind_respbody.ypbind_bindinfo 306 #define ypbind2_addr ypbind_respbody.ypbind_bindinfo.ypbind_binding_addr 307 #define ypbind2_port ypbind_respbody.ypbind_bindinfo.ypbind_binding_port 308 309 struct ypbind_oldsetdom { 310 char ypoldsetdom_domain[YPMAXDOMAIN]; 311 ypbind2_binding ypoldsetdom_binding; 312 }; 313 typedef struct ypbind_oldsetdom ypbind_oldsetdom; 314 #define ypoldsetdom_addr ypoldsetdom_binding.ypbind_binding_addr 315 #define ypoldsetdom_port ypoldsetdom_binding.ypbind_binding_port 316 317 struct ypbind2_setdom { 318 char *ypsetdom_domain; 319 struct ypbind2_binding ypsetdom_binding; 320 u_int ypsetdom_vers; 321 }; 322 typedef struct ypbind2_setdom ypbind2_setdom; 323 #define ypsetdom_addr ypsetdom_binding.ypbind_binding_addr 324 #define ypsetdom_port ypsetdom_binding.ypbind_binding_port 325 326 struct ypbind3_binding { 327 struct netconfig *ypbind_nconf; 328 struct netbuf *ypbind_svcaddr; 329 char *ypbind_servername; 330 /* that's the highest version number that the used 331 ypserv supports, normally YPVERS */ 332 rpcvers_t ypbind_hi_vers; 333 /* the lowest version number that the used 334 ypserv supports, on Solaris 0 or YPVERS, too */ 335 rpcvers_t ypbind_lo_vers; 336 }; 337 typedef struct ypbind3_binding ypbind3_binding; 338 339 struct ypbind3_resp { 340 enum ypbind_resptype ypbind_status; 341 union { 342 u_long ypbind_error; 343 struct ypbind3_binding *ypbind_bindinfo; 344 } ypbind_respbody; 345 }; 346 typedef struct ypbind3_resp ypbind3_resp; 347 #define ypbind3_error ypbind_respbody.ypbind_error 348 #define ypbind3_bindinfo ypbind_respbody.ypbind_bindinfo 349 #define ypbind3_nconf ypbind_respbody.ypbind_bindinfo->ypbind_nconf 350 #define ypbind3_svcaddr ypbind_respbody.ypbind_bindinfo->ypbind_svcaddr 351 #define ypbind3_servername ypbind_respbody.ypbind_bindinfo->ypbind_servername 352 #define ypbind3_hi_vers ypbind_respbody.ypbind_bindinfo->ypbind_hi_vers 353 #define ypbind3_lo_vers ypbind_respbody.ypbind_bindinfo->ypbind_lo_vers 354 355 struct ypbind3_setdom { 356 char *ypsetdom_domain; 357 struct ypbind3_binding *ypsetdom_bindinfo; 358 }; 359 typedef struct ypbind3_setdom ypbind3_setdom; 360 #define ypsetdom3_nconf ypsetdom_bindinfo->ypbind_nconf 361 #define ypsetdom3_svcaddr ypsetdom_bindinfo->ypbind_svcaddr 362 #define ypsetdom3_servername ypsetdom_bindinfo->ypbind_servername 363 #define ypsetdom3_hi_vers ypsetdom_bindinfo->ypbind_hi_vers 364 #define ypsetdom3_lo_vers ypsetdom_bindinfo->ypbind_lo_vers 365 366 367 /* Detailed failure reason codes for response field ypbind_error*/ 368 369 #define YPBIND_ERR_ERR 1 /* Internal error */ 370 #define YPBIND_ERR_NOSERV 2 /* No bound server for passed domain */ 371 #define YPBIND_ERR_RESC 3 /* System resource allocation failure */ 372 #define YPBIND_ERR_NODOMAIN 4 /* Domain doesn't exist */ 373 374 /* 375 * Protocol between clients (ypxfr, only) and yppush 376 * yppush speaks a protocol in the transient range, which 377 * is supplied to ypxfr as a command-line parameter when it 378 * is activated by ypserv. 379 */ 380 #define YPPUSHVERS 1 381 #define YPPUSHVERS_ORIG 1 382 383 /* Procedure symbols */ 384 385 #define YPPUSHPROC_NULL 0 386 #define YPPUSHPROC_XFRRESP 1 387 388 /* Status values for yppushresp_xfr.status */ 389 390 enum yppush_status { 391 YPPUSH_SUCC = 1, /* Success */ 392 #define YPPUSH_SUCC YPPUSH_SUCC 393 YPPUSH_AGE = 2, /* Master's version not newer */ 394 #define YPPUSH_AGE YPPUSH_AGE 395 YPPUSH_NOMAP = -1, /* Can't find server for map */ 396 #define YPPUSH_NOMAP YPPUSH_NOMAP 397 YPPUSH_NODOM = -2, /* Domain not supported */ 398 #define YPPUSH_NODOM YPPUSH_NODOM 399 YPPUSH_RSRC = -3, /* Local resouce alloc failure */ 400 #define YPPUSH_RSRC YPPUSH_RSRC 401 YPPUSH_RPC = -4, /* RPC failure talking to server */ 402 #define YPPUSH_RPC YPPUSH_RPC 403 YPPUSH_MADDR = -5, /* Can't get master address */ 404 #define YPPUSH_MADDR YPPUSH_MADDR 405 YPPUSH_YPERR = -6, /* NIS server/map db error */ 406 #define YPPUSH_YPERR YPPUSH_YPERR 407 YPPUSH_BADARGS = -7, /* Request arguments bad */ 408 #define YPPUSH_BADARGS YPPUSH_BADARGS 409 YPPUSH_DBM = -8, /* Local dbm operation failed */ 410 #define YPPUSH_DBM YPPUSH_DBM 411 YPPUSH_FILE = -9, /* Local file I/O operation failed */ 412 #define YPPUSH_FILE YPPUSH_FILE 413 YPPUSH_SKEW = -10, /* Map version skew during transfer */ 414 #define YPPUSH_SKEW YPPUSH_SKEW 415 YPPUSH_CLEAR = -11, /* Can't send "Clear" req to local ypserv */ 416 #define YPPUSH_CLEAR YPPUSH_CLEAR 417 YPPUSH_FORCE = -12, /* No local order number in map - use -f flag*/ 418 #define YPPUSH_FORCE YPPUSH_FORCE 419 YPPUSH_XFRERR = -13, /* ypxfr error */ 420 #define YPPUSH_XFRERR YPPUSH_XFRERR 421 YPPUSH_REFUSED = -14, /* Transfer request refused by ypserv */ 422 #define YPPUSH_REFUSED YPPUSH_REFUSED 423 YPPUSH_NOALIAS = -15 /* Alias not found for map or domain */ 424 #define YPPUSH_NOALIAS YPPUSH_NOALIAS 425 }; 426 typedef enum yppush_status yppush_status; 427 428 struct yppushresp_xfr { 429 u_int transid; 430 yppush_status status; 431 }; 432 typedef struct yppushresp_xfr yppushresp_xfr; 433 434 struct ypresp_all { 435 bool_t more; 436 union { 437 struct ypresp_key_val val; 438 } ypresp_all_u; 439 }; 440 typedef struct ypresp_all ypresp_all; 441 442 extern bool_t xdr_domainname (XDR *__xdrs, char ** __objp); 443 extern bool_t xdr_keydat (XDR *__xdrs, keydat_t *__objp); 444 extern bool_t xdr_valdat (XDR *__xdrs, valdat_t *__objp); 445 extern bool_t xdr_ypall (XDR *__xdrs, struct ypall_callback * __objp); 446 extern bool_t xdr_ypbind2_binding (XDR *__xdrs, struct ypbind2_binding * __objp); 447 extern bool_t xdr_ypbind2_resp (XDR *__xdrs, struct ypbind2_resp * __objp); 448 extern bool_t xdr_ypbind2_setdom (XDR *__xdrs, struct ypbind2_setdom * __objp); 449 extern bool_t xdr_ypbind3_binding (XDR *__xdrs, struct ypbind3_binding * __objp); 450 extern bool_t xdr_ypbind3_resp (XDR *__xdrs, struct ypbind3_resp * __objp); 451 extern bool_t xdr_ypbind3_setdom (XDR *__xdrs, struct ypbind3_setdom * __objp); 452 extern bool_t xdr_ypbind_oldsetdom (XDR *__xdrs, struct ypbind_oldsetdom * __objp); 453 extern bool_t xdr_ypbind_resptype (XDR *__xdrs, enum ypbind_resptype * __objp); 454 extern bool_t xdr_ypmap_parms (XDR *__xdrs, struct ypmap_parms * __objp); 455 extern bool_t xdr_ypmaplist (XDR *__xdrs, struct ypmaplist *__objp); 456 extern bool_t xdr_yppushresp_xfr (XDR *__xdrs, struct yppushresp_xfr * __objp); 457 extern bool_t xdr_ypreq_key (XDR *__xdrs, struct ypreq_key * __objp); 458 extern bool_t xdr_ypreq_newxfr (XDR *__xdrs, struct ypreq_newxfr * __objp); 459 extern bool_t xdr_ypreq_nokey (XDR *__xdrs, struct ypreq_nokey * __objp); 460 extern bool_t xdr_ypreq_xfr (XDR *__xdrs, struct ypreq_xfr * __objp); 461 extern bool_t xdr_ypresp_all (XDR *__xdrs, struct ypresp_all * __objp); 462 extern bool_t xdr_ypresp_key_val (XDR *__xdrs, struct ypresp_key_val * __objp); 463 extern bool_t xdr_ypresp_maplist (XDR *__xdrs, struct ypresp_maplist * __objp); 464 extern bool_t xdr_ypresp_master (XDR *__xdrs, struct ypresp_master * __objp); 465 extern bool_t xdr_ypresp_order (XDR *__xdrs, struct ypresp_order * __objp); 466 extern bool_t xdr_ypresp_val (XDR *__xdrs, struct ypresp_val * __objp); 467 extern bool_t xdr_ypresp_xfr (XDR *__xdrs, struct ypresp_xfr *__objp); 468 extern bool_t xdr_ypstat (XDR *__xdrs, enum ypstat * __objp); 469 extern bool_t xdr_ypxfrstat (XDR *__xdrs, enum ypxfrstat *__objp); 470 471 /* Not really for this, but missing better place: */ 472 extern const char *taddr2host (const struct netconfig *__nconf, 473 const struct netbuf *__nbuf, 474 char *__host, size_t __hostlen); 475 extern const char *taddr2ipstr (const struct netconfig *__nconf, 476 const struct netbuf *__nbuf, 477 char *__buf, size_t __buflen); 478 extern unsigned short taddr2port (const struct netconfig *__nconf, 479 const struct netbuf *__nbuf); 480 481 #ifdef __cplusplus 482 } 483 #endif 484 485 486 #endif /* _RPCSVC_YP_PROT_H */
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™