File indexing completed on 2025-01-18 10:12:37
0001
0002
0003
0004
0005
0006 #ifndef __RPCSVC_YP_H__
0007 #define __RPCSVC_YP_H__
0008
0009 #include <rpc/rpc.h>
0010
0011 #define YPMAXRECORD 1024
0012 #define YPMAXDOMAIN 256
0013 #define YPMAXMAP 64
0014 #define YPMAXPEER 64
0015
0016 enum ypstat {
0017 YP_TRUE = 1,
0018 YP_NOMORE = 2,
0019 YP_FALSE = 0,
0020 YP_NOMAP = -1,
0021 YP_NODOM = -2,
0022 YP_NOKEY = -3,
0023 YP_BADOP = -4,
0024 YP_BADDB = -5,
0025 YP_YPERR = -6,
0026 YP_BADARGS = -7,
0027 YP_VERS = -8,
0028 };
0029 typedef enum ypstat ypstat;
0030
0031 enum ypxfrstat {
0032 YPXFR_SUCC = 1,
0033 YPXFR_AGE = 2,
0034 YPXFR_NOMAP = -1,
0035 YPXFR_NODOM = -2,
0036 YPXFR_RSRC = -3,
0037 YPXFR_RPC = -4,
0038 YPXFR_MADDR = -5,
0039 YPXFR_YPERR = -6,
0040 YPXFR_BADARGS = -7,
0041 YPXFR_DBM = -8,
0042 YPXFR_FILE = -9,
0043 YPXFR_SKEW = -10,
0044 YPXFR_CLEAR = -11,
0045 YPXFR_FORCE = -12,
0046 YPXFR_XFRERR = -13,
0047 YPXFR_REFUSED = -14,
0048 };
0049 typedef enum ypxfrstat ypxfrstat;
0050
0051 typedef char *domainname;
0052 typedef char *mapname;
0053 typedef char *peername;
0054
0055 typedef struct {
0056 u_int keydat_len;
0057 char *keydat_val;
0058 } keydat;
0059
0060 typedef struct {
0061 u_int valdat_len;
0062 char *valdat_val;
0063 } valdat;
0064
0065 struct ypmap_parms {
0066 domainname domain;
0067 mapname map;
0068 u_int ordernum;
0069 peername peer;
0070 };
0071 typedef struct ypmap_parms ypmap_parms;
0072
0073 struct ypreq_key {
0074 domainname domain;
0075 mapname map;
0076 keydat key;
0077 };
0078 typedef struct ypreq_key ypreq_key;
0079
0080 struct ypreq_nokey {
0081 domainname domain;
0082 mapname map;
0083 };
0084 typedef struct ypreq_nokey ypreq_nokey;
0085
0086 struct ypreq_xfr {
0087 ypmap_parms map_parms;
0088 u_int transid;
0089 u_int prog;
0090 u_int port;
0091 };
0092 typedef struct ypreq_xfr ypreq_xfr;
0093
0094 struct ypresp_val {
0095 ypstat stat;
0096 valdat val;
0097 };
0098 typedef struct ypresp_val ypresp_val;
0099
0100 struct ypresp_key_val {
0101 ypstat stat;
0102 valdat val;
0103 keydat key;
0104 };
0105 typedef struct ypresp_key_val ypresp_key_val;
0106
0107 struct ypresp_master {
0108 ypstat stat;
0109 peername peer;
0110 };
0111 typedef struct ypresp_master ypresp_master;
0112
0113 struct ypresp_order {
0114 ypstat stat;
0115 u_int ordernum;
0116 };
0117 typedef struct ypresp_order ypresp_order;
0118
0119 struct ypresp_all {
0120 bool_t more;
0121 union {
0122 ypresp_key_val val;
0123 } ypresp_all_u;
0124 };
0125 typedef struct ypresp_all ypresp_all;
0126
0127 struct ypresp_xfr {
0128 u_int transid;
0129 ypxfrstat xfrstat;
0130 };
0131 typedef struct ypresp_xfr ypresp_xfr;
0132
0133 struct ypmaplist {
0134 mapname map;
0135 struct ypmaplist *next;
0136 };
0137 typedef struct ypmaplist ypmaplist;
0138
0139 struct ypresp_maplist {
0140 ypstat stat;
0141 ypmaplist *maps;
0142 };
0143 typedef struct ypresp_maplist ypresp_maplist;
0144
0145 enum yppush_status {
0146 YPPUSH_SUCC = 1,
0147 YPPUSH_AGE = 2,
0148 YPPUSH_NOMAP = -1,
0149 YPPUSH_NODOM = -2,
0150 YPPUSH_RSRC = -3,
0151 YPPUSH_RPC = -4,
0152 YPPUSH_MADDR = -5,
0153 YPPUSH_YPERR = -6,
0154 YPPUSH_BADARGS = -7,
0155 YPPUSH_DBM = -8,
0156 YPPUSH_FILE = -9,
0157 YPPUSH_SKEW = -10,
0158 YPPUSH_CLEAR = -11,
0159 YPPUSH_FORCE = -12,
0160 YPPUSH_XFRERR = -13,
0161 YPPUSH_REFUSED = -14,
0162 };
0163 typedef enum yppush_status yppush_status;
0164
0165 struct yppushresp_xfr {
0166 u_int transid;
0167 yppush_status status;
0168 };
0169 typedef struct yppushresp_xfr yppushresp_xfr;
0170
0171 enum ypbind_resptype {
0172 YPBIND_SUCC_VAL = 1,
0173 YPBIND_FAIL_VAL = 2,
0174 };
0175 typedef enum ypbind_resptype ypbind_resptype;
0176
0177 struct ypbind_binding {
0178 char ypbind_binding_addr[4];
0179 char ypbind_binding_port[2];
0180 };
0181 typedef struct ypbind_binding ypbind_binding;
0182
0183 struct ypbind_resp {
0184 ypbind_resptype ypbind_status;
0185 union {
0186 u_int ypbind_error;
0187 ypbind_binding ypbind_bindinfo;
0188 } ypbind_resp_u;
0189 };
0190 typedef struct ypbind_resp ypbind_resp;
0191
0192 #define YPBIND_ERR_ERR 1
0193 #define YPBIND_ERR_NOSERV 2
0194 #define YPBIND_ERR_RESC 3
0195
0196 struct ypbind_setdom {
0197 domainname ypsetdom_domain;
0198 ypbind_binding ypsetdom_binding;
0199 u_int ypsetdom_vers;
0200 };
0201 typedef struct ypbind_setdom ypbind_setdom;
0202
0203 #define YPPROG 100004
0204 #define YPVERS 2
0205
0206 #ifdef __cplusplus
0207 extern "C" {
0208 #endif
0209
0210 #define YPPROC_NULL 0
0211 extern void * ypproc_null_2(void *, CLIENT *);
0212 extern void * ypproc_null_2_svc(void *, struct svc_req *);
0213 #define YPPROC_DOMAIN 1
0214 extern bool_t * ypproc_domain_2(domainname *, CLIENT *);
0215 extern bool_t * ypproc_domain_2_svc(domainname *, struct svc_req *);
0216 #define YPPROC_DOMAIN_NONACK 2
0217 extern bool_t * ypproc_domain_nonack_2(domainname *, CLIENT *);
0218 extern bool_t * ypproc_domain_nonack_2_svc(domainname *, struct svc_req *);
0219 #define YPPROC_MATCH 3
0220 extern ypresp_val * ypproc_match_2(ypreq_key *, CLIENT *);
0221 extern ypresp_val * ypproc_match_2_svc(ypreq_key *, struct svc_req *);
0222 #define YPPROC_FIRST 4
0223 extern ypresp_key_val * ypproc_first_2(ypreq_key *, CLIENT *);
0224 extern ypresp_key_val * ypproc_first_2_svc(ypreq_key *, struct svc_req *);
0225 #define YPPROC_NEXT 5
0226 extern ypresp_key_val * ypproc_next_2(ypreq_key *, CLIENT *);
0227 extern ypresp_key_val * ypproc_next_2_svc(ypreq_key *, struct svc_req *);
0228 #define YPPROC_XFR 6
0229 extern ypresp_xfr * ypproc_xfr_2(ypreq_xfr *, CLIENT *);
0230 extern ypresp_xfr * ypproc_xfr_2_svc(ypreq_xfr *, struct svc_req *);
0231 #define YPPROC_CLEAR 7
0232 extern void * ypproc_clear_2(void *, CLIENT *);
0233 extern void * ypproc_clear_2_svc(void *, struct svc_req *);
0234 #define YPPROC_ALL 8
0235 extern ypresp_all * ypproc_all_2(ypreq_nokey *, CLIENT *);
0236 extern ypresp_all * ypproc_all_2_svc(ypreq_nokey *, struct svc_req *);
0237 #define YPPROC_MASTER 9
0238 extern ypresp_master * ypproc_master_2(ypreq_nokey *, CLIENT *);
0239 extern ypresp_master * ypproc_master_2_svc(ypreq_nokey *, struct svc_req *);
0240 #define YPPROC_ORDER 10
0241 extern ypresp_order * ypproc_order_2(ypreq_nokey *, CLIENT *);
0242 extern ypresp_order * ypproc_order_2_svc(ypreq_nokey *, struct svc_req *);
0243 #define YPPROC_MAPLIST 11
0244 extern ypresp_maplist * ypproc_maplist_2(domainname *, CLIENT *);
0245 extern ypresp_maplist * ypproc_maplist_2_svc(domainname *, struct svc_req *);
0246 extern int ypprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
0247
0248 #define YPPUSH_XFRRESPPROG 0x40000000
0249 #define YPPUSH_XFRRESPVERS 1
0250
0251 #define YPPUSHPROC_NULL 0
0252 extern void * yppushproc_null_1(void *, CLIENT *);
0253 extern void * yppushproc_null_1_svc(void *, struct svc_req *);
0254 #define YPPUSHPROC_XFRRESP 1
0255 extern void * yppushproc_xfrresp_1(yppushresp_xfr *, CLIENT *);
0256 extern void * yppushproc_xfrresp_1_svc(yppushresp_xfr *, struct svc_req *);
0257 extern int yppush_xfrrespprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
0258
0259 #define YPBINDPROG 100007
0260 #define YPBINDVERS 2
0261
0262 #define YPBINDPROC_NULL 0
0263 extern void * ypbindproc_null_2(void *, CLIENT *);
0264 extern void * ypbindproc_null_2_svc(void *, struct svc_req *);
0265 #define YPBINDPROC_DOMAIN 1
0266 extern ypbind_resp * ypbindproc_domain_2(domainname *, CLIENT *);
0267 extern ypbind_resp * ypbindproc_domain_2_svc(domainname *, struct svc_req *);
0268 #define YPBINDPROC_SETDOM 2
0269 extern void * ypbindproc_setdom_2(ypbind_setdom *, CLIENT *);
0270 extern void * ypbindproc_setdom_2_svc(ypbind_setdom *, struct svc_req *);
0271 extern int ypbindprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
0272
0273
0274 extern bool_t xdr_ypstat (XDR *, ypstat*);
0275 extern bool_t xdr_ypxfrstat (XDR *, ypxfrstat*);
0276 extern bool_t xdr_domainname (XDR *, domainname*);
0277 extern bool_t xdr_mapname (XDR *, mapname*);
0278 extern bool_t xdr_peername (XDR *, peername*);
0279 extern bool_t xdr_keydat (XDR *, keydat*);
0280 extern bool_t xdr_valdat (XDR *, valdat*);
0281 extern bool_t xdr_ypmap_parms (XDR *, ypmap_parms*);
0282 extern bool_t xdr_ypreq_key (XDR *, ypreq_key*);
0283 extern bool_t xdr_ypreq_nokey (XDR *, ypreq_nokey*);
0284 extern bool_t xdr_ypreq_xfr (XDR *, ypreq_xfr*);
0285 extern bool_t xdr_ypresp_val (XDR *, ypresp_val*);
0286 extern bool_t xdr_ypresp_key_val (XDR *, ypresp_key_val*);
0287 extern bool_t xdr_ypresp_master (XDR *, ypresp_master*);
0288 extern bool_t xdr_ypresp_order (XDR *, ypresp_order*);
0289 extern bool_t xdr_ypresp_all (XDR *, ypresp_all*);
0290 extern bool_t xdr_ypresp_xfr (XDR *, ypresp_xfr*);
0291 extern bool_t xdr_ypmaplist (XDR *, ypmaplist*);
0292 extern bool_t xdr_ypresp_maplist (XDR *, ypresp_maplist*);
0293 extern bool_t xdr_yppush_status (XDR *, yppush_status*);
0294 extern bool_t xdr_yppushresp_xfr (XDR *, yppushresp_xfr*);
0295 extern bool_t xdr_ypbind_resptype (XDR *, ypbind_resptype*);
0296 extern bool_t xdr_ypbind_binding (XDR *, ypbind_binding*);
0297 extern bool_t xdr_ypbind_resp (XDR *, ypbind_resp*);
0298 extern bool_t xdr_ypbind_setdom (XDR *, ypbind_setdom*);
0299
0300 #ifdef __cplusplus
0301 }
0302 #endif
0303
0304 #endif