yp.x revision 1832
11832Swollman/* 21832Swollman * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 31832Swollman * unrestricted use provided that this legend is included on all tape 41832Swollman * media and as a part of the software program in whole or part. Users 51832Swollman * may copy or modify Sun RPC without charge, but are not authorized 61832Swollman * to license or distribute it to anyone else except as part of a product or 71832Swollman * program developed by the user. 81832Swollman * 91832Swollman * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE 101832Swollman * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR 111832Swollman * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. 121832Swollman * 131832Swollman * Sun RPC is provided with no support and without any obligation on the 141832Swollman * part of Sun Microsystems, Inc. to assist in its use, correction, 151832Swollman * modification or enhancement. 161832Swollman * 171832Swollman * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE 181832Swollman * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC 191832Swollman * OR ANY PART THEREOF. 201832Swollman * 211832Swollman * In no event will Sun Microsystems, Inc. be liable for any lost revenue 221832Swollman * or profits or other special, indirect and consequential damages, even if 231832Swollman * Sun has been advised of the possibility of such damages. 241832Swollman * 251832Swollman * Sun Microsystems, Inc. 261832Swollman * 2550 Garcia Avenue 271832Swollman * Mountain View, California 94043 281832Swollman */ 291832Swollman 301832Swollman/* 311832Swollman * Protocol description file for the Yellow Pages Service 321832Swollman */ 331832Swollman 341832Swollman#ifndef RPC_HDR 351832Swollman%#ifndef lint 361832Swollman%/*static char sccsid[] = "from: @(#)yp.x 2.1 88/08/01 4.0 RPCSRC";*/ 371832Swollman%static char rcsid[] = "$Id: yp.x,v 1.1 1993/09/14 17:42:53 jtc Exp $"; 381832Swollman%#endif /* not lint */ 391832Swollman#endif 401832Swollman 411832Swollmanconst YPMAXRECORD = 1024; 421832Swollmanconst YPMAXDOMAIN = 64; 431832Swollmanconst YPMAXMAP = 64; 441832Swollmanconst YPMAXPEER = 64; 451832Swollman 461832Swollman 471832Swollmanenum ypstat { 481832Swollman YP_TRUE = 1, 491832Swollman YP_NOMORE = 2, 501832Swollman YP_FALSE = 0, 511832Swollman YP_NOMAP = -1, 521832Swollman YP_NODOM = -2, 531832Swollman YP_NOKEY = -3, 541832Swollman YP_BADOP = -4, 551832Swollman YP_BADDB = -5, 561832Swollman YP_YPERR = -6, 571832Swollman YP_BADARGS = -7, 581832Swollman YP_VERS = -8 591832Swollman}; 601832Swollman 611832Swollman 621832Swollmanenum ypxfrstat { 631832Swollman YPXFR_SUCC = 1, 641832Swollman YPXFR_AGE = 2, 651832Swollman YPXFR_NOMAP = -1, 661832Swollman YPXFR_NODOM = -2, 671832Swollman YPXFR_RSRC = -3, 681832Swollman YPXFR_RPC = -4, 691832Swollman YPXFR_MADDR = -5, 701832Swollman YPXFR_YPERR = -6, 711832Swollman YPXFR_BADARGS = -7, 721832Swollman YPXFR_DBM = -8, 731832Swollman YPXFR_FILE = -9, 741832Swollman YPXFR_SKEW = -10, 751832Swollman YPXFR_CLEAR = -11, 761832Swollman YPXFR_FORCE = -12, 771832Swollman YPXFR_XFRERR = -13, 781832Swollman YPXFR_REFUSED = -14 791832Swollman}; 801832Swollman 811832Swollman 821832Swollmantypedef string domainname<YPMAXDOMAIN>; 831832Swollmantypedef string mapname<YPMAXMAP>; 841832Swollmantypedef string peername<YPMAXPEER>; 851832Swollmantypedef opaque keydat<YPMAXRECORD>; 861832Swollmantypedef opaque valdat<YPMAXRECORD>; 871832Swollman 881832Swollman 891832Swollmanstruct ypmap_parms { 901832Swollman domainname domain; 911832Swollman mapname map; 921832Swollman unsigned int ordernum; 931832Swollman peername peer; 941832Swollman}; 951832Swollman 961832Swollmanstruct ypreq_key { 971832Swollman domainname domain; 981832Swollman mapname map; 991832Swollman keydat key; 1001832Swollman}; 1011832Swollman 1021832Swollmanstruct ypreq_nokey { 1031832Swollman domainname domain; 1041832Swollman mapname map; 1051832Swollman}; 1061832Swollman 1071832Swollmanstruct ypreq_xfr { 1081832Swollman ypmap_parms map_parms; 1091832Swollman unsigned int transid; 1101832Swollman unsigned int prog; 1111832Swollman unsigned int port; 1121832Swollman}; 1131832Swollman 1141832Swollman 1151832Swollmanstruct ypresp_val { 1161832Swollman ypstat stat; 1171832Swollman valdat val; 1181832Swollman}; 1191832Swollman 1201832Swollmanstruct ypresp_key_val { 1211832Swollman ypstat stat; 1221832Swollman keydat key; 1231832Swollman valdat val; 1241832Swollman}; 1251832Swollman 1261832Swollman 1271832Swollmanstruct ypresp_master { 1281832Swollman ypstat stat; 1291832Swollman peername peer; 1301832Swollman}; 1311832Swollman 1321832Swollmanstruct ypresp_order { 1331832Swollman ypstat stat; 1341832Swollman unsigned int ordernum; 1351832Swollman}; 1361832Swollman 1371832Swollmanunion ypresp_all switch (bool more) { 1381832Swollmancase TRUE: 1391832Swollman ypresp_key_val val; 1401832Swollmancase FALSE: 1411832Swollman void; 1421832Swollman}; 1431832Swollman 1441832Swollmanstruct ypresp_xfr { 1451832Swollman unsigned int transid; 1461832Swollman ypxfrstat xfrstat; 1471832Swollman}; 1481832Swollman 1491832Swollmanstruct ypmaplist { 1501832Swollman mapname map; 1511832Swollman ypmaplist *next; 1521832Swollman}; 1531832Swollman 1541832Swollmanstruct ypresp_maplist { 1551832Swollman ypstat stat; 1561832Swollman ypmaplist *maps; 1571832Swollman}; 1581832Swollman 1591832Swollmanenum yppush_status { 1601832Swollman YPPUSH_SUCC = 1, /* Success */ 1611832Swollman YPPUSH_AGE = 2, /* Master's version not newer */ 1621832Swollman YPPUSH_NOMAP = -1, /* Can't find server for map */ 1631832Swollman YPPUSH_NODOM = -2, /* Domain not supported */ 1641832Swollman YPPUSH_RSRC = -3, /* Local resource alloc failure */ 1651832Swollman YPPUSH_RPC = -4, /* RPC failure talking to server */ 1661832Swollman YPPUSH_MADDR = -5, /* Can't get master address */ 1671832Swollman YPPUSH_YPERR = -6, /* YP server/map db error */ 1681832Swollman YPPUSH_BADARGS = -7, /* Request arguments bad */ 1691832Swollman YPPUSH_DBM = -8, /* Local dbm operation failed */ 1701832Swollman YPPUSH_FILE = -9, /* Local file I/O operation failed */ 1711832Swollman YPPUSH_SKEW = -10, /* Map version skew during transfer */ 1721832Swollman YPPUSH_CLEAR = -11, /* Can't send "Clear" req to local ypserv */ 1731832Swollman YPPUSH_FORCE = -12, /* No local order number in map use -f flag. */ 1741832Swollman YPPUSH_XFRERR = -13, /* ypxfr error */ 1751832Swollman YPPUSH_REFUSED = -14 /* Transfer request refused by ypserv */ 1761832Swollman}; 1771832Swollman 1781832Swollmanstruct yppushresp_xfr { 1791832Swollman unsigned transid; 1801832Swollman yppush_status status; 1811832Swollman}; 1821832Swollman 1831832Swollman/* 1841832Swollman * Response structure and overall result status codes. Success and failure 1851832Swollman * represent two separate response message types. 1861832Swollman */ 1871832Swollman 1881832Swollmanenum ypbind_resptype { 1891832Swollman YPBIND_SUCC_VAL = 1, 1901832Swollman YPBIND_FAIL_VAL = 2 1911832Swollman}; 1921832Swollman 1931832Swollmanstruct ypbind_binding { 1941832Swollman opaque ypbind_binding_addr[4]; /* In network order */ 1951832Swollman opaque ypbind_binding_port[2]; /* In network order */ 1961832Swollman}; 1971832Swollman 1981832Swollmanunion ypbind_resp switch (ypbind_resptype ypbind_status) { 1991832Swollmancase YPBIND_FAIL_VAL: 2001832Swollman unsigned ypbind_error; 2011832Swollmancase YPBIND_SUCC_VAL: 2021832Swollman ypbind_binding ypbind_bindinfo; 2031832Swollman}; 2041832Swollman 2051832Swollman/* Detailed failure reason codes for response field ypbind_error*/ 2061832Swollman 2071832Swollmanconst YPBIND_ERR_ERR = 1; /* Internal error */ 2081832Swollmanconst YPBIND_ERR_NOSERV = 2; /* No bound server for passed domain */ 2091832Swollmanconst YPBIND_ERR_RESC = 3; /* System resource allocation failure */ 2101832Swollman 2111832Swollman 2121832Swollman/* 2131832Swollman * Request data structure for ypbind "Set domain" procedure. 2141832Swollman */ 2151832Swollmanstruct ypbind_setdom { 2161832Swollman domainname ypsetdom_domain; 2171832Swollman ypbind_binding ypsetdom_binding; 2181832Swollman unsigned ypsetdom_vers; 2191832Swollman}; 2201832Swollman 2211832Swollman 2221832Swollman/* 2231832Swollman * YP access protocol 2241832Swollman */ 2251832Swollmanprogram YPPROG { 2261832Swollman version YPVERS { 2271832Swollman void 2281832Swollman YPPROC_NULL(void) = 0; 2291832Swollman 2301832Swollman bool 2311832Swollman YPPROC_DOMAIN(domainname) = 1; 2321832Swollman 2331832Swollman bool 2341832Swollman YPPROC_DOMAIN_NONACK(domainname) = 2; 2351832Swollman 2361832Swollman ypresp_val 2371832Swollman YPPROC_MATCH(ypreq_key) = 3; 2381832Swollman 2391832Swollman ypresp_key_val 2401832Swollman YPPROC_FIRST(ypreq_key) = 4; 2411832Swollman 2421832Swollman ypresp_key_val 2431832Swollman YPPROC_NEXT(ypreq_key) = 5; 2441832Swollman 2451832Swollman ypresp_xfr 2461832Swollman YPPROC_XFR(ypreq_xfr) = 6; 2471832Swollman 2481832Swollman void 2491832Swollman YPPROC_CLEAR(void) = 7; 2501832Swollman 2511832Swollman ypresp_all 2521832Swollman YPPROC_ALL(ypreq_nokey) = 8; 2531832Swollman 2541832Swollman ypresp_master 2551832Swollman YPPROC_MASTER(ypreq_nokey) = 9; 2561832Swollman 2571832Swollman ypresp_order 2581832Swollman YPPROC_ORDER(ypreq_nokey) = 10; 2591832Swollman 2601832Swollman ypresp_maplist 2611832Swollman YPPROC_MAPLIST(domainname) = 11; 2621832Swollman } = 2; 2631832Swollman} = 100004; 2641832Swollman 2651832Swollman 2661832Swollman/* 2671832Swollman * YPPUSHPROC_XFRRESP is the callback routine for result of YPPROC_XFR 2681832Swollman */ 2691832Swollmanprogram YPPUSH_XFRRESPPROG { 2701832Swollman version YPPUSH_XFRRESPVERS { 2711832Swollman void 2721832Swollman YPPUSHPROC_NULL(void) = 0; 2731832Swollman 2741832Swollman yppushresp_xfr 2751832Swollman YPPUSHPROC_XFRRESP(void) = 1; 2761832Swollman } = 1; 2771832Swollman} = 0x40000000; /* transient: could be anything up to 0x5fffffff */ 2781832Swollman 2791832Swollman 2801832Swollman/* 2811832Swollman * YP binding protocol 2821832Swollman */ 2831832Swollmanprogram YPBINDPROG { 2841832Swollman version YPBINDVERS { 2851832Swollman void 2861832Swollman YPBINDPROC_NULL(void) = 0; 2871832Swollman 2881832Swollman ypbind_resp 2891832Swollman YPBINDPROC_DOMAIN(domainname) = 1; 2901832Swollman 2911832Swollman void 2921832Swollman YPBINDPROC_SETDOM(ypbind_setdom) = 2; 2931832Swollman } = 2; 2941832Swollman} = 100007; 2951832Swollman 2961832Swollman 297