1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * This file contains symbols and structures defining the rpc protocol 3*53ee8cc1Swenshuai.xi * between the NIS clients and the NIS servers. The servers 4*53ee8cc1Swenshuai.xi * are the NIS database servers, and the NIS binders. 5*53ee8cc1Swenshuai.xi */ 6*53ee8cc1Swenshuai.xi 7*53ee8cc1Swenshuai.xi #ifndef _RPCSVC_YP_PROT_H 8*53ee8cc1Swenshuai.xi #define _RPCSVC_YP_PROT_H 9*53ee8cc1Swenshuai.xi 10*53ee8cc1Swenshuai.xi #include <features.h> 11*53ee8cc1Swenshuai.xi 12*53ee8cc1Swenshuai.xi #include <rpc/rpc.h> 13*53ee8cc1Swenshuai.xi #include <rpcsvc/ypclnt.h> 14*53ee8cc1Swenshuai.xi 15*53ee8cc1Swenshuai.xi __BEGIN_DECLS 16*53ee8cc1Swenshuai.xi 17*53ee8cc1Swenshuai.xi /* 18*53ee8cc1Swenshuai.xi * The following procedures are supported by the protocol: 19*53ee8cc1Swenshuai.xi * 20*53ee8cc1Swenshuai.xi * YPPROC_NULL() returns () takes nothing, returns nothing. This indicates 21*53ee8cc1Swenshuai.xi * that the NIS server is alive. 22*53ee8cc1Swenshuai.xi * 23*53ee8cc1Swenshuai.xi * YPPROC_DOMAIN (char *) returns (bool_t) TRUE. Indicates that the 24*53ee8cc1Swenshuai.xi * responding NIS server does serve the named domain; FALSE indicates no 25*53ee8cc1Swenshuai.xi * support. 26*53ee8cc1Swenshuai.xi * 27*53ee8cc1Swenshuai.xi * YPPROC_DOMAIN_NONACK (char *) returns (TRUE) if the NIS server does serve 28*53ee8cc1Swenshuai.xi * the named domain, otherwise does not return. Used in the broadcast case. 29*53ee8cc1Swenshuai.xi * 30*53ee8cc1Swenshuai.xi * YPPROC_MATCH (struct ypreq_key) returns (struct ypresp_val). Returns the 31*53ee8cc1Swenshuai.xi * right-hand value for a passed left-hand key, within a named map and 32*53ee8cc1Swenshuai.xi * domain. 33*53ee8cc1Swenshuai.xi * 34*53ee8cc1Swenshuai.xi * YPPROC_FIRST (struct ypreq_nokey) returns (struct ypresp_key_val). 35*53ee8cc1Swenshuai.xi * Returns the first key-value pair from a named domain and map. 36*53ee8cc1Swenshuai.xi * 37*53ee8cc1Swenshuai.xi * YPPROC_NEXT (struct ypreq_key) returns (struct ypresp_key_val). Returns 38*53ee8cc1Swenshuai.xi * the key-value pair following a passed key-value pair within a named 39*53ee8cc1Swenshuai.xi * domain and map. 40*53ee8cc1Swenshuai.xi * 41*53ee8cc1Swenshuai.xi * YPPROC_XFR (struct ypreq_xfr) returns nothing. Indicates to a server that 42*53ee8cc1Swenshuai.xi * a map should be updated. 43*53ee8cc1Swenshuai.xi * 44*53ee8cc1Swenshuai.xi * YPPROC_CLEAR takes nothing, returns nothing. Instructs a NIS server to 45*53ee8cc1Swenshuai.xi * close the current map, so that old versions of the disk file don't get 46*53ee8cc1Swenshuai.xi * held open. 47*53ee8cc1Swenshuai.xi * 48*53ee8cc1Swenshuai.xi * YPPROC_ALL (struct ypreq_nokey), returns 49*53ee8cc1Swenshuai.xi * union switch (bool_t more) { 50*53ee8cc1Swenshuai.xi * TRUE: (struct ypresp_key_val); 51*53ee8cc1Swenshuai.xi * FALSE: (struct) {}; 52*53ee8cc1Swenshuai.xi * } 53*53ee8cc1Swenshuai.xi * 54*53ee8cc1Swenshuai.xi * YPPROC_MASTER (struct ypreq_nokey), returns (ypresp_master) 55*53ee8cc1Swenshuai.xi * 56*53ee8cc1Swenshuai.xi * YPPROC_ORDER (struct ypreq_nokey), returns (ypresp_order) 57*53ee8cc1Swenshuai.xi * 58*53ee8cc1Swenshuai.xi * YPPROC_MAPLIST (char *), returns (struct ypmaplist *) 59*53ee8cc1Swenshuai.xi */ 60*53ee8cc1Swenshuai.xi 61*53ee8cc1Swenshuai.xi /* Program and version symbols, magic numbers */ 62*53ee8cc1Swenshuai.xi 63*53ee8cc1Swenshuai.xi #define YPPROG 100004 64*53ee8cc1Swenshuai.xi #define YPVERS 2 65*53ee8cc1Swenshuai.xi #define YPVERS_ORIG 1 66*53ee8cc1Swenshuai.xi #define YPMAXRECORD 1024 67*53ee8cc1Swenshuai.xi #define YPMAXDOMAIN 64 /* XXX orig. yp_prot.h defines 256 */ 68*53ee8cc1Swenshuai.xi #define YPMAXMAP 64 69*53ee8cc1Swenshuai.xi #define YPMAXPEER 64 /* XXX orig. yp_prot.h defines 256 */ 70*53ee8cc1Swenshuai.xi 71*53ee8cc1Swenshuai.xi /* byte size of a large NIS packet */ 72*53ee8cc1Swenshuai.xi #define YPMSGSZ 1600 73*53ee8cc1Swenshuai.xi 74*53ee8cc1Swenshuai.xi typedef struct { 75*53ee8cc1Swenshuai.xi u_int keydat_len; 76*53ee8cc1Swenshuai.xi char *keydat_val; 77*53ee8cc1Swenshuai.xi } keydat_t; 78*53ee8cc1Swenshuai.xi 79*53ee8cc1Swenshuai.xi typedef struct { 80*53ee8cc1Swenshuai.xi u_int valdat_len; 81*53ee8cc1Swenshuai.xi char *valdat_val; 82*53ee8cc1Swenshuai.xi } valdat_t; 83*53ee8cc1Swenshuai.xi 84*53ee8cc1Swenshuai.xi struct ypmap_parms { 85*53ee8cc1Swenshuai.xi char *domain; /* Null string means not available */ 86*53ee8cc1Swenshuai.xi char *map; /* Null string means not available */ 87*53ee8cc1Swenshuai.xi unsigned int ordernum; /* 0 means not available */ 88*53ee8cc1Swenshuai.xi char *owner; /* Null string means not available */ 89*53ee8cc1Swenshuai.xi }; 90*53ee8cc1Swenshuai.xi 91*53ee8cc1Swenshuai.xi /* 92*53ee8cc1Swenshuai.xi * Request parameter structures 93*53ee8cc1Swenshuai.xi */ 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi struct ypreq_key { 96*53ee8cc1Swenshuai.xi const char *domain; 97*53ee8cc1Swenshuai.xi const char *map; 98*53ee8cc1Swenshuai.xi keydat_t keydat; 99*53ee8cc1Swenshuai.xi }; 100*53ee8cc1Swenshuai.xi 101*53ee8cc1Swenshuai.xi struct ypreq_nokey { 102*53ee8cc1Swenshuai.xi char *domain; 103*53ee8cc1Swenshuai.xi char *map; 104*53ee8cc1Swenshuai.xi }; 105*53ee8cc1Swenshuai.xi 106*53ee8cc1Swenshuai.xi struct ypreq_xfr { 107*53ee8cc1Swenshuai.xi struct ypmap_parms map_parms; 108*53ee8cc1Swenshuai.xi u_int transid; 109*53ee8cc1Swenshuai.xi u_int proto; 110*53ee8cc1Swenshuai.xi u_int port; 111*53ee8cc1Swenshuai.xi }; 112*53ee8cc1Swenshuai.xi 113*53ee8cc1Swenshuai.xi #define ypxfr_domain map_parms.domain 114*53ee8cc1Swenshuai.xi #define ypxfr_map map_parms.map 115*53ee8cc1Swenshuai.xi #define ypxfr_ordernum map_parms.ordernum 116*53ee8cc1Swenshuai.xi #define ypxfr_owner map_parms.owner 117*53ee8cc1Swenshuai.xi 118*53ee8cc1Swenshuai.xi /* Return status values */ 119*53ee8cc1Swenshuai.xi 120*53ee8cc1Swenshuai.xi enum ypstat { 121*53ee8cc1Swenshuai.xi YP_TRUE = 1, /* General purpose success code */ 122*53ee8cc1Swenshuai.xi #define YP_TRUE YP_TRUE 123*53ee8cc1Swenshuai.xi YP_NOMORE = 2, /* No more entries in map */ 124*53ee8cc1Swenshuai.xi #define YP_NOMORE YP_NOMORE 125*53ee8cc1Swenshuai.xi YP_FALSE = 0, /* General purpose failure code */ 126*53ee8cc1Swenshuai.xi #define YP_FALSE YP_FALSE 127*53ee8cc1Swenshuai.xi YP_NOMAP = -1, /* No such map in domain */ 128*53ee8cc1Swenshuai.xi #define YP_NOMAP YP_NOMAP 129*53ee8cc1Swenshuai.xi YP_NODOM = -2, /* Domain not supported */ 130*53ee8cc1Swenshuai.xi #define YP_NODOM YP_NODOM 131*53ee8cc1Swenshuai.xi YP_NOKEY = -3, /* No such key in map */ 132*53ee8cc1Swenshuai.xi #define YP_NOKEY YP_NOKEY 133*53ee8cc1Swenshuai.xi YP_BADOP = -4, /* Invalid operation */ 134*53ee8cc1Swenshuai.xi #define YP_BADOP YP_BADOP 135*53ee8cc1Swenshuai.xi YP_BADDB = -5, /* Server data base is bad */ 136*53ee8cc1Swenshuai.xi #define YP_BADDB YP_BADDB 137*53ee8cc1Swenshuai.xi YP_YPERR = -6, /* NIS server error */ 138*53ee8cc1Swenshuai.xi #define YP_YPERR YP_YPERR 139*53ee8cc1Swenshuai.xi YP_BADARGS = -7, /* Request arguments bad */ 140*53ee8cc1Swenshuai.xi #define YP_BADARGS YP_BADARGS 141*53ee8cc1Swenshuai.xi YP_VERS = -8, /* NIS server version mismatch - server can't supply 142*53ee8cc1Swenshuai.xi requested service. */ 143*53ee8cc1Swenshuai.xi #define YP_VERS YP_VERS 144*53ee8cc1Swenshuai.xi }; 145*53ee8cc1Swenshuai.xi 146*53ee8cc1Swenshuai.xi /* 147*53ee8cc1Swenshuai.xi * Response parameter structures 148*53ee8cc1Swenshuai.xi */ 149*53ee8cc1Swenshuai.xi 150*53ee8cc1Swenshuai.xi typedef enum ypstat ypstat; 151*53ee8cc1Swenshuai.xi 152*53ee8cc1Swenshuai.xi struct ypresp_val { 153*53ee8cc1Swenshuai.xi ypstat status; 154*53ee8cc1Swenshuai.xi valdat_t valdat; 155*53ee8cc1Swenshuai.xi }; 156*53ee8cc1Swenshuai.xi 157*53ee8cc1Swenshuai.xi struct ypresp_key_val { 158*53ee8cc1Swenshuai.xi ypstat status; 159*53ee8cc1Swenshuai.xi #ifdef STUPID_SUN_BUG 160*53ee8cc1Swenshuai.xi /* This is the form as distributed by Sun. But even the Sun NIS 161*53ee8cc1Swenshuai.xi servers expect the values in the other order. So their 162*53ee8cc1Swenshuai.xi implementation somehow must change the order internally. We 163*53ee8cc1Swenshuai.xi don't want to follow this bad example since the user should be 164*53ee8cc1Swenshuai.xi able to use rpcgen on this file. */ 165*53ee8cc1Swenshuai.xi keydat_t keydat; 166*53ee8cc1Swenshuai.xi valdat_t valdat; 167*53ee8cc1Swenshuai.xi #else 168*53ee8cc1Swenshuai.xi valdat_t valdat; 169*53ee8cc1Swenshuai.xi keydat_t keydat; 170*53ee8cc1Swenshuai.xi #endif 171*53ee8cc1Swenshuai.xi }; 172*53ee8cc1Swenshuai.xi 173*53ee8cc1Swenshuai.xi struct ypresp_master { 174*53ee8cc1Swenshuai.xi ypstat status; 175*53ee8cc1Swenshuai.xi char *master; 176*53ee8cc1Swenshuai.xi }; 177*53ee8cc1Swenshuai.xi 178*53ee8cc1Swenshuai.xi struct ypresp_order { 179*53ee8cc1Swenshuai.xi ypstat status; 180*53ee8cc1Swenshuai.xi u_int ordernum; 181*53ee8cc1Swenshuai.xi }; 182*53ee8cc1Swenshuai.xi 183*53ee8cc1Swenshuai.xi struct ypmaplist { 184*53ee8cc1Swenshuai.xi char *map; 185*53ee8cc1Swenshuai.xi #define ypml_name map 186*53ee8cc1Swenshuai.xi struct ypmaplist *next; 187*53ee8cc1Swenshuai.xi #define ypml_next next 188*53ee8cc1Swenshuai.xi }; 189*53ee8cc1Swenshuai.xi 190*53ee8cc1Swenshuai.xi struct ypresp_maplist { 191*53ee8cc1Swenshuai.xi ypstat status; 192*53ee8cc1Swenshuai.xi struct ypmaplist *list; 193*53ee8cc1Swenshuai.xi }; 194*53ee8cc1Swenshuai.xi 195*53ee8cc1Swenshuai.xi /* 196*53ee8cc1Swenshuai.xi * Procedure symbols. YPPROC_NULL, YPPROC_DOMAIN, and YPPROC_DOMAIN_NONACK 197*53ee8cc1Swenshuai.xi * must keep the same values (0, 1, and 2) that they had in the first version 198*53ee8cc1Swenshuai.xi * of the protocol. 199*53ee8cc1Swenshuai.xi */ 200*53ee8cc1Swenshuai.xi 201*53ee8cc1Swenshuai.xi #define YPPROC_NULL 0 202*53ee8cc1Swenshuai.xi #define YPPROC_DOMAIN 1 203*53ee8cc1Swenshuai.xi #define YPPROC_DOMAIN_NONACK 2 204*53ee8cc1Swenshuai.xi #define YPPROC_MATCH 3 205*53ee8cc1Swenshuai.xi #define YPPROC_FIRST 4 206*53ee8cc1Swenshuai.xi #define YPPROC_NEXT 5 207*53ee8cc1Swenshuai.xi #define YPPROC_XFR 6 208*53ee8cc1Swenshuai.xi #define YPPROC_CLEAR 7 209*53ee8cc1Swenshuai.xi #define YPPROC_ALL 8 210*53ee8cc1Swenshuai.xi #define YPPROC_MASTER 9 211*53ee8cc1Swenshuai.xi #define YPPROC_ORDER 10 212*53ee8cc1Swenshuai.xi #define YPPROC_MAPLIST 11 213*53ee8cc1Swenshuai.xi #define YPPROC_NEWXFR 12 214*53ee8cc1Swenshuai.xi 215*53ee8cc1Swenshuai.xi /* 216*53ee8cc1Swenshuai.xi * Protocol between clients and NIS binder servers 217*53ee8cc1Swenshuai.xi */ 218*53ee8cc1Swenshuai.xi 219*53ee8cc1Swenshuai.xi /* 220*53ee8cc1Swenshuai.xi * The following procedures are supported by the protocol: 221*53ee8cc1Swenshuai.xi * 222*53ee8cc1Swenshuai.xi * YPBINDPROC_NULL() returns () 223*53ee8cc1Swenshuai.xi * takes nothing, returns nothing 224*53ee8cc1Swenshuai.xi * 225*53ee8cc1Swenshuai.xi * YPBINDPROC_DOMAIN takes (char *) returns (struct ypbind_resp) 226*53ee8cc1Swenshuai.xi * 227*53ee8cc1Swenshuai.xi * YPBINDPROC_SETDOM takes (struct ypbind_setdom) returns nothing 228*53ee8cc1Swenshuai.xi */ 229*53ee8cc1Swenshuai.xi 230*53ee8cc1Swenshuai.xi /* Program and version symbols, magic numbers */ 231*53ee8cc1Swenshuai.xi 232*53ee8cc1Swenshuai.xi #define YPBINDPROG 100007 233*53ee8cc1Swenshuai.xi #define YPBINDVERS 2 234*53ee8cc1Swenshuai.xi #define YPBINDVERS_ORIG 1 235*53ee8cc1Swenshuai.xi 236*53ee8cc1Swenshuai.xi /* Procedure symbols */ 237*53ee8cc1Swenshuai.xi 238*53ee8cc1Swenshuai.xi #define YPBINDPROC_NULL 0 239*53ee8cc1Swenshuai.xi #define YPBINDPROC_DOMAIN 1 240*53ee8cc1Swenshuai.xi #define YPBINDPROC_SETDOM 2 241*53ee8cc1Swenshuai.xi /* 242*53ee8cc1Swenshuai.xi * Response structure and overall result status codes. Success and failure 243*53ee8cc1Swenshuai.xi * represent two separate response message types. 244*53ee8cc1Swenshuai.xi */ 245*53ee8cc1Swenshuai.xi 246*53ee8cc1Swenshuai.xi enum ypbind_resptype {YPBIND_SUCC_VAL = 1, YPBIND_FAIL_VAL = 2}; 247*53ee8cc1Swenshuai.xi 248*53ee8cc1Swenshuai.xi struct ypbind_binding { 249*53ee8cc1Swenshuai.xi struct in_addr ypbind_binding_addr; /* In network order */ 250*53ee8cc1Swenshuai.xi unsigned short int ypbind_binding_port; /* In network order */ 251*53ee8cc1Swenshuai.xi }; 252*53ee8cc1Swenshuai.xi 253*53ee8cc1Swenshuai.xi struct ypbind_resp { 254*53ee8cc1Swenshuai.xi enum ypbind_resptype ypbind_status; 255*53ee8cc1Swenshuai.xi union { 256*53ee8cc1Swenshuai.xi u_int ypbind_error; 257*53ee8cc1Swenshuai.xi struct ypbind_binding ypbind_bindinfo; 258*53ee8cc1Swenshuai.xi } ypbind_respbody; 259*53ee8cc1Swenshuai.xi }; 260*53ee8cc1Swenshuai.xi 261*53ee8cc1Swenshuai.xi 262*53ee8cc1Swenshuai.xi /* Detailed failure reason codes for response field ypbind_error*/ 263*53ee8cc1Swenshuai.xi 264*53ee8cc1Swenshuai.xi #define YPBIND_ERR_ERR 1 /* Internal error */ 265*53ee8cc1Swenshuai.xi #define YPBIND_ERR_NOSERV 2 /* No bound server for passed domain */ 266*53ee8cc1Swenshuai.xi #define YPBIND_ERR_RESC 3 /* System resource allocation failure */ 267*53ee8cc1Swenshuai.xi 268*53ee8cc1Swenshuai.xi /* 269*53ee8cc1Swenshuai.xi * Request data structure for ypbind "Set domain" procedure. 270*53ee8cc1Swenshuai.xi */ 271*53ee8cc1Swenshuai.xi struct ypbind_setdom { 272*53ee8cc1Swenshuai.xi char *ypsetdom_domain; 273*53ee8cc1Swenshuai.xi struct ypbind_binding ypsetdom_binding; 274*53ee8cc1Swenshuai.xi u_int ypsetdom_vers; 275*53ee8cc1Swenshuai.xi }; 276*53ee8cc1Swenshuai.xi #define ypsetdom_addr ypsetdom_binding.ypbind_binding_addr 277*53ee8cc1Swenshuai.xi #define ypsetdom_port ypsetdom_binding.ypbind_binding_port 278*53ee8cc1Swenshuai.xi 279*53ee8cc1Swenshuai.xi /* 280*53ee8cc1Swenshuai.xi * Protocol between clients (ypxfr, only) and yppush 281*53ee8cc1Swenshuai.xi * yppush speaks a protocol in the transient range, which 282*53ee8cc1Swenshuai.xi * is supplied to ypxfr as a command-line parameter when it 283*53ee8cc1Swenshuai.xi * is activated by ypserv. 284*53ee8cc1Swenshuai.xi */ 285*53ee8cc1Swenshuai.xi #define YPPUSHVERS 1 286*53ee8cc1Swenshuai.xi #define YPPUSHVERS_ORIG 1 287*53ee8cc1Swenshuai.xi 288*53ee8cc1Swenshuai.xi /* Procedure symbols */ 289*53ee8cc1Swenshuai.xi 290*53ee8cc1Swenshuai.xi #define YPPUSHPROC_NULL 0 291*53ee8cc1Swenshuai.xi #define YPPUSHPROC_XFRRESP 1 292*53ee8cc1Swenshuai.xi 293*53ee8cc1Swenshuai.xi /* Status values for yppushresp_xfr.status */ 294*53ee8cc1Swenshuai.xi 295*53ee8cc1Swenshuai.xi enum yppush_status { 296*53ee8cc1Swenshuai.xi YPPUSH_SUCC = 1, /* Success */ 297*53ee8cc1Swenshuai.xi #define YPPUSH_SUCC YPPUSH_SUCC 298*53ee8cc1Swenshuai.xi YPPUSH_AGE = 2, /* Master's version not newer */ 299*53ee8cc1Swenshuai.xi #define YPPUSH_AGE YPPUSH_AGE 300*53ee8cc1Swenshuai.xi YPPUSH_NOMAP = -1, /* Can't find server for map */ 301*53ee8cc1Swenshuai.xi #define YPPUSH_NOMAP YPPUSH_NOMAP 302*53ee8cc1Swenshuai.xi YPPUSH_NODOM = -2, /* Domain not supported */ 303*53ee8cc1Swenshuai.xi #define YPPUSH_NODOM YPPUSH_NODOM 304*53ee8cc1Swenshuai.xi YPPUSH_RSRC = -3, /* Local resouce alloc failure */ 305*53ee8cc1Swenshuai.xi #define YPPUSH_RSRC YPPUSH_RSRC 306*53ee8cc1Swenshuai.xi YPPUSH_RPC = -4, /* RPC failure talking to server */ 307*53ee8cc1Swenshuai.xi #define YPPUSH_RPC YPPUSH_RPC 308*53ee8cc1Swenshuai.xi YPPUSH_MADDR = -5, /* Can't get master address */ 309*53ee8cc1Swenshuai.xi #define YPPUSH_MADDR YPPUSH_MADDR 310*53ee8cc1Swenshuai.xi YPPUSH_YPERR = -6, /* NIS server/map db error */ 311*53ee8cc1Swenshuai.xi #define YPPUSH_YPERR YPPUSH_YPERR 312*53ee8cc1Swenshuai.xi YPPUSH_BADARGS = -7, /* Request arguments bad */ 313*53ee8cc1Swenshuai.xi #define YPPUSH_BADARGS YPPUSH_BADARGS 314*53ee8cc1Swenshuai.xi YPPUSH_DBM = -8, /* Local dbm operation failed */ 315*53ee8cc1Swenshuai.xi #define YPPUSH_DBM YPPUSH_DBM 316*53ee8cc1Swenshuai.xi YPPUSH_FILE = -9, /* Local file I/O operation failed */ 317*53ee8cc1Swenshuai.xi #define YPPUSH_FILE YPPUSH_FILE 318*53ee8cc1Swenshuai.xi YPPUSH_SKEW = -10, /* Map version skew during transfer */ 319*53ee8cc1Swenshuai.xi #define YPPUSH_SKEW YPPUSH_SKEW 320*53ee8cc1Swenshuai.xi YPPUSH_CLEAR = -11, /* Can't send "Clear" req to local ypserv */ 321*53ee8cc1Swenshuai.xi #define YPPUSH_CLEAR YPPUSH_CLEAR 322*53ee8cc1Swenshuai.xi YPPUSH_FORCE = -12, /* No local order number in map - use -f flag*/ 323*53ee8cc1Swenshuai.xi #define YPPUSH_FORCE YPPUSH_FORCE 324*53ee8cc1Swenshuai.xi YPPUSH_XFRERR = -13, /* ypxfr error */ 325*53ee8cc1Swenshuai.xi #define YPPUSH_XFRERR YPPUSH_XFRERR 326*53ee8cc1Swenshuai.xi YPPUSH_REFUSED = -14, /* Transfer request refused by ypserv */ 327*53ee8cc1Swenshuai.xi #define YPPUSH_REFUSED YPPUSH_REFUSED 328*53ee8cc1Swenshuai.xi YPPUSH_NOALIAS = -15 /* Alias not found for map or domain */ 329*53ee8cc1Swenshuai.xi #define YPPUSH_NOALIAS YPPUSH_NOALIAS 330*53ee8cc1Swenshuai.xi }; 331*53ee8cc1Swenshuai.xi typedef enum yppush_status yppush_status; 332*53ee8cc1Swenshuai.xi 333*53ee8cc1Swenshuai.xi struct yppushresp_xfr { 334*53ee8cc1Swenshuai.xi u_int transid; 335*53ee8cc1Swenshuai.xi yppush_status status; 336*53ee8cc1Swenshuai.xi }; 337*53ee8cc1Swenshuai.xi 338*53ee8cc1Swenshuai.xi struct ypresp_all { 339*53ee8cc1Swenshuai.xi bool_t more; 340*53ee8cc1Swenshuai.xi union { 341*53ee8cc1Swenshuai.xi struct ypresp_key_val val; 342*53ee8cc1Swenshuai.xi } ypresp_all_u; 343*53ee8cc1Swenshuai.xi }; 344*53ee8cc1Swenshuai.xi 345*53ee8cc1Swenshuai.xi extern bool_t xdr_ypreq_key (XDR *__xdrs, struct ypreq_key * __objp); 346*53ee8cc1Swenshuai.xi extern bool_t xdr_ypreq_nokey (XDR *__xdrs, struct ypreq_nokey * __objp); 347*53ee8cc1Swenshuai.xi extern bool_t xdr_ypreq_xfr (XDR *__xdrs, struct ypreq_xfr * __objp); 348*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_val (XDR *__xdrs, struct ypresp_val * __objp); 349*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_key_val (XDR *__xdrs, struct ypresp_key_val * __objp); 350*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_resp (XDR *__xdrs, struct ypbind_resp * __objp); 351*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_setdom (XDR *__xdrs, struct ypbind_setdom * __objp); 352*53ee8cc1Swenshuai.xi extern bool_t xdr_ypmap_parms (XDR *__xdrs, struct ypmap_parms * __objp); 353*53ee8cc1Swenshuai.xi extern bool_t xdr_yppushresp_xfr (XDR *__xdrs, struct yppushresp_xfr * __objp); 354*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_order (XDR *__xdrs, struct ypresp_order * __objp); 355*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_master (XDR *__xdrs, struct ypresp_master * __objp); 356*53ee8cc1Swenshuai.xi extern bool_t xdr_ypall (XDR *__xdrs, struct ypall_callback * __objp); 357*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_maplist (XDR *__xdrs, struct ypresp_maplist * __objp); 358*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_binding (XDR *__xdrs, struct ypbind_binding * __objp); 359*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_resptype (XDR *__xdrs, enum ypbind_resptype * __objp); 360*53ee8cc1Swenshuai.xi extern bool_t xdr_ypstat (XDR *__xdrs, enum ypbind_resptype * __objp); 361*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_all (XDR *__xdrs, struct ypresp_all * __objp); 362*53ee8cc1Swenshuai.xi extern bool_t xdr_domainname (XDR *__xdrs, char ** __objp); 363*53ee8cc1Swenshuai.xi 364*53ee8cc1Swenshuai.xi __END_DECLS 365*53ee8cc1Swenshuai.xi 366*53ee8cc1Swenshuai.xi #endif /* _RPCSVC_YP_PROT_H */ 367