Blame nis/rpcsvc/yp.h

Packit 6c4009
/*
Packit 6c4009
 * Copyright (c) 2010, Oracle America, Inc.
Packit 6c4009
 *
Packit 6c4009
 * Redistribution and use in source and binary forms, with or without
Packit 6c4009
 * modification, are permitted provided that the following conditions are
Packit 6c4009
 * met:
Packit 6c4009
 *
Packit 6c4009
 *     * Redistributions of source code must retain the above copyright
Packit 6c4009
 *       notice, this list of conditions and the following disclaimer.
Packit 6c4009
 *     * Redistributions in binary form must reproduce the above
Packit 6c4009
 *       copyright notice, this list of conditions and the following
Packit 6c4009
 *       disclaimer in the documentation and/or other materials
Packit 6c4009
 *       provided with the distribution.
Packit 6c4009
 *     * Neither the name of the "Oracle America, Inc." nor the names of its
Packit 6c4009
 *       contributors may be used to endorse or promote products derived
Packit 6c4009
 *       from this software without specific prior written permission.
Packit 6c4009
 *
Packit 6c4009
 *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit 6c4009
 *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit 6c4009
 *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
Packit 6c4009
 *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
Packit 6c4009
 *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
Packit 6c4009
 *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit 6c4009
 *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
Packit 6c4009
 *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
Packit 6c4009
 *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
Packit 6c4009
 *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
Packit 6c4009
 *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit 6c4009
 *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit 6c4009
 */
Packit 6c4009
Packit 6c4009
#ifndef __RPCSVC_YP_H__
Packit 6c4009
#define __RPCSVC_YP_H__
Packit 6c4009
Packit 6c4009
#include <features.h>
Packit 6c4009
#include <rpc/rpc.h>
Packit 6c4009
Packit 6c4009
#define YPMAXRECORD 1024
Packit 6c4009
#define YPMAXDOMAIN 64
Packit 6c4009
#define YPMAXMAP 64
Packit 6c4009
#define YPMAXPEER 64
Packit 6c4009
Packit 6c4009
enum ypstat {
Packit 6c4009
	YP_TRUE = 1,
Packit 6c4009
	YP_NOMORE = 2,
Packit 6c4009
	YP_FALSE = 0,
Packit 6c4009
	YP_NOMAP = -1,
Packit 6c4009
	YP_NODOM = -2,
Packit 6c4009
	YP_NOKEY = -3,
Packit 6c4009
	YP_BADOP = -4,
Packit 6c4009
	YP_BADDB = -5,
Packit 6c4009
	YP_YPERR = -6,
Packit 6c4009
	YP_BADARGS = -7,
Packit 6c4009
	YP_VERS = -8,
Packit 6c4009
};
Packit 6c4009
typedef enum ypstat ypstat;
Packit 6c4009
Packit 6c4009
enum ypxfrstat {
Packit 6c4009
	YPXFR_SUCC = 1,
Packit 6c4009
	YPXFR_AGE = 2,
Packit 6c4009
	YPXFR_NOMAP = -1,
Packit 6c4009
	YPXFR_NODOM = -2,
Packit 6c4009
	YPXFR_RSRC = -3,
Packit 6c4009
	YPXFR_RPC = -4,
Packit 6c4009
	YPXFR_MADDR = -5,
Packit 6c4009
	YPXFR_YPERR = -6,
Packit 6c4009
	YPXFR_BADARGS = -7,
Packit 6c4009
	YPXFR_DBM = -8,
Packit 6c4009
	YPXFR_FILE = -9,
Packit 6c4009
	YPXFR_SKEW = -10,
Packit 6c4009
	YPXFR_CLEAR = -11,
Packit 6c4009
	YPXFR_FORCE = -12,
Packit 6c4009
	YPXFR_XFRERR = -13,
Packit 6c4009
	YPXFR_REFUSED = -14,
Packit 6c4009
};
Packit 6c4009
typedef enum ypxfrstat ypxfrstat;
Packit 6c4009
Packit 6c4009
typedef char *domainname;
Packit 6c4009
typedef char *mapname;
Packit 6c4009
typedef char *peername;
Packit 6c4009
Packit 6c4009
typedef struct {
Packit 6c4009
  u_int keydat_len;
Packit 6c4009
  char *keydat_val;
Packit 6c4009
} keydat;
Packit 6c4009
Packit 6c4009
typedef struct {
Packit 6c4009
  u_int valdat_len;
Packit 6c4009
  char *valdat_val;
Packit 6c4009
} valdat;
Packit 6c4009
Packit 6c4009
struct ypmap_parms {
Packit 6c4009
  domainname domain;
Packit 6c4009
  mapname map;
Packit 6c4009
  u_int ordernum;
Packit 6c4009
  peername peer;
Packit 6c4009
};
Packit 6c4009
typedef struct ypmap_parms ypmap_parms;
Packit 6c4009
Packit 6c4009
struct ypreq_key {
Packit 6c4009
  domainname domain;
Packit 6c4009
  mapname map;
Packit 6c4009
  keydat key;
Packit 6c4009
};
Packit 6c4009
typedef struct ypreq_key ypreq_key;
Packit 6c4009
Packit 6c4009
struct ypreq_nokey {
Packit 6c4009
  domainname domain;
Packit 6c4009
  mapname map;
Packit 6c4009
};
Packit 6c4009
typedef struct ypreq_nokey ypreq_nokey;
Packit 6c4009
Packit 6c4009
struct ypreq_xfr {
Packit 6c4009
  ypmap_parms map_parms;
Packit 6c4009
  u_int transid;
Packit 6c4009
  u_int prog;
Packit 6c4009
  u_int port;
Packit 6c4009
};
Packit 6c4009
typedef struct ypreq_xfr ypreq_xfr;
Packit 6c4009
Packit 6c4009
struct ypresp_val {
Packit 6c4009
  ypstat stat;
Packit 6c4009
  valdat val;
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_val ypresp_val;
Packit 6c4009
Packit 6c4009
struct ypresp_key_val {
Packit 6c4009
  ypstat stat;
Packit 6c4009
#ifdef STUPID_SUN_BUG
Packit 6c4009
  /* This is the form as distributed by Sun.  But even the Sun NIS
Packit 6c4009
     servers expect the values in the other order.  So their
Packit 6c4009
     implementation somehow must change the order internally.  We
Packit 6c4009
     don't want to follow this bad example since the user should be
Packit 6c4009
     able to use rpcgen on this file.  */
Packit 6c4009
  keydat key;
Packit 6c4009
  valdat val;
Packit 6c4009
#else
Packit 6c4009
  valdat val;
Packit 6c4009
  keydat key;
Packit 6c4009
#endif
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_key_val ypresp_key_val;
Packit 6c4009
Packit 6c4009
struct ypresp_master {
Packit 6c4009
  ypstat stat;
Packit 6c4009
  peername peer;
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_master ypresp_master;
Packit 6c4009
Packit 6c4009
struct ypresp_order {
Packit 6c4009
  ypstat stat;
Packit 6c4009
  u_int ordernum;
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_order ypresp_order;
Packit 6c4009
Packit 6c4009
struct ypresp_all {
Packit 6c4009
  bool_t more;
Packit 6c4009
  union {
Packit 6c4009
    ypresp_key_val val;
Packit 6c4009
  } ypresp_all_u;
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_all ypresp_all;
Packit 6c4009
Packit 6c4009
struct ypresp_xfr {
Packit 6c4009
  u_int transid;
Packit 6c4009
  ypxfrstat xfrstat;
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_xfr ypresp_xfr;
Packit 6c4009
Packit 6c4009
struct ypmaplist {
Packit 6c4009
  mapname map;
Packit 6c4009
  struct ypmaplist *next;
Packit 6c4009
};
Packit 6c4009
typedef struct ypmaplist ypmaplist;
Packit 6c4009
Packit 6c4009
struct ypresp_maplist {
Packit 6c4009
  ypstat stat;
Packit 6c4009
  ypmaplist *maps;
Packit 6c4009
};
Packit 6c4009
typedef struct ypresp_maplist ypresp_maplist;
Packit 6c4009
Packit 6c4009
enum yppush_status {
Packit 6c4009
  YPPUSH_SUCC = 1,
Packit 6c4009
  YPPUSH_AGE = 2,
Packit 6c4009
  YPPUSH_NOMAP = -1,
Packit 6c4009
  YPPUSH_NODOM = -2,
Packit 6c4009
  YPPUSH_RSRC = -3,
Packit 6c4009
  YPPUSH_RPC = -4,
Packit 6c4009
  YPPUSH_MADDR = -5,
Packit 6c4009
  YPPUSH_YPERR = -6,
Packit 6c4009
  YPPUSH_BADARGS = -7,
Packit 6c4009
  YPPUSH_DBM = -8,
Packit 6c4009
  YPPUSH_FILE = -9,
Packit 6c4009
  YPPUSH_SKEW = -10,
Packit 6c4009
  YPPUSH_CLEAR = -11,
Packit 6c4009
  YPPUSH_FORCE = -12,
Packit 6c4009
  YPPUSH_XFRERR = -13,
Packit 6c4009
  YPPUSH_REFUSED = -14,
Packit 6c4009
};
Packit 6c4009
typedef enum yppush_status yppush_status;
Packit 6c4009
Packit 6c4009
struct yppushresp_xfr {
Packit 6c4009
  u_int transid;
Packit 6c4009
  yppush_status status;
Packit 6c4009
};
Packit 6c4009
typedef struct yppushresp_xfr yppushresp_xfr;
Packit 6c4009
Packit 6c4009
enum ypbind_resptype {
Packit 6c4009
  YPBIND_SUCC_VAL = 1,
Packit 6c4009
  YPBIND_FAIL_VAL = 2,
Packit 6c4009
};
Packit 6c4009
typedef enum ypbind_resptype ypbind_resptype;
Packit 6c4009
Packit 6c4009
struct ypbind_binding {
Packit 6c4009
  char ypbind_binding_addr[4];
Packit 6c4009
  char ypbind_binding_port[2];
Packit 6c4009
};
Packit 6c4009
typedef struct ypbind_binding ypbind_binding;
Packit 6c4009
Packit 6c4009
struct ypbind_resp {
Packit 6c4009
  ypbind_resptype ypbind_status;
Packit 6c4009
  union {
Packit 6c4009
    u_int ypbind_error;
Packit 6c4009
    ypbind_binding ypbind_bindinfo;
Packit 6c4009
  } ypbind_resp_u;
Packit 6c4009
};
Packit 6c4009
typedef struct ypbind_resp ypbind_resp;
Packit 6c4009
Packit 6c4009
#define YPBIND_ERR_ERR 1
Packit 6c4009
#define YPBIND_ERR_NOSERV 2
Packit 6c4009
#define YPBIND_ERR_RESC 3
Packit 6c4009
Packit 6c4009
struct ypbind_setdom {
Packit 6c4009
  domainname ypsetdom_domain;
Packit 6c4009
  ypbind_binding ypsetdom_binding;
Packit 6c4009
  u_int ypsetdom_vers;
Packit 6c4009
};
Packit 6c4009
typedef struct ypbind_setdom ypbind_setdom;
Packit 6c4009
Packit 6c4009
__BEGIN_DECLS
Packit 6c4009
Packit 6c4009
#define YPPROG 100004
Packit 6c4009
#define YPVERS 2
Packit 6c4009
Packit 6c4009
#define YPPROC_NULL 0
Packit 6c4009
extern  void *ypproc_null_2 (void *, CLIENT *);
Packit 6c4009
extern  void *ypproc_null_2_svc (void *, struct svc_req *);
Packit 6c4009
#define YPPROC_DOMAIN 1
Packit 6c4009
extern  bool_t *ypproc_domain_2 (domainname *, CLIENT *);
Packit 6c4009
extern  bool_t *ypproc_domain_2_svc (domainname *, struct svc_req *);
Packit 6c4009
#define YPPROC_DOMAIN_NONACK 2
Packit 6c4009
extern  bool_t *ypproc_domain_nonack_2 (domainname *, CLIENT *);
Packit 6c4009
extern  bool_t *ypproc_domain_nonack_2_svc (domainname *, struct svc_req *);
Packit 6c4009
#define YPPROC_MATCH 3
Packit 6c4009
extern  ypresp_val *ypproc_match_2 (ypreq_key *, CLIENT *);
Packit 6c4009
extern  ypresp_val *ypproc_match_2_svc (ypreq_key *, struct svc_req *);
Packit 6c4009
#define YPPROC_FIRST 4
Packit 6c4009
extern  ypresp_key_val *ypproc_first_2 (ypreq_key *, CLIENT *);
Packit 6c4009
extern  ypresp_key_val *ypproc_first_2_svc (ypreq_key *, struct svc_req *);
Packit 6c4009
#define YPPROC_NEXT 5
Packit 6c4009
extern  ypresp_key_val *ypproc_next_2 (ypreq_key *, CLIENT *);
Packit 6c4009
extern  ypresp_key_val *ypproc_next_2_svc (ypreq_key *, struct svc_req *);
Packit 6c4009
#define YPPROC_XFR 6
Packit 6c4009
extern  ypresp_xfr *ypproc_xfr_2 (ypreq_xfr *, CLIENT *);
Packit 6c4009
extern  ypresp_xfr *ypproc_xfr_2_svc (ypreq_xfr *, struct svc_req *);
Packit 6c4009
#define YPPROC_CLEAR 7
Packit 6c4009
extern  void *ypproc_clear_2 (void *, CLIENT *);
Packit 6c4009
extern  void *ypproc_clear_2_svc (void *, struct svc_req *);
Packit 6c4009
#define YPPROC_ALL 8
Packit 6c4009
extern  ypresp_all *ypproc_all_2 (ypreq_nokey *, CLIENT *);
Packit 6c4009
extern  ypresp_all *ypproc_all_2_svc (ypreq_nokey *, struct svc_req *);
Packit 6c4009
#define YPPROC_MASTER 9
Packit 6c4009
extern  ypresp_master *ypproc_master_2 (ypreq_nokey *, CLIENT *);
Packit 6c4009
extern  ypresp_master *ypproc_master_2_svc (ypreq_nokey *, struct svc_req *);
Packit 6c4009
#define YPPROC_ORDER 10
Packit 6c4009
extern  ypresp_order *ypproc_order_2 (ypreq_nokey *, CLIENT *);
Packit 6c4009
extern  ypresp_order *ypproc_order_2_svc (ypreq_nokey *, struct svc_req *);
Packit 6c4009
#define YPPROC_MAPLIST 11
Packit 6c4009
extern  ypresp_maplist *ypproc_maplist_2 (domainname *, CLIENT *);
Packit 6c4009
extern  ypresp_maplist *ypproc_maplist_2_svc (domainname *, struct svc_req *);
Packit 6c4009
extern int ypprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
Packit 6c4009
Packit 6c4009
Packit 6c4009
#define YPPUSH_XFRRESPPROG (0x40000000)
Packit 6c4009
#define YPPUSH_XFRRESPVERS 1
Packit 6c4009
Packit 6c4009
#define YPPUSHPROC_NULL 0
Packit 6c4009
extern  void *yppushproc_null_1 (void *, CLIENT *);
Packit 6c4009
extern  void *yppushproc_null_1_svc (void *, struct svc_req *);
Packit 6c4009
#define YPPUSHPROC_XFRRESP 1
Packit 6c4009
extern  void *yppushproc_xfrresp_1 (yppushresp_xfr *, CLIENT *);
Packit 6c4009
extern  void *yppushproc_xfrresp_1_svc (yppushresp_xfr *, struct svc_req *);
Packit 6c4009
extern int yppush_xfrrespprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
Packit 6c4009
Packit 6c4009
Packit 6c4009
#define YPBINDPROG 100007
Packit 6c4009
#define YPBINDVERS 2
Packit 6c4009
Packit 6c4009
#define YPBINDPROC_NULL 0
Packit 6c4009
extern  void *ypbindproc_null_2 (void *, CLIENT *);
Packit 6c4009
extern  void *ypbindproc_null_2_svc (void *, struct svc_req *);
Packit 6c4009
#define YPBINDPROC_DOMAIN 1
Packit 6c4009
extern  ypbind_resp *ypbindproc_domain_2 (domainname *, CLIENT *);
Packit 6c4009
extern  ypbind_resp *ypbindproc_domain_2_svc (domainname *, struct svc_req *);
Packit 6c4009
#define YPBINDPROC_SETDOM 2
Packit 6c4009
extern  void *ypbindproc_setdom_2 (ypbind_setdom *, CLIENT *);
Packit 6c4009
extern  void *ypbindproc_setdom_2_svc (ypbind_setdom *, struct svc_req *);
Packit 6c4009
extern int ypbindprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
Packit 6c4009
Packit 6c4009
Packit 6c4009
extern  bool_t xdr_ypstat (XDR *, ypstat*);
Packit 6c4009
extern  bool_t xdr_ypxfrstat (XDR *, ypxfrstat*);
Packit 6c4009
extern  bool_t xdr_domainname (XDR *, domainname*);
Packit 6c4009
extern  bool_t xdr_mapname (XDR *, mapname*);
Packit 6c4009
extern  bool_t xdr_peername (XDR *, peername*);
Packit 6c4009
extern  bool_t xdr_keydat (XDR *, keydat*);
Packit 6c4009
extern  bool_t xdr_valdat (XDR *, valdat*);
Packit 6c4009
extern  bool_t xdr_ypmap_parms (XDR *, ypmap_parms*);
Packit 6c4009
extern  bool_t xdr_ypreq_key (XDR *, ypreq_key*);
Packit 6c4009
extern  bool_t xdr_ypreq_nokey (XDR *, ypreq_nokey*);
Packit 6c4009
extern  bool_t xdr_ypreq_xfr (XDR *, ypreq_xfr*);
Packit 6c4009
extern  bool_t xdr_ypresp_val (XDR *, ypresp_val*);
Packit 6c4009
extern  bool_t xdr_ypresp_key_val (XDR *, ypresp_key_val*);
Packit 6c4009
extern  bool_t xdr_ypresp_master (XDR *, ypresp_master*);
Packit 6c4009
extern  bool_t xdr_ypresp_order (XDR *, ypresp_order*);
Packit 6c4009
extern  bool_t xdr_ypresp_all (XDR *, ypresp_all*);
Packit 6c4009
extern  bool_t xdr_ypresp_xfr (XDR *, ypresp_xfr*);
Packit 6c4009
extern  bool_t xdr_ypmaplist (XDR *, ypmaplist*);
Packit 6c4009
extern  bool_t xdr_ypresp_maplist (XDR *, ypresp_maplist*);
Packit 6c4009
extern  bool_t xdr_yppush_status (XDR *, yppush_status*);
Packit 6c4009
extern  bool_t xdr_yppushresp_xfr (XDR *, yppushresp_xfr*);
Packit 6c4009
extern  bool_t xdr_ypbind_resptype (XDR *, ypbind_resptype*);
Packit 6c4009
extern  bool_t xdr_ypbind_binding (XDR *, ypbind_binding*);
Packit 6c4009
extern  bool_t xdr_ypbind_resp (XDR *, ypbind_resp*);
Packit 6c4009
extern  bool_t xdr_ypbind_setdom (XDR *, ypbind_setdom*);
Packit 6c4009
Packit 6c4009
__END_DECLS
Packit 6c4009
Packit 6c4009
#endif /* !__RPCSVC_YP_H__ */