/* * Copyright (c) 2003 Mats O Jansson <moj@stacken.kth.se> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * YP v1 access protocol * * Created by looking at ypv1_prot.h on AIX 5.1 * */ #ifdef RPC_HDR %#include <rpcsvc/yp.h> #endif enum ypreqtype { YPREQ_KEY = 1, YPREQ_NOKEY = 2, YPREQ_MAP_PARMS = 3 }; enum ypresptype { YPRESP_VAL = 1, YPRESP_KEY_VAL = 2, YPRESP_MAP_PARMS = 3 }; union yprequest switch (ypreqtype yp_reqtype) { case YPREQ_KEY: ypreq_key yp_req_keytype; case YPREQ_NOKEY: ypreq_nokey yp_req_nokeytype; case YPREQ_MAP_PARMS: ypmap_parms yp_req_map_parmstype; }; union ypresponse switch (ypresptype yp_resptype) { case YPRESP_VAL: ypresp_val yp_resp_valtype; case YPRESP_KEY_VAL: ypresp_key_val yp_resp_key_valtype; case YPRESP_MAP_PARMS: ypmap_parms yp_resp_map_parmstype; }; program YPPROG { version YPOLDVERS { void YPOLDPROC_NULL(void) = 0; bool_t YPOLDPROC_DOMAIN(domainname) = 1; bool_t YPOLDPROC_DOMAIN_NONACK(domainname) = 2; ypresponse YPOLDPROC_MATCH(yprequest) = 3; ypresponse YPOLDPROC_FIRST(yprequest) = 4; ypresponse YPOLDPROC_NEXT(yprequest) = 5; ypresponse YPOLDPROC_POLL(yprequest) = 6; void YPOLDPROC_PUSH(yprequest) = 7; void YPOLDPROC_PULL(yprequest) = 8; void YPOLDPROC_GET(yprequest) = 9; } = 1; } = 100004; #ifdef RPC_HDR %#define YPMATCH_REQTYPE YPREQ_KEY %#define ypmatch_req_domain yprequest_u.yp_req_keytype.domain %#define ypmatch_req_map yprequest_u.yp_req_keytype.map %#define ypmatch_req_keydat yprequest_u.yp_req_keytype.key %#define ypmatch_req_keyptr yprequest_u.yp_req_keytype.key.keydat_val %#define ypmatch_req_keysize yprequest_u.yp_req_keytype.key.keydat_len % %#define YPMATCH_RESPTYPE YPRESP_VAL %#define ypmatch_resp_status ypresponse_u.yp_resp_valtype.stat %#define ypmatch_resp_val ypresponse_u.yp_resp_valtype %#define ypmatch_resp_valdat ypresponse_u.yp_resp_valtype.val %#define ypmatch_resp_valptr ypresponse_u.yp_resp_valtype.val.valdat_val %#define ypmatch_resp_valsize ypresponse_u.yp_resp_valtype.val.valdat_len % %#define YPFIRST_REQTYPE YPREQ_NOKEY %#define ypfirst_req_domain yprequest_u.yp_req_nokeytype.domain %#define ypfirst_req_map yprequest_u.yp_req_nokeytype.map % %#define YPFIRST_RESPTYPE YPRESP_KEY_VAL %#define ypfirst_resp_status ypresponse_u.yp_resp_key_valtype.stat %#define ypfirst_resp_keydat ypresponse_u.yp_resp_key_valtype.key %#define ypfirst_resp_keyptr ypresponse_u.yp_resp_key_valtype.key.keydat_val %#define ypfirst_resp_keysize ypresponse_u.yp_resp_key_valtype.key.keydat_len %#define ypfirst_resp_val ypresponse_u.yp_resp_key_valtype %#define ypfirst_resp_valdat ypresponse_u.yp_resp_key_valtype.val %#define ypfirst_resp_valptr ypresponse_u.yp_resp_key_valtype.val.valdat_val %#define ypfirst_resp_valsize ypresponse_u.yp_resp_key_valtype.val.valdat_len % %#define YPNEXT_REQTYPE YPREQ_KEY %#define ypnext_req_domain yprequest_u.yp_req_keytype.domain %#define ypnext_req_map yprequest_u.yp_req_keytype.map %#define ypnext_req_keydat yprequest_u.yp_req_keytype.key %#define ypnext_req_keyptr yprequest_u.yp_req_keytype.key.keydat_val %#define ypnext_req_keysize yprequest_u.yp_req_keytype.key.keydat_len % %#define YPNEXT_RESPTYPE YPRESP_KEY_VAL %#define ypnext_resp_status ypresponse_u.yp_resp_key_valtype.stat %#define ypnext_resp_keydat ypresponse_u.yp_resp_key_valtype.key %#define ypnext_resp_keyptr ypresponse_u.yp_resp_key_valtype.key.keydat_val %#define ypnext_resp_keysize ypresponse_u.yp_resp_key_valtype.key.keydat_len %#define ypnext_resp_val ypresponse_u.yp_resp_key_valtype %#define ypnext_resp_valdat ypresponse_u.yp_resp_key_valtype.val %#define ypnext_resp_valptr ypresponse_u.yp_resp_key_valtype.val.valdat_val %#define ypnext_resp_valsize ypresponse_u.yp_resp_key_valtype.val.valdat_len % %#define YPPUSH_REQTYPE YPREQ_NOKEY %#define yppush_req_domain yprequest_u.yp_req_nokeytype.domain %#define yppush_req_map yprequest_u.yp_req_nokeytype.map % %#define YPPULL_REQTYPE YPREQ_NOKEY %#define yppull_req_domain yprequest_u.yp_req_nokeytype.domain %#define yppull_req_map yprequest_u.yp_req_nokeytype.map % %#define YPPOLL_REQTYPE YPREQ_NOKEY %#define yppoll_req_domain yprequest_u.yp_req_nokeytype.domain %#define yppoll_req_map yprequest_u.yp_req_nokeytype.map % %#define YPPOLL_RESPTYPE YPRESP_MAP_PARMS %#define yppoll_resp_domain ypresponse_u.yp_resp_map_parmstype.domain %#define yppoll_resp_map ypresponse_u.yp_resp_map_parmstype.map %#define yppoll_resp_ordernum ypresponse_u.yp_resp_map_parmstype.ordernum %#define yppoll_resp_owner ypresponse_u.yp_resp_map_parmstype.peer % %#define YPGET_REQTYPE YPREQ_MAP_PARMS %#define ypget_req_domain yprequest_u.yp_req_map_parmstype.domain %#define ypget_req_map yprequest_u.yp_req_map_parmstype.map %#define ypget_req_ordernum yprequest_u.yp_req_map_parmstype.ordernum %#define ypget_req_owner yprequest_u.yp_req_map_parmstype.peer #endif